feat(backend): add pricing coverage, unpriced seats, and explain endpoints

add backend endpoints for pricing coverage analysis and unpriced seat inspection

add explain endpoint to make effective pricing decisions traceable
improve pricing diagnostics for admin and editor workflows
This commit is contained in:
greebo
2026-03-19 20:10:14 +03:00
parent aab5a51654
commit 2af5e49b8c
4 changed files with 270 additions and 3 deletions

View File

@@ -43,6 +43,11 @@
- PUT /api/v1/schemes/{scheme_id}/pricing/rules/{price_rule_id}
- DELETE /api/v1/schemes/{scheme_id}/pricing/rules/{price_rule_id}
## app/api/routes/pricing_diagnostics.py
- GET /api/v1/schemes/{scheme_id}/pricing/coverage
- GET /api/v1/schemes/{scheme_id}/pricing/unpriced-seats
- GET /api/v1/schemes/{scheme_id}/pricing/explain/{seat_id}
## app/api/routes/test_mode.py
- GET /api/v1/schemes/{scheme_id}/test/seats/{seat_id}
@@ -57,11 +62,11 @@
## app/api/routes/editor.py
- GET /api/v1/schemes/{scheme_id}/draft/structure
- GET /api/v1/schemes/{scheme_id}/draft/compare-preview
- GET /api/v1/schemes/{scheme_id}/draft/validation
- GET /api/v1/schemes/{scheme_id}/draft/seats/records/{seat_record_id}
- GET /api/v1/schemes/{scheme_id}/draft/sectors/records/{sector_record_id}
- GET /api/v1/schemes/{scheme_id}/draft/groups/records/{group_record_id}
- GET /api/v1/schemes/{scheme_id}/draft/compare-preview
- POST /api/v1/schemes/{scheme_id}/draft/sectors
- POST /api/v1/schemes/{scheme_id}/draft/groups
- DELETE /api/v1/schemes/{scheme_id}/draft/sectors/records/{sector_record_id}
@@ -84,5 +89,3 @@
- This file is an operational route index, not a generated OpenAPI export.
- Update this map in the same change set when adding, removing, renaming, or moving routes.
- Query guards such as expected_current_scheme_version_id / expected_scheme_version_id are part of the operational contract for optimistic concurrency on mutable flows.
- Test mode response now includes reason_code and reason_message for sellability diagnostics.