195 lines
4.8 KiB
Python
195 lines
4.8 KiB
Python
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]
|