using Jiaowu.Api.Domain.Common; namespace Jiaowu.Api.Domain.System; public enum PluginPackageStatus { Staged, PendingActivation, Active, Superseded, Failed } public sealed class PluginPackageRelease : EntityBase { public required string PluginId { get; set; } public required string Name { get; set; } public required string Description { get; set; } public required string Category { get; set; } public required string Version { get; set; } public required string PublisherId { get; set; } public required string HostApiVersion { get; set; } public required string Sha256 { get; set; } public required string ManifestJson { get; set; } public required byte[] PackageContent { get; set; } public required byte[] Signature { get; set; } public PluginPackageStatus Status { get; set; } public string? CreatedByUserId { get; set; } public DateTime? ActivationRequestedAt { get; set; } public string? FailureMessage { get; set; } } public sealed class PluginMigrationHistory : EntityBase { public required string PluginId { get; set; } public required string MigrationId { get; set; } public DateTime AppliedAt { get; set; } = DateTime.UtcNow; }