namespace ProposalSystem.Domain.Entities; public enum ProposalStatus { Draft, InReview, Approved, Sent, Revised } public enum ServiceCategory { HVAC, Plumbing, Electrical, General, Renovation } public enum Priority { Standard, Urgent, Emergency } public class Proposal { public Guid Id { get; set; } public string ProposalNumber { get; set; } = string.Empty; public string WorkOrderNumber { get; set; } = string.Empty; public string CustomerName { get; set; } = string.Empty; public string CustomerAddress { get; set; } = string.Empty; public string ScopeOfWork { get; set; } = string.Empty; public string? RefinedScope { get; set; } public ServiceCategory ServiceCategory { get; set; } public Priority Priority { get; set; } public ProposalStatus Status { get; set; } public decimal TotalBidAmount { get; set; } public decimal? VendorTotalCost { get; set; } public string Notes { get; set; } = string.Empty; public Guid SubmittedById { get; set; } public DateTime SubmittedAt { get; set; } public Guid? AssignedAdminId { get; set; } public Guid? ApprovedById { get; set; } public DateTime? ApprovedAt { get; set; } public DateTime? SentAt { get; set; } public int CurrentRevision { get; set; } = 1; public Guid? ParentProposalId { get; set; } public DateTime CreatedAt { get; set; } public DateTime UpdatedAt { get; set; } public User? SubmittedBy { get; set; } public User? AssignedAdmin { get; set; } public User? ApprovedBy { get; set; } public Proposal? ParentProposal { get; set; } public ICollection LineItems { get; set; } = new List(); public ICollection VendorProposals { get; set; } = new List(); }