51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
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
|