Initial scaffold: monorepo structure, CDK stacks, CI/CD, domain model
Phase 0 of proposal-system: complete project setup including:
- CDK infrastructure (3 stacks: foundation, compute, frontend)
- .NET 8 solution with Clean Architecture (Domain, Application, Infrastructure, Api)
- EF Core data model (PostgreSQL) with all entities
- Python Lambda placeholders (pdf-extract, pdf-generate, library-ingest)
- React 19 web frontend scaffold (Vite + MUI)
- React Native mobile placeholder
- Shared TypeScript API contracts
- GitHub Actions CI/CD (ci.yaml + deploy.yaml)
- OIDC deploy role (githubdeploy-proposal-system)
- Dependabot configuration
- Cognito User Pool with Google OAuth, PKCE clients, groups
2026-05-16 18:40:46 -04:00
|
|
|
namespace ProposalSystem.Domain.Entities;
|
|
|
|
|
|
|
|
|
|
public enum ProposalStatus
|
|
|
|
|
{
|
|
|
|
|
Draft,
|
|
|
|
|
InReview,
|
|
|
|
|
Approved,
|
|
|
|
|
Sent,
|
|
|
|
|
Revised
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public enum ServiceCategory
|
|
|
|
|
{
|
|
|
|
|
HVAC,
|
|
|
|
|
Plumbing,
|
|
|
|
|
Electrical,
|
|
|
|
|
General,
|
2026-05-22 16:38:37 -04:00
|
|
|
Renovation,
|
|
|
|
|
Other
|
Initial scaffold: monorepo structure, CDK stacks, CI/CD, domain model
Phase 0 of proposal-system: complete project setup including:
- CDK infrastructure (3 stacks: foundation, compute, frontend)
- .NET 8 solution with Clean Architecture (Domain, Application, Infrastructure, Api)
- EF Core data model (PostgreSQL) with all entities
- Python Lambda placeholders (pdf-extract, pdf-generate, library-ingest)
- React 19 web frontend scaffold (Vite + MUI)
- React Native mobile placeholder
- Shared TypeScript API contracts
- GitHub Actions CI/CD (ci.yaml + deploy.yaml)
- OIDC deploy role (githubdeploy-proposal-system)
- Dependabot configuration
- Cognito User Pool with Google OAuth, PKCE clients, groups
2026-05-16 18:40:46 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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;
|
2026-05-22 16:38:37 -04:00
|
|
|
public string? PoNumber { get; set; }
|
Initial scaffold: monorepo structure, CDK stacks, CI/CD, domain model
Phase 0 of proposal-system: complete project setup including:
- CDK infrastructure (3 stacks: foundation, compute, frontend)
- .NET 8 solution with Clean Architecture (Domain, Application, Infrastructure, Api)
- EF Core data model (PostgreSQL) with all entities
- Python Lambda placeholders (pdf-extract, pdf-generate, library-ingest)
- React 19 web frontend scaffold (Vite + MUI)
- React Native mobile placeholder
- Shared TypeScript API contracts
- GitHub Actions CI/CD (ci.yaml + deploy.yaml)
- OIDC deploy role (githubdeploy-proposal-system)
- Dependabot configuration
- Cognito User Pool with Google OAuth, PKCE clients, groups
2026-05-16 18:40:46 -04:00
|
|
|
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>();
|
|
|
|
|
}
|