feat: add deadline CRUD, calculator, and holiday services (Phase 1C)
This commit is contained in:
@@ -19,6 +19,10 @@ func New(db *sqlx.DB, authMW *auth.Middleware) http.Handler {
|
||||
caseSvc := services.NewCaseService(db)
|
||||
partySvc := services.NewPartyService(db)
|
||||
appointmentSvc := services.NewAppointmentService(db)
|
||||
holidaySvc := services.NewHolidayService(db)
|
||||
deadlineSvc := services.NewDeadlineService(db)
|
||||
deadlineRuleSvc := services.NewDeadlineRuleService(db)
|
||||
calculator := services.NewDeadlineCalculator(holidaySvc)
|
||||
|
||||
// Middleware
|
||||
tenantResolver := auth.NewTenantResolver(tenantSvc)
|
||||
@@ -28,6 +32,9 @@ func New(db *sqlx.DB, authMW *auth.Middleware) http.Handler {
|
||||
caseH := handlers.NewCaseHandler(caseSvc)
|
||||
partyH := handlers.NewPartyHandler(partySvc)
|
||||
apptH := handlers.NewAppointmentHandler(appointmentSvc)
|
||||
deadlineH := handlers.NewDeadlineHandlers(deadlineSvc, db)
|
||||
ruleH := handlers.NewDeadlineRuleHandlers(deadlineRuleSvc)
|
||||
calcH := handlers.NewCalculateHandlers(calculator, deadlineRuleSvc)
|
||||
|
||||
// Public routes
|
||||
mux.HandleFunc("GET /health", handleHealth(db))
|
||||
@@ -59,6 +66,20 @@ func New(db *sqlx.DB, authMW *auth.Middleware) http.Handler {
|
||||
scoped.HandleFunc("PUT /api/parties/{partyId}", partyH.Update)
|
||||
scoped.HandleFunc("DELETE /api/parties/{partyId}", partyH.Delete)
|
||||
|
||||
// Deadlines
|
||||
scoped.HandleFunc("GET /api/cases/{caseID}/deadlines", deadlineH.ListForCase)
|
||||
scoped.HandleFunc("POST /api/cases/{caseID}/deadlines", deadlineH.Create)
|
||||
scoped.HandleFunc("PUT /api/deadlines/{deadlineID}", deadlineH.Update)
|
||||
scoped.HandleFunc("PATCH /api/deadlines/{deadlineID}/complete", deadlineH.Complete)
|
||||
scoped.HandleFunc("DELETE /api/deadlines/{deadlineID}", deadlineH.Delete)
|
||||
|
||||
// Deadline rules (reference data)
|
||||
scoped.HandleFunc("GET /api/deadline-rules", ruleH.List)
|
||||
scoped.HandleFunc("GET /api/deadline-rules/{type}", ruleH.GetRuleTree)
|
||||
|
||||
// Deadline calculator
|
||||
scoped.HandleFunc("POST /api/deadlines/calculate", calcH.Calculate)
|
||||
|
||||
// Appointments
|
||||
scoped.HandleFunc("GET /api/appointments", apptH.List)
|
||||
scoped.HandleFunc("POST /api/appointments", apptH.Create)
|
||||
@@ -66,7 +87,6 @@ func New(db *sqlx.DB, authMW *auth.Middleware) http.Handler {
|
||||
scoped.HandleFunc("DELETE /api/appointments/{id}", apptH.Delete)
|
||||
|
||||
// Placeholder routes for future phases
|
||||
scoped.HandleFunc("GET /api/deadlines", placeholder("deadlines"))
|
||||
scoped.HandleFunc("GET /api/documents", placeholder("documents"))
|
||||
|
||||
// Wire: auth -> tenant routes go directly, scoped routes get tenant resolver
|
||||
|
||||
Reference in New Issue
Block a user