Implement display artifacts, pricing integrity, draft base and publish preview bundle

This commit is contained in:
greebo
2026-03-19 17:58:17 +03:00
parent 85fb2f4bb9
commit c91c5abf15
35 changed files with 3283 additions and 302 deletions

View File

@@ -0,0 +1,50 @@
from pydantic import BaseModel, Field
class RemapPreviewRequest(BaseModel):
seat_record_ids: list[str] | None = Field(default=None, max_length=500)
from_sector_id: str | None = Field(default=None, max_length=128)
to_sector_id: str | None = Field(default=None, max_length=128)
from_group_id: str | None = Field(default=None, max_length=128)
to_group_id: str | None = Field(default=None, max_length=128)
class RemapPreviewSeatItem(BaseModel):
seat_record_id: str
seat_id: str | None
before_sector_id: str | None
after_sector_id: str | None
before_group_id: str | None
after_group_id: str | None
class RemapPreviewResponse(BaseModel):
scheme_id: str
scheme_version_id: str
matched_count: int
items: list[RemapPreviewSeatItem]
class RemapApplyRequest(BaseModel):
seat_record_ids: list[str] | None = Field(default=None, max_length=500)
from_sector_id: str | None = Field(default=None, max_length=128)
to_sector_id: str | None = Field(default=None, max_length=128)
from_group_id: str | None = Field(default=None, max_length=128)
to_group_id: str | None = Field(default=None, max_length=128)
class RemapApplyResponse(BaseModel):
scheme_id: str
scheme_version_id: str
updated_count: int
items: list[RemapPreviewSeatItem]
class PublishPreviewResponse(BaseModel):
scheme_id: str
scheme_version_id: str
artifacts: dict
validation: dict
structure_diff: dict
pricing_coverage: dict
summary: dict