CARONTE v1.0 - Plataforma de Gestão Social

This commit is contained in:
2026-02-08 23:10:32 -03:00
commit c98c806865
60 changed files with 9450 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
from sqlalchemy.ext.asyncio import AsyncSession
from app.models.beneficio import Beneficio
from app.models.falecido import Falecido
BENEFICIOS_MAP = [
{
"condicao": "tinha_fgts",
"tipo": "fgts",
"nome": "Saque FGTS",
"descricao": "Saldo do FGTS disponível para saque pelos dependentes habilitados.",
"valor_mult": 3.5,
},
{
"condicao": "tinha_carteira_assinada",
"tipo": "pis",
"nome": "Saque PIS/PASEP",
"descricao": "Saldo de cotas do PIS/PASEP para saque pelos herdeiros.",
"valor_mult": 0.8,
},
{
"condicao": None,
"tipo": "pensao_morte",
"nome": "Pensão por Morte (INSS)",
"descricao": "Benefício mensal pago pelo INSS aos dependentes do segurado falecido.",
"valor_mult": 12,
},
{
"condicao": "tinha_seguro_vida",
"tipo": "seguro_vida",
"nome": "Seguro de Vida",
"descricao": "Indenização do seguro de vida contratado pelo falecido.",
"valor_mult": 24,
},
{
"condicao": "tinha_carteira_assinada",
"tipo": "rescisao",
"nome": "Verbas Rescisórias",
"descricao": "Saldo de salário, férias proporcionais, 13º proporcional.",
"valor_mult": 2,
},
]
async def escanear_beneficios(db: AsyncSession, familia_id: int, falecido: Falecido) -> list[Beneficio]:
salario = falecido.salario_estimado or 2500.0
beneficios = []
for b in BENEFICIOS_MAP:
cond = b.get("condicao")
if cond:
val = getattr(falecido, cond, 0)
if not val:
continue
ben = Beneficio(
familia_id=familia_id,
falecido_id=falecido.id,
tipo=b["tipo"],
nome=b["nome"],
descricao=b["descricao"],
status="identificado",
valor_estimado=round(salario * b["valor_mult"], 2),
)
db.add(ben)
beneficios.append(ben)
await db.commit()
return beneficios