using Marco.Pms.Model.Employees; using Marco.Pms.Model.Utilities; using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; using System.ComponentModel.DataAnnotations.Schema; namespace Marco.Pms.Model.DocumentManager { public class DocumentAttachment : TenantRelation { public Guid Id { get; set; } public string Name { get; set; } = string.Empty; public string? DocumentId { get; set; } public string Description { get; set; } = string.Empty; public bool IsCurrentVersion { get; set; } = true; public DateTime UploadedAt { get; set; } public Guid UploadedById { get; set; } // References the employee who uploaded the document [ValidateNever] [ForeignKey("UploadedById")] public Employee? UploadedBy { get; set; } public DateTime? UpdatedAt { get; set; } public Guid? UpdatedById { get; set; } // References the employee who updates the document [ValidateNever] [ForeignKey("UpdatedById")] public Employee? UpdatedBy { get; set; } public DateTime? VerifiedAt { get; set; } public bool? IsVerified { get; set; } public Guid? VerifiedById { get; set; } // Associates the document with a specific employee, if applicable [ValidateNever] [ForeignKey("VerifiedById")] public Employee? VerifiedBy { get; set; } public Guid EntityId { get; set; } // Associates the document with a specific project, if applicable public Guid DocumentTypeId { get; set; } [ValidateNever] [ForeignKey("DocumentTypeId")] public DocumentTypeMaster? DocumentType { get; set; } public Guid DocumentDataId { get; set; } [ValidateNever] [ForeignKey("DocumentDataId")] public Document? Document { get; set; } public bool IsActive { get; set; } = true; } }