feat(backend): add stale draft guards and reference validation for draft mutations
add stale draft protection for mutation flows validate referenced entities before applying draft changes reduce invalid draft writes caused by stale state and broken references keep mutation behavior explicit and version-aware
This commit is contained in:
@@ -6,6 +6,7 @@ from app.repositories.scheme_seats import (
|
||||
bulk_remap_scheme_version_seats,
|
||||
list_scheme_version_seats,
|
||||
)
|
||||
from app.services.editor_validation import validate_remap_target_references
|
||||
|
||||
|
||||
def _match_seat(
|
||||
@@ -39,6 +40,12 @@ async def preview_remap(
|
||||
detail="At least one remap filter must be provided",
|
||||
)
|
||||
|
||||
await validate_remap_target_references(
|
||||
scheme_version_id=scheme_version_id,
|
||||
to_sector_id=to_sector_id,
|
||||
to_group_id=to_group_id,
|
||||
)
|
||||
|
||||
seats = await list_scheme_version_seats(scheme_version_id)
|
||||
seat_record_id_set = set(seat_record_ids) if seat_record_ids else None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user