CARONTE v1.0 - Plataforma de Gestão Social
This commit is contained in:
151
backend/app/schemas/schemas.py
Normal file
151
backend/app/schemas/schemas.py
Normal file
@@ -0,0 +1,151 @@
|
||||
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 = []
|
||||
Reference in New Issue
Block a user