finfun.py 1.47 KB
from typing import List

from presupuestov1.schema import OrmBaseModel
from presupuestov1 import schemas


class EntidadesPorFinfun(OrmBaseModel):
    finfun: str
    entidad: int
    nivel: str
    entidad_desc: str | None


class FinfunEstado(OrmBaseModel):
    gestion: int
    finfun: str
    total: float | None
    poblacion: float | None
    n_entidades: int | None
    per_capita: float | None
    total_gestion: float | None
    prop: float | None
    ranking: int | None
    n_pares: int | None
    top1_entidad: int | None
    top1_entidad_desc: str | None
    top1_monto: float | None
    top1_pct: float | None
    top2_entidad: int | None | float
    top2_entidad_desc: str | None
    top2_monto: float | None
    top2_pct: float | None
    top3_entidad: int | None | float
    top3_entidad_desc: str | None
    top3_monto: float | None
    top3_pct: float | None


class FinfunEntidad(OrmBaseModel):
    gestion: int
    finfun: str
    entidad: int
    nivel: str | None
    monto: float | None
    per_capita: float | None
    ranking: int | None
    prop: float | None
    n_entidades: int | None


class FinfunUbigeo(OrmBaseModel):
    gestion: int
    finfun: str
    ubigeo: str
    nivel: str | None
    desc_ubigeo: str | None
    desc_departamento: str | None
    monto: float | None
    per_capita: float | None
    ranking: int | None
    prop: float | None
    n_entidades: int | None


class ClasFinfunEstados(schemas.classifier.ClasFinfun):
    estados: List[FinfunEstado]