o2o-negosium-original/negodata/backend/router/v1/renegotiation/protocol.py

57 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from typing import List, Optional
from pydantic import Field
from common.models.gmodel import Res_WebPacketProtocol, WebPacketProtocol
class RenegotiationProtocol(WebPacketProtocol):
pass
class RenegotiationData(RenegotiationProtocol):
session_id: str = ""
quotation_id: str = ""
qt_number: str = ""
qt_round: int = 0
qt_name: str = ""
item_id: str = ""
item_name: str = ""
supplier_id: str = ""
supplier_name: str = ""
owner_name: str = "" # 견적 담당자(작성자) 이름 — 누구 견적인지 리스트 표시용
status: int = 0
reason: str = ""
desired_price: Optional[int] = None
requested_at: str = ""
decided_at: Optional[str] = None
decided_by_name: Optional[str] = None
memo: Optional[str] = None
next_quotation_id: Optional[str] = None
close_reason: Optional[int] = None
target_price: Optional[int] = None
bid_price: Optional[int] = None
can_act: bool = True # 조회자가 이 요청을 승인/반려할 수 있는지(견적 소유자∪OWNER). 리스트는 전체가 보이되 처리는 이걸로 게이팅
class Res_RenegotiationList(Res_WebPacketProtocol):
requests: List[RenegotiationData] = []
total: int = 0
page: int = 0
size: int = 0
class Req_ApproveRenegotiation(RenegotiationProtocol):
supplier_ids: List[str] = Field(default_factory=list, description="다음 라운드에 함께 넣을 공급사. 비우면 요청자만")
memo: str = Field("", max_length=255, description="승인 메모")
class Req_RejectRenegotiation(RenegotiationProtocol):
memo: str = Field("", max_length=255, description="반려 사유 — 공급사에게 그대로 노출된다")
class Res_RenegotiationDecision(Res_WebPacketProtocol):
session_id: str = ""
status: int = 0
next_quotation_id: Optional[str] = None