Files
plantillas-proyectos/backend/api/v1/modules/a76/pedmientos/schemas.py

43 lines
1.7 KiB
Python

"""
Consolidated schemas for Pedimento catalog responses
"""
from typing import List, Optional
from pydantic import BaseModel
# Import DTOs for catalog items
from api.v1.modules.public.reference_data.pedimento_codes.dto import PedimentoCodeDTO
from api.v1.modules.public.reference_data.customs_sections.dto import CustomsSectionDTO
from api.v1.modules.public.reference_data.code_pedimento_regimens.dto import CodePedimentoRegimenDTO
from api.v1.modules.a76.customs_brokers.dto import CustomsBrokerResponseDTO
from api.v1.modules.a76.clients_and_providers.dto import ClientProviderResponseDTO
from api.v1.modules.public.reference_data.transport_types.dto import TransportTypeDTO
from api.v1.modules.public.reference_data.transport_modes.dto import TransportModeDTO
from .dtos.pedimentos import PedimentosResponse
class PedimentoCatalogsResponse(BaseModel):
"""Base response containing all catalogs needed for pedimento views"""
pedimento_codes: List[PedimentoCodeDTO] = []
customs_sections: List[CustomsSectionDTO] = []
code_pedimento_regimens: List[CodePedimentoRegimenDTO] = []
customs_brokers: List[CustomsBrokerResponseDTO] = []
clients: List[ClientProviderResponseDTO] = []
transport_types: List[TransportTypeDTO] = []
transport_modes: List[TransportModeDTO] = []
class PedimentoCreationResponse(PedimentoCatalogsResponse):
"""Response for creating a new pedimento (catalogs only)"""
is_create: bool = True
class PedimentoEditionResponse(PedimentoCatalogsResponse):
"""Response for editing an existing pedimento (catalogs + pedimento data)"""
is_create: bool = False
pedimento: Optional[PedimentosResponse] = None
pedimento_id: Optional[int] = None