from fastapi import APIRouter from common.enums import DOMAIN_ENUMS, ENUM_LABELS from router.v1.validator.dependencies import RemoveNoneResponse from .protocol import EnumOption, Res_Enums # 도메인 코드 enum 메타데이터(공용). 프론트가 페이지 진입 시 드롭다운을 이걸로 채운다. router = APIRouter(prefix="/v1", tags=["Enums"], responses={404: {"description": "Not found"}}) @router.get(path="/enums", response_model=Res_Enums, summary="도메인 코드 enum 전체") async def list_enums(): res = Res_Enums() res.enums = { key: [ EnumOption(value=member.value, name=member.name, label=ENUM_LABELS.get(member, member.name)) for member in enum_cls ] for key, enum_cls in DOMAIN_ENUMS.items() } return RemoveNoneResponse(res)