Files
caronte/backend/app/schemas/schemas.py

152 lines
3.3 KiB
Python

from pydantic import BaseModel
from typing import Optional
from datetime import date, datetime
# Auth
class UserCreate(BaseModel):
nome: str
email: str
senha: str
telefone: Optional[str] = None
class UserLogin(BaseModel):
email: str
senha: str
class UserOut(BaseModel):
id: int
nome: str
email: str
telefone: Optional[str] = None
class Config:
from_attributes = True
class Token(BaseModel):
access_token: str
token_type: str = "bearer"
# Familia
class FamiliaCreate(BaseModel):
nome: str
class FamiliaOut(BaseModel):
id: int
nome: str
usuario_id: int
created_at: Optional[datetime] = None
class Config:
from_attributes = True
class MembroCreate(BaseModel):
nome: str
parentesco: str
cpf: Optional[str] = None
telefone: Optional[str] = None
email: Optional[str] = None
class MembroOut(BaseModel):
id: int
familia_id: int
nome: str
parentesco: str
cpf: Optional[str] = None
telefone: Optional[str] = None
email: Optional[str] = None
class Config:
from_attributes = True
# Falecido
class FalecidoCreate(BaseModel):
nome: str
cpf: Optional[str] = None
data_nascimento: Optional[date] = None
data_obito: date
causa_obito: Optional[str] = None
tipo_vinculo: str
empregador: Optional[str] = None
tinha_carteira_assinada: int = 0
tinha_fgts: int = 0
era_aposentado: int = 0
tinha_seguro_vida: int = 0
tinha_imoveis: int = 0
tinha_veiculos: int = 0
salario_estimado: Optional[float] = None
class FalecidoOut(BaseModel):
id: int
familia_id: int
nome: str
cpf: Optional[str] = None
data_nascimento: Optional[date] = None
data_obito: date
causa_obito: Optional[str] = None
tipo_vinculo: str
empregador: Optional[str] = None
tinha_carteira_assinada: int = 0
tinha_fgts: int = 0
era_aposentado: int = 0
tinha_seguro_vida: int = 0
tinha_imoveis: int = 0
tinha_veiculos: int = 0
salario_estimado: Optional[float] = None
class Config:
from_attributes = True
# Checklist
class ChecklistItemOut(BaseModel):
id: int
familia_id: int
falecido_id: int
titulo: str
descricao: Optional[str] = None
fase: str
categoria: str
status: str
prazo_dias: Optional[int] = None
ordem: int = 0
dependencia_id: Optional[int] = None
class Config:
from_attributes = True
class ChecklistUpdateStatus(BaseModel):
status: str
# Beneficio
class BeneficioOut(BaseModel):
id: int
familia_id: int
falecido_id: int
tipo: str
nome: str
descricao: Optional[str] = None
status: str
valor_estimado: Optional[float] = None
valor_sacado: Optional[float] = None
class Config:
from_attributes = True
# Documento
class DocumentoOut(BaseModel):
id: int
familia_id: int
falecido_id: Optional[int] = None
tipo: str
nome: str
arquivo_path: Optional[str] = None
status: str
created_at: Optional[datetime] = None
class Config:
from_attributes = True
class DocumentoGerarRequest(BaseModel):
tipo: str
falecido_id: int
# Dashboard
class DashboardOut(BaseModel):
familias_ativas: int
itens_pendentes: int
beneficios_encontrados: int
documentos_gerados: int
familias: list = []