Implement display artifacts, pricing integrity, draft base and publish preview bundle
This commit is contained in:
194
backend/app/schemas/editor.py
Normal file
194
backend/app/schemas/editor.py
Normal file
@@ -0,0 +1,194 @@
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class DraftSeatItem(BaseModel):
|
||||
seat_record_id: str
|
||||
scheme_id: str
|
||||
scheme_version_id: str
|
||||
element_id: str | None
|
||||
seat_id: str | None
|
||||
sector_id: str | None
|
||||
group_id: str | None
|
||||
row_label: str | None
|
||||
seat_number: str | None
|
||||
tag: str | None
|
||||
classes_raw: str | None
|
||||
x: float | None
|
||||
y: float | None
|
||||
cx: float | None
|
||||
cy: float | None
|
||||
width: float | None
|
||||
height: float | None
|
||||
created_at: str
|
||||
|
||||
|
||||
class DraftSectorItem(BaseModel):
|
||||
sector_record_id: str
|
||||
scheme_id: str
|
||||
scheme_version_id: str
|
||||
element_id: str | None
|
||||
sector_id: str | None
|
||||
name: str | None
|
||||
classes_raw: str | None
|
||||
created_at: str
|
||||
|
||||
|
||||
class DraftGroupItem(BaseModel):
|
||||
group_record_id: str
|
||||
scheme_id: str
|
||||
scheme_version_id: str
|
||||
element_id: str | None
|
||||
group_id: str | None
|
||||
name: str | None
|
||||
classes_raw: str | None
|
||||
created_at: str
|
||||
|
||||
|
||||
class DraftStructureResponse(BaseModel):
|
||||
scheme_id: str
|
||||
scheme_version_id: str
|
||||
status: str
|
||||
seats: list[DraftSeatItem]
|
||||
sectors: list[DraftSectorItem]
|
||||
groups: list[DraftGroupItem]
|
||||
total_seats: int
|
||||
total_sectors: int
|
||||
total_groups: int
|
||||
|
||||
|
||||
class SeatPatchRequest(BaseModel):
|
||||
seat_id: str | None = Field(default=None, max_length=128)
|
||||
sector_id: str | None = Field(default=None, max_length=128)
|
||||
group_id: str | None = Field(default=None, max_length=128)
|
||||
row_label: str | None = Field(default=None, max_length=64)
|
||||
seat_number: str | None = Field(default=None, max_length=64)
|
||||
|
||||
|
||||
class SeatPatchResponse(BaseModel):
|
||||
scheme_id: str
|
||||
scheme_version_id: str
|
||||
element_id: str | None
|
||||
seat_id: str | None
|
||||
sector_id: str | None
|
||||
group_id: str | None
|
||||
row_label: str | None
|
||||
seat_number: str | None
|
||||
|
||||
|
||||
class BulkSeatPatchItem(BaseModel):
|
||||
seat_record_id: str = Field(..., max_length=32)
|
||||
seat_id: str | None = Field(default=None, max_length=128)
|
||||
sector_id: str | None = Field(default=None, max_length=128)
|
||||
group_id: str | None = Field(default=None, max_length=128)
|
||||
row_label: str | None = Field(default=None, max_length=64)
|
||||
seat_number: str | None = Field(default=None, max_length=64)
|
||||
|
||||
|
||||
class BulkSeatPatchRequest(BaseModel):
|
||||
items: list[BulkSeatPatchItem] = Field(..., min_length=1, max_length=500)
|
||||
|
||||
|
||||
class BulkSeatPatchResultItem(BaseModel):
|
||||
seat_record_id: str
|
||||
updated_seat_id: str | None
|
||||
sector_id: str | None
|
||||
group_id: str | None
|
||||
row_label: str | None
|
||||
seat_number: str | None
|
||||
|
||||
|
||||
class BulkSeatPatchResponse(BaseModel):
|
||||
scheme_id: str
|
||||
scheme_version_id: str
|
||||
updated_count: int
|
||||
items: list[BulkSeatPatchResultItem]
|
||||
|
||||
|
||||
class SectorPatchRequest(BaseModel):
|
||||
sector_id: str | None = Field(default=None, max_length=128)
|
||||
name: str | None = Field(default=None, max_length=255)
|
||||
|
||||
|
||||
class SectorPatchResponse(BaseModel):
|
||||
scheme_id: str
|
||||
scheme_version_id: str
|
||||
element_id: str | None
|
||||
sector_id: str | None
|
||||
name: str | None
|
||||
|
||||
|
||||
class GroupPatchRequest(BaseModel):
|
||||
group_id: str | None = Field(default=None, max_length=128)
|
||||
name: str | None = Field(default=None, max_length=255)
|
||||
|
||||
|
||||
class GroupPatchResponse(BaseModel):
|
||||
scheme_id: str
|
||||
scheme_version_id: str
|
||||
element_id: str | None
|
||||
group_id: str | None
|
||||
name: str | None
|
||||
|
||||
|
||||
class CreateSectorRequest(BaseModel):
|
||||
element_id: str | None = Field(default=None, max_length=255)
|
||||
sector_id: str = Field(..., max_length=128)
|
||||
name: str | None = Field(default=None, max_length=255)
|
||||
classes_raw: str | None = Field(default=None, max_length=4000)
|
||||
|
||||
|
||||
class CreateGroupRequest(BaseModel):
|
||||
element_id: str | None = Field(default=None, max_length=255)
|
||||
group_id: str = Field(..., max_length=128)
|
||||
name: str | None = Field(default=None, max_length=255)
|
||||
classes_raw: str | None = Field(default=None, max_length=4000)
|
||||
|
||||
|
||||
class CreateSectorResponse(BaseModel):
|
||||
scheme_id: str
|
||||
scheme_version_id: str
|
||||
sector_record_id: str
|
||||
element_id: str | None
|
||||
sector_id: str
|
||||
name: str | None
|
||||
|
||||
|
||||
class CreateGroupResponse(BaseModel):
|
||||
scheme_id: str
|
||||
scheme_version_id: str
|
||||
group_record_id: str
|
||||
element_id: str | None
|
||||
group_id: str
|
||||
name: str | None
|
||||
|
||||
|
||||
class DeleteEntityResponse(BaseModel):
|
||||
scheme_id: str
|
||||
scheme_version_id: str
|
||||
deleted: bool
|
||||
record_id: str
|
||||
|
||||
|
||||
class RepairReferencesResponse(BaseModel):
|
||||
scheme_id: str
|
||||
scheme_version_id: str
|
||||
repaired_sector_refs_count: int
|
||||
repaired_group_refs_count: int
|
||||
details: dict
|
||||
|
||||
|
||||
class StructureDiffEntityItem(BaseModel):
|
||||
key: str
|
||||
status: str
|
||||
before: dict | None
|
||||
after: dict | None
|
||||
|
||||
|
||||
class StructureDiffResponse(BaseModel):
|
||||
scheme_id: str
|
||||
draft_scheme_version_id: str
|
||||
baseline_scheme_version_id: str | None
|
||||
summary: dict
|
||||
sectors: list[StructureDiffEntityItem]
|
||||
groups: list[StructureDiffEntityItem]
|
||||
seats: list[StructureDiffEntityItem]
|
||||
Reference in New Issue
Block a user