feat: add case + party CRUD with case events (Phase 1B)

This commit is contained in:
m
2026-03-25 13:32:09 +01:00
35 changed files with 1029 additions and 4 deletions

View File

@@ -16,12 +16,16 @@ func New(db *sqlx.DB, authMW *auth.Middleware) http.Handler {
// Services
tenantSvc := services.NewTenantService(db)
caseSvc := services.NewCaseService(db)
partySvc := services.NewPartyService(db)
// Middleware
tenantResolver := auth.NewTenantResolver(tenantSvc)
// Handlers
tenantH := handlers.NewTenantHandler(tenantSvc)
caseH := handlers.NewCaseHandler(caseSvc)
partyH := handlers.NewPartyHandler(partySvc)
// Public routes
mux.HandleFunc("GET /health", handleHealth(db))
@@ -39,7 +43,21 @@ func New(db *sqlx.DB, authMW *auth.Middleware) http.Handler {
// Tenant-scoped routes (require tenant context)
scoped := http.NewServeMux()
scoped.HandleFunc("GET /api/cases", placeholder("cases"))
// Cases
scoped.HandleFunc("GET /api/cases", caseH.List)
scoped.HandleFunc("POST /api/cases", caseH.Create)
scoped.HandleFunc("GET /api/cases/{id}", caseH.Get)
scoped.HandleFunc("PUT /api/cases/{id}", caseH.Update)
scoped.HandleFunc("DELETE /api/cases/{id}", caseH.Delete)
// Parties
scoped.HandleFunc("GET /api/cases/{id}/parties", partyH.List)
scoped.HandleFunc("POST /api/cases/{id}/parties", partyH.Create)
scoped.HandleFunc("PUT /api/parties/{partyId}", partyH.Update)
scoped.HandleFunc("DELETE /api/parties/{partyId}", partyH.Delete)
// Placeholder routes for future phases
scoped.HandleFunc("GET /api/deadlines", placeholder("deadlines"))
scoped.HandleFunc("GET /api/appointments", placeholder("appointments"))
scoped.HandleFunc("GET /api/documents", placeholder("documents"))