using RAG.Domain.Common; using RAG.Domain.Enums; namespace RAG.Domain.Entities; public class Document : BaseEntity, IFullAudit { public Guid KnowledgeBaseId { get; set; } public string Title { get; set; } = default!; public string FileName { get; set; } = default!; public string FilePath { get; set; } = default!; public long FileSize { get; set; } public string ContentType { get; set; } = default!; public int ChunkCount { get; set; } public DocumentStatus Status { get; set; } = DocumentStatus.Pending; // IAuditable public string CreatedBy { get; set; } = default!; public DateTime CreatedAt { get; set; } public string UpdatedBy { get; set; } = default!; public DateTime UpdatedAt { get; set; } // ISoftDelete public bool IsDeleted { get; set; } // IHasOperatorIP public string OperatorIP { get; set; } = default!; // Navigation public KnowledgeBase KnowledgeBase { get; set; } = default!; public ICollection Chunks { get; set; } = []; }