from pydantic import Field from common.models.gmodel import Res_WebPacketProtocol, WebPacketProtocol # 협상 세션 목록 행. status/qt_type 은 정수 코드로 내려가고 라벨 매핑은 프론트가 한다. class ListItem(WebPacketProtocol): session_id: str = "" session_status: int = Field(0, description="세션 상태 코드 (SessionStatus: 1=생성 2=진행중 3=완료 4=미참여 5=거부)") qt_type: int = Field(0, description="견적 종류 코드 (1=재협상, 2=재견적, 3=신규협상, 4=신규견적)") qt_number: str = "" qt_end_time: str = Field("", description="견적 마감 시각 (ISO 8601)") item_code: str = "" item_name: str = "" model_name: str = "" maker_name: str = "" class Res_SessionList(Res_WebPacketProtocol): items: list[ListItem] = [] total: int = 0 page: int = 0 page_size: int = 0 class Res_Participate(Res_WebPacketProtocol): session_id: str = Field("", description="참여 성공한 세션 uuid (채팅 진입용)") class Req_Reject(WebPacketProtocol): reject_reason: str = Field("", max_length=255, description="거부 사유 (단종/품절 프리셋 라벨 또는 직접 입력)") class Res_Reject(Res_WebPacketProtocol): session_id: str = Field("", description="거부 처리된 세션 uuid")