feat(backend): add sellability reason codes and string price serialization to test seat preview

extend test seat preview with explicit sellability reason codes

serialize preview price amount as string for a stable API contract
improve diagnosis of non-sellable states for preview consumers
This commit is contained in:
greebo
2026-03-19 20:07:19 +03:00
parent af175d88dd
commit aab5a51654
4 changed files with 43 additions and 14 deletions

View File

@@ -84,3 +84,5 @@
- 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.

View File

@@ -73,7 +73,7 @@ Validate:
Validate:
- pricing bundle contains categories and rules arrays
- effective seat price resolves according to domain priority
- test seat preview explains selectable / has_price state
- test seat preview explains selectable / has_price state and returns reason_code / reason_message
- pricing write responses are stable and typed
- stale pricing mutation returns `detail.code = stale_draft_version`