using Microsoft.EntityFrameworkCore; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace FileShare_EFCore.Models { /// /// 管理端添加的文件库根目录或磁盘。 /// [Comment("文件库根目录")] [Table("managed-library-root")] public class ManagedLibraryRoot { /// 主键 ID。 [Key] [Column("id")] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; } /// 服务器本机绝对路径。 [Column("path")] [MaxLength(1024)] public string Path { get; set; } = string.Empty; /// 显示名称。 [Column("display-name")] [MaxLength(200)] public string DisplayName { get; set; } = string.Empty; /// 是否启用扫描。 [Column("is-enabled")] public bool IsEnabled { get; set; } = true; /// 目录最近一次扫描是否可用。 [Column("is-available")] public bool IsAvailable { get; set; } = true; /// 扫描间隔分钟数。 [Column("scan-interval-minutes")] public int ScanIntervalMinutes { get; set; } = 5; /// 最近扫描开始时间。 [Column("last-scan-started-at")] public DateTime? LastScanStartedAt { get; set; } /// 最近扫描完成时间。 [Column("last-scan-completed-at")] public DateTime? LastScanCompletedAt { get; set; } /// 最近扫描错误。 [Column("last-scan-error")] [MaxLength(2000)] public string? LastScanError { get; set; } /// 创建时间。 [Column("created-at")] public DateTime CreatedAt { get; set; } = DateTime.UtcNow; /// 更新时间。 [Column("updated-at")] public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; /// 文件记录。 public List Files { get; set; } = new(); } }