mirror of
https://github.com/Sea-Haven-Industries/proposal-system.git
synced 2026-10-05 04:52:02 +00:00
- Structured manual site entry with 5 separate address fields - Site search via Autocomplete with server-side filtering - Added PO number field to proposal form and AddPoNumber migration - Added Other to ServiceCategory enum with custom category text input - Label consistency: "Work Order #" → "Work Order Number", "PO Number" - Top row reflow to 3-column layout (4/4/4) - Dev PDF generation script for local testing
62 lines
1.8 KiB
C#
62 lines
1.8 KiB
C#
namespace ProposalSystem.Domain.Entities;
|
|
|
|
public enum ProposalStatus
|
|
{
|
|
Draft,
|
|
InReview,
|
|
Approved,
|
|
Sent,
|
|
Revised
|
|
}
|
|
|
|
public enum ServiceCategory
|
|
{
|
|
HVAC,
|
|
Plumbing,
|
|
Electrical,
|
|
General,
|
|
Renovation,
|
|
Other
|
|
}
|
|
|
|
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? PoNumber { get; set; }
|
|
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<LineItem> LineItems { get; set; } = new List<LineItem>();
|
|
public ICollection<VendorProposal> VendorProposals { get; set; } = new List<VendorProposal>();
|
|
}
|