- protocol: ListItem/Res_SessionList 의 빈 Field 에 description 추가. - session.py: page/page_size 쿼리 + session_id 경로 파라미터에 설명 추가 (Path import). req 인자는 문법상 = ... 로 두되 requestBody required 유지. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
36 lines
1.7 KiB
Python
36 lines
1.7 KiB
Python
from pydantic import Field
|
|
|
|
from common.models.gmodel import Res_WebPacketProtocol, WebPacketProtocol
|
|
|
|
|
|
# 협상 세션 목록 행. status/qt_type 은 정수 코드로 내려가고 라벨 매핑은 프론트가 한다.
|
|
class ListItem(WebPacketProtocol):
|
|
session_id: str = Field("", description="협상 세션 uuid (채팅 진입용)")
|
|
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 = Field("", description="견적 번호")
|
|
qt_end_time: str = Field("", description="견적 마감 시각 (ISO 8601)")
|
|
item_code: str = Field("", description="상품 코드")
|
|
item_name: str = Field("", description="상품명")
|
|
model_name: str = Field("", description="모델명")
|
|
maker_name: str = Field("", description="제조사")
|
|
|
|
|
|
class Res_SessionList(Res_WebPacketProtocol):
|
|
items: list[ListItem] = Field(default_factory=list, description="협상 세션 목록")
|
|
total: int = Field(0, description="필터 조건에 맞는 전체 건수(페이지네이션용)")
|
|
page: int = Field(0, description="현재 페이지 (1부터)")
|
|
page_size: int = Field(0, description="페이지당 건수")
|
|
|
|
|
|
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")
|