65 lines
1.9 KiB
Python
65 lines
1.9 KiB
Python
# Importações de bibliotecas padrão
|
|
from typing import Annotated, Optional
|
|
from uuid import UUID
|
|
|
|
# Importações de bibliotecas de terceiros
|
|
from pydantic import BaseModel, Field, ConfigDict
|
|
from .utils import UuidMixinSchema, TimestampMixinSchema, UuidsMixinSchema
|
|
from app.schemas.tipo_endereco_schemas import Consulta as ConsultaSchema
|
|
|
|
|
|
class EnderecoCreate(BaseModel):
|
|
model_config = ConfigDict(from_attributes=True)
|
|
endereco_pessoa_status: bool
|
|
endereco_pessoa_descricao: str = Field(min_length=3, max_length=50)
|
|
endereco_pessoa_numero: str = Field(min_length=1, max_length=8)
|
|
endereco_pessoa_complemento: str = Field(min_length=3, max_length=50, default="S/N")
|
|
endereco_pessoa_cep: str = Field(min_length=8, max_length=8)
|
|
fk_tipo_endereco_uuid: UUID
|
|
|
|
|
|
class Create(EnderecoCreate):
|
|
fk_pessoa_uuid: UUID
|
|
|
|
|
|
class Request(TimestampMixinSchema, Create, UuidMixinSchema):
|
|
uuid: UUID | None = None
|
|
fk_pessoa_uuid: UUID | None = None
|
|
relacao_tipo_endereco: ConsultaSchema | None = None
|
|
# relacao_tipo_endereco: UUIDSchema
|
|
|
|
|
|
class EnderecoRequest(Request):
|
|
pass
|
|
|
|
|
|
class UpdateSchema(BaseModel):
|
|
model_config = ConfigDict(from_attributes=True)
|
|
uuid: UUID | None = None
|
|
endereco_pessoa_status: bool
|
|
endereco_pessoa_descricao: Optional[Annotated[str, Field(max_length=50)]] = None
|
|
endereco_pessoa_numero: Optional[Annotated[str, Field(max_length=8)]] = None
|
|
endereco_pessoa_complemento: Optional[Annotated[str, Field(max_length=50)]] = None
|
|
endereco_pessoa_cep: Optional[Annotated[str, Field(max_length=8)]] = None
|
|
fk_tipo_endereco_uuid: UUID | None = None
|
|
|
|
|
|
class EnderecoBaseUpdate(UpdateSchema):
|
|
pass
|
|
|
|
|
|
class IdRequest(UuidMixinSchema):
|
|
pass
|
|
|
|
|
|
class IdsRequest(UuidsMixinSchema):
|
|
pass
|
|
|
|
|
|
class UpdateRequest(UpdateSchema, IdRequest):
|
|
pass
|
|
|
|
|
|
class UpdateManyRequest(UpdateSchema, IdRequest):
|
|
pass
|