152 lines
3.3 KiB
Python
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 = []
|