Sharang Parnerkar
ae008d7d25
refactor(backend/api): extract DSFA schemas + services (Step 4 — file 14 of 18)
- Create compliance/schemas/dsfa.py (161 LOC) — extract DSFACreate,
DSFAUpdate, DSFAStatusUpdate, DSFASectionUpdate, DSFAApproveRequest
- Create compliance/services/dsfa_service.py (386 LOC) — CRUD + helpers
+ stats + audit-log + CSV export; uses domain errors
- Create compliance/services/dsfa_workflow_service.py (347 LOC) — status
update, section update, submit-for-review, approve, export JSON, versions
- Rewrite compliance/api/dsfa_routes.py (339 LOC) as thin handlers with
Depends + translate_domain_errors(); re-export legacy symbols via __all__
- Add [mypy-compliance.api.dsfa_routes] ignore_errors = False to mypy.ini
- Update tests: 422 -> 400 for domain ValidationError (6 assertions)
- Regenerate OpenAPI baseline (360 paths / 484 operations — unchanged)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 19:20:48 +02:00
..
2026-04-07 13:18:29 +02:00
2026-04-07 18:06:27 +02:00
2026-04-07 18:06:27 +02:00
2026-04-07 18:52:31 +02:00
2026-04-07 18:06:27 +02:00
2026-04-07 19:53:55 +02:00
2026-04-07 18:06:27 +02:00
2026-04-07 19:47:29 +02:00
2026-04-07 18:06:27 +02:00
2026-04-07 18:06:27 +02:00
2026-04-09 19:20:48 +02:00
2026-04-08 22:39:19 +02:00
2026-04-07 18:06:27 +02:00
2026-04-09 08:35:57 +02:00
2026-04-07 18:06:27 +02:00
2026-04-07 18:06:27 +02:00
2026-04-09 08:47:56 +02:00
2026-04-07 18:06:27 +02:00
2026-04-07 18:06:27 +02:00
2026-04-07 18:06:27 +02:00
2026-04-07 18:06:27 +02:00
2026-04-07 20:03:16 +02:00
2026-04-07 18:06:27 +02:00
2026-04-07 19:58:02 +02:00
2026-04-07 19:42:17 +02:00
2026-04-07 18:06:27 +02:00