from typing import Optional from pydantic import Field from common.enums import UserRole from common.models.gmodel import Res_WebPacketProtocol, WebPacketProtocol # 라우터 폴더마다 protocol.py 를 두고 Req_/Res_ 를 정의한다 (protocol 규약). class AuthProtocol(WebPacketProtocol): pass class Req_Login(AuthProtocol): id: str = "" password: str = "" class Res_Login(Res_WebPacketProtocol): access_token: str = "" refresh_token: str = "" token_type: str = "bearer" class Req_CreateAccount(AuthProtocol): id: str = "" password: str = "" company_id: str = "" name: str = "" email: str = "" contact_number: str = "" role: int = UserRole.USER.value class Res_CreateAccount(Res_WebPacketProtocol): user_id: str = "" class Res_RefreshToken(Res_WebPacketProtocol): access_token: str = "" token_type: str = "bearer" class CompanyData(WebPacketProtocol): company_id: str = "" name: str = "" class Res_Me(Res_WebPacketProtocol): user_id: str = "" id: str = "" name: Optional[str] = None email: Optional[str] = None contact_number: Optional[str] = None role: int = UserRole.USER.value company: Optional[CompanyData] = Field(default=None)