56 lines
1.7 KiB
Python
56 lines
1.7 KiB
Python
from pydantic import BaseModel
|
|
from typing import Optional
|
|
from datetime import datetime
|
|
from ipaddress import IPv4Address, IPv6Address
|
|
from decimal import Decimal
|
|
|
|
|
|
# ----------------------------------------------------
|
|
# Schema base - campos principais e comuns
|
|
# ----------------------------------------------------
|
|
class AtoPrincipalBaseSchema(BaseModel):
|
|
origem_ato_principal_id: Optional[int] = None
|
|
identificacao_pedido_cgj: int
|
|
tipo_ato: int
|
|
codigo_selo: str
|
|
codigo_ato: str
|
|
nome_civil_ato: str
|
|
nome_serventuario_praticou_ato: str
|
|
data_solicitacao: datetime
|
|
ip_maquina: Optional[IPv4Address | IPv6Address] = None
|
|
inteiro_teor: str
|
|
valor_entrada: Optional[Decimal] = None
|
|
emolumento: Decimal
|
|
taxa_judiciaria: Decimal
|
|
fundos_estaduais: Decimal
|
|
protocolo_protesto: Optional[str] = None
|
|
protocolo_imovel: Optional[str] = None
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
# ----------------------------------------------------
|
|
# Schema de resposta (GET) — inclui metadata
|
|
# ----------------------------------------------------
|
|
class AtoPrincipalResponseSchema(AtoPrincipalBaseSchema):
|
|
ato_principal_id: int
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
# ----------------------------------------------------
|
|
# Schema de criação (POST)
|
|
# ----------------------------------------------------
|
|
class AtoPrincipalCreateSchema(AtoPrincipalBaseSchema):
|
|
pass
|
|
|
|
|
|
# ----------------------------------------------------
|
|
# Schema de atualização (PUT)
|
|
# ----------------------------------------------------
|
|
class AtoPrincipalUpdateSchema(AtoPrincipalBaseSchema):
|
|
ato_principal_id: int
|