feat: add deadline management frontend (Phase 1G)
- Fristen page with list view (sortable, filterable by status/case) - Calendar view with month navigation and deadline dots - Deadline calculator page (proceeding type + trigger date = timeline) - Traffic light urgency: red (overdue), amber (this week), green (OK) - Backend: GET /api/deadlines (all tenant deadlines), GET /api/proceeding-types - API client: added patch() method - Types: DeadlineRule, ProceedingType, CalculatedDeadline, RuleTreeNode
This commit is contained in:
@@ -21,6 +21,23 @@ func NewDeadlineService(db *sqlx.DB) *DeadlineService {
|
||||
return &DeadlineService{db: db}
|
||||
}
|
||||
|
||||
// ListAll returns all deadlines for a tenant, ordered by due_date
|
||||
func (s *DeadlineService) ListAll(tenantID uuid.UUID) ([]models.Deadline, error) {
|
||||
query := `SELECT id, tenant_id, case_id, title, description, due_date, original_due_date,
|
||||
warning_date, source, rule_id, status, completed_at,
|
||||
caldav_uid, caldav_etag, notes, created_at, updated_at
|
||||
FROM deadlines
|
||||
WHERE tenant_id = $1
|
||||
ORDER BY due_date ASC`
|
||||
|
||||
var deadlines []models.Deadline
|
||||
err := s.db.Select(&deadlines, query, tenantID)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("listing all deadlines: %w", err)
|
||||
}
|
||||
return deadlines, nil
|
||||
}
|
||||
|
||||
// ListForCase returns all deadlines for a case, scoped to tenant
|
||||
func (s *DeadlineService) ListForCase(tenantID, caseID uuid.UUID) ([]models.Deadline, error) {
|
||||
query := `SELECT id, tenant_id, case_id, title, description, due_date, original_due_date,
|
||||
|
||||
Reference in New Issue
Block a user