feat(backend): prevent duplicate draft sector and group bindings
reject duplicate sector and group bindings within draft mutations harden draft structure consistency at the backend layer prevent conflicting bindings before they reach publish flow
This commit is contained in:
@@ -49,6 +49,8 @@ from app.services.draft_guard import get_current_draft_context
|
||||
from app.services.editor_validation import (
|
||||
validate_bulk_seat_patch_references,
|
||||
validate_bulk_seat_patch_uniqueness,
|
||||
validate_create_group_uniqueness,
|
||||
validate_create_sector_uniqueness,
|
||||
validate_group_patch_uniqueness,
|
||||
validate_sector_patch_uniqueness,
|
||||
validate_single_seat_patch_references,
|
||||
@@ -162,6 +164,12 @@ async def create_draft_sector(
|
||||
expected_scheme_version_id=expected_scheme_version_id,
|
||||
)
|
||||
|
||||
await validate_create_sector_uniqueness(
|
||||
scheme_version_id=version.scheme_version_id,
|
||||
sector_id=payload.sector_id,
|
||||
element_id=payload.element_id,
|
||||
)
|
||||
|
||||
row = await create_scheme_version_sector(
|
||||
scheme_id=scheme.scheme_id,
|
||||
scheme_version_id=version.scheme_version_id,
|
||||
@@ -205,6 +213,12 @@ async def create_draft_group(
|
||||
expected_scheme_version_id=expected_scheme_version_id,
|
||||
)
|
||||
|
||||
await validate_create_group_uniqueness(
|
||||
scheme_version_id=version.scheme_version_id,
|
||||
group_id=payload.group_id,
|
||||
element_id=payload.element_id,
|
||||
)
|
||||
|
||||
row = await create_scheme_version_group(
|
||||
scheme_id=scheme.scheme_id,
|
||||
scheme_version_id=version.scheme_version_id,
|
||||
|
||||
Reference in New Issue
Block a user