pr0nstar

third

from . import (
acteco,
classifier,
finfun,
objeto,
treemap,
)
......
......@@ -8,58 +8,65 @@ from sqlalchemy import (
Numeric,
Index,
MetaData,
BigInteger,
)
class ActecoEstado(Base):
__tablename__ = "finfun_estado"
__tablename__ = "acteco_estado"
__table_args__ = (
Index("idx_acteco_estado_gestion", "gestion"),
Index("idx_acteco_estado_acteco", "acteco"),
Index("idx_acteco_estado_acteco_gestion", "acteco", "gestion"),
)
gestion: Mapped[int] = mapped_column(Integer, primary_key=True)
acteco: Mapped[str] = mapped_column(Text, primary_key=True)
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
total: Mapped[float | None] = mapped_column(Numeric)
poblacion: Mapped[int | None] = mapped_column(Integer)
gestion: Mapped[int] = mapped_column(Integer)
acteco: Mapped[str] = mapped_column(String(9))
total: Mapped[float | None] = mapped_column(Numeric(30, 15))
poblacion: Mapped[int | None] = mapped_column(Numeric)
n_entidades: Mapped[int | None] = mapped_column(Integer)
per_capita: Mapped[float | None] = mapped_column(Numeric)
total_gestion: Mapped[float | None] = mapped_column(Numeric)
total_gestion: Mapped[float | None] = mapped_column(Numeric(30, 15))
prop: Mapped[float | None] = mapped_column(Numeric)
ranking: Mapped[int | None] = mapped_column(Integer)
n_pares: Mapped[int | None] = mapped_column(Integer)
top1_entidad: Mapped[int | None] = mapped_column(Integer)
top1_entidad: Mapped[int | None] = mapped_column(Numeric)
top1_entidad_desc: Mapped[str | None] = mapped_column(Text)
top1_monto: Mapped[float | None] = mapped_column(Numeric)
top1_monto: Mapped[float | None] = mapped_column(Numeric(30, 15))
top1_pct: Mapped[float | None] = mapped_column(Numeric)
top2_entidad: Mapped[int | None] = mapped_column(Integer)
top2_entidad: Mapped[int | None] = mapped_column(Numeric)
top2_entidad_desc: Mapped[str | None] = mapped_column(Text)
top2_monto: Mapped[float | None] = mapped_column(Numeric)
top2_monto: Mapped[float | None] = mapped_column(Numeric(30, 15))
top2_pct: Mapped[float | None] = mapped_column(Numeric)
top3_entidad: Mapped[int | None] = mapped_column(Integer)
top3_entidad: Mapped[int | None] = mapped_column(Numeric)
top3_entidad_desc: Mapped[str | None] = mapped_column(Text)
top3_monto: Mapped[float | None] = mapped_column(Numeric)
top3_monto: Mapped[float | None] = mapped_column(Numeric(30, 15))
top3_pct: Mapped[float | None] = mapped_column(Numeric)
class ActecoEntidad(Base):
__tablename__ = "acteco_entidad"
__table_args__ = (
Index("idx_finfun_entidad_acteco", "acteco"),
Index("idx_finfun_entidad_acteco_entidad", "acteco", "entidad"),
Index("idx_acteco_entidad_gestion", "gestion"),
Index("idx_acteco_entidad_acteco", "acteco"),
Index("idx_acteco_entidad_acteco_entidad", "acteco", "entidad"),
)
gestion: Mapped[int] = mapped_column(Integer, primary_key=True)
acteco: Mapped[str] = mapped_column(Text, primary_key=True)
entidad: Mapped[int] = mapped_column(Integer, primary_key=True)
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
gestion: Mapped[int] = mapped_column(Integer)
acteco: Mapped[str] = mapped_column(String(9))
entidad: Mapped[int] = mapped_column(Integer)
nivel: Mapped[str | None] = mapped_column(Text)
entidad_desc: Mapped[str | None] = mapped_column(Text)
monto: Mapped[float | None] = mapped_column(Numeric)
monto: Mapped[float | None] = mapped_column(Numeric(30, 15))
per_capita: Mapped[float | None] = mapped_column(Numeric)
ranking: Mapped[int | None] = mapped_column(Integer)
prop: Mapped[float | None] = mapped_column(Numeric)
......
......@@ -11,9 +11,14 @@ from sqlalchemy import (
)
from sqlalchemy.dialects.postgresql import JSONB
from typing import Any
class ClasInstitucional(Base):
__tablename__ = "clas_institucional"
__table_args__ = (
Index("idx_clas_institucional_entidad", "entidad"),
)
entidad: Mapped[int] = mapped_column(Integer, primary_key=True)
desc_entidad: Mapped[str | None] = mapped_column(Text)
......@@ -41,6 +46,9 @@ class ClasInstitucional(Base):
class ClasObjetos(Base):
__tablename__ = "clas_objetos"
__table_args__ = (
Index("idx_clas_objetos_entidad", "objeto"),
)
nivel: Mapped[str | None] = mapped_column(Text)
objeto: Mapped[str] = mapped_column(Text, primary_key=True)
......@@ -55,6 +63,9 @@ class ClasObjetos(Base):
class ClasRubros(Base):
__tablename__ = "clas_rubros"
__table_args__ = (
Index("idx_clas_rubros_entidad", "rubro"),
)
nivel: Mapped[str | None] = mapped_column(Text)
rubro: Mapped[str] = mapped_column(Text, primary_key=True)
......@@ -69,6 +80,9 @@ class ClasRubros(Base):
class ClasFinfun(Base):
__tablename__ = "clas_finfun"
__table_args__ = (
Index("idx_clas_finfun_entidad", "finfun"),
)
nivel: Mapped[str | None] = mapped_column(Text)
finfun: Mapped[str] = mapped_column(Text, primary_key=True)
......@@ -79,3 +93,20 @@ class ClasFinfun(Base):
n_variaciones: Mapped[int | None] = mapped_column(Integer)
descripciones: Mapped[list[dict[str, Any]] | None] = mapped_column(JSONB)
class ClasActeco(Base):
__tablename__ = "clas_acteco"
__table_args__ = (
Index("idx_clas_acteco_entidad", "acteco"),
)
nivel: Mapped[str | None] = mapped_column(Text)
acteco: Mapped[str] = mapped_column(Text, primary_key=True)
desc_acteco: Mapped[str | None] = mapped_column(Text)
gestiones: Mapped[str | None] = mapped_column(Text)
n_gestiones: Mapped[int | None] = mapped_column(Integer)
n_variaciones: Mapped[int | None] = mapped_column(Integer)
descripciones: Mapped[list[dict[str, Any]] | None] = mapped_column(JSONB)
......
......@@ -28,52 +28,58 @@ class EntidadesPorFinfun(Base):
class FinfunEstado(Base):
__tablename__ = "finfun_estado"
__table_args__ = (
Index("idx_finfun_estado_gestion", "gestion"),
Index("idx_finfun_estado_finfun", "finfun"),
Index("idx_finfun_estado_finfun_gestion", "finfun", "gestion"),
)
gestion: Mapped[int] = mapped_column(Integer, primary_key=True)
finfun: Mapped[str] = mapped_column(Text, primary_key=True)
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
total: Mapped[float | None] = mapped_column(Numeric)
poblacion: Mapped[int | None] = mapped_column(Integer)
gestion: Mapped[int] = mapped_column(Integer)
finfun: Mapped[str] = mapped_column(Text)
total: Mapped[float | None] = mapped_column(Numeric(30, 15))
poblacion: Mapped[int | None] = mapped_column(Numeric)
n_entidades: Mapped[int | None] = mapped_column(Integer)
per_capita: Mapped[float | None] = mapped_column(Numeric)
total_gestion: Mapped[float | None] = mapped_column(Numeric)
total_gestion: Mapped[float | None] = mapped_column(Numeric(30, 15))
prop: Mapped[float | None] = mapped_column(Numeric)
ranking: Mapped[int | None] = mapped_column(Integer)
n_pares: Mapped[int | None] = mapped_column(Integer)
top1_entidad: Mapped[int | None] = mapped_column(Integer)
top1_entidad: Mapped[int | None] = mapped_column(Numeric)
top1_entidad_desc: Mapped[str | None] = mapped_column(Text)
top1_monto: Mapped[float | None] = mapped_column(Numeric)
top1_monto: Mapped[float | None] = mapped_column(Numeric(30, 15))
top1_pct: Mapped[float | None] = mapped_column(Numeric)
top2_entidad: Mapped[int | None] = mapped_column(Integer)
top2_entidad: Mapped[int | None] = mapped_column(Numeric)
top2_entidad_desc: Mapped[str | None] = mapped_column(Text)
top2_monto: Mapped[float | None] = mapped_column(Numeric)
top2_monto: Mapped[float | None] = mapped_column(Numeric(30, 15))
top2_pct: Mapped[float | None] = mapped_column(Numeric)
top3_entidad: Mapped[int | None] = mapped_column(Integer)
top3_entidad: Mapped[int | None] = mapped_column(Numeric)
top3_entidad_desc: Mapped[str | None] = mapped_column(Text)
top3_monto: Mapped[float | None] = mapped_column(Numeric)
top3_monto: Mapped[float | None] = mapped_column(Numeric(30, 15))
top3_pct: Mapped[float | None] = mapped_column(Numeric)
class FinfunEntidad(Base):
__tablename__ = "finfun_entidad"
__table_args__ = (
Index("idx_finfun_entidad_gestion", "gestion"),
Index("idx_finfun_entidad_finfun", "finfun"),
Index("idx_finfun_entidad_finfun_entidad", "finfun", "entidad"),
)
gestion: Mapped[int] = mapped_column(Integer, primary_key=True)
finfun: Mapped[str] = mapped_column(Text, primary_key=True)
entidad: Mapped[int] = mapped_column(Integer, primary_key=True)
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
gestion: Mapped[int] = mapped_column(Integer)
finfun: Mapped[str] = mapped_column(Text)
entidad: Mapped[int] = mapped_column(Integer)
nivel: Mapped[str | None] = mapped_column(Text)
entidad_desc: Mapped[str | None] = mapped_column(Text)
monto: Mapped[float | None] = mapped_column(Numeric)
monto: Mapped[float | None] = mapped_column(Numeric(30, 15))
per_capita: Mapped[float | None] = mapped_column(Numeric)
ranking: Mapped[int | None] = mapped_column(Integer)
prop: Mapped[float | None] = mapped_column(Numeric)
......
......@@ -28,52 +28,59 @@ class EntidadesPorObjeto(Base):
class ObjetoEstado(Base):
__tablename__ = "objeto_estado"
__table_args__ = (
Index("idx_objeto_estado_gestion", "gestion"),
Index("idx_objeto_estado_objeto", "objeto"),
Index("idx_objeto_estado_objeto_gestion", "objeto", "gestion"),
)
gestion: Mapped[int] = mapped_column(Integer, primary_key=True)
objeto: Mapped[str] = mapped_column(Text, primary_key=True)
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
total: Mapped[float | None] = mapped_column(Numeric)
poblacion: Mapped[int | None] = mapped_column(Integer)
gestion: Mapped[int] = mapped_column(Integer)
objeto: Mapped[str] = mapped_column(Text)
total: Mapped[float | None] = mapped_column(Numeric(30, 15))
poblacion: Mapped[int | None] = mapped_column(Numeric)
n_entidades: Mapped[int | None] = mapped_column(Integer)
per_capita: Mapped[float | None] = mapped_column(Numeric)
total_gestion: Mapped[float | None] = mapped_column(Numeric)
total_gestion: Mapped[float | None] = mapped_column(Numeric(30, 15))
prop: Mapped[float | None] = mapped_column(Numeric)
ranking: Mapped[int | None] = mapped_column(Integer)
n_pares: Mapped[int | None] = mapped_column(Integer)
top1_entidad: Mapped[int | None] = mapped_column(Integer)
top1_entidad: Mapped[int | None] = mapped_column(Numeric)
top1_entidad_desc: Mapped[str | None] = mapped_column(Text)
top1_monto: Mapped[float | None] = mapped_column(Numeric)
top1_monto: Mapped[float | None] = mapped_column(Numeric(30, 15))
top1_pct: Mapped[float | None] = mapped_column(Numeric)
top2_entidad: Mapped[int | None] = mapped_column(Integer)
top2_entidad: Mapped[int | None] = mapped_column(Numeric)
top2_entidad_desc: Mapped[str | None] = mapped_column(Text)
top2_monto: Mapped[float | None] = mapped_column(Numeric)
top2_monto: Mapped[float | None] = mapped_column(Numeric(30, 15))
top2_pct: Mapped[float | None] = mapped_column(Numeric)
top3_entidad: Mapped[int | None] = mapped_column(Integer)
top3_entidad: Mapped[int | None] = mapped_column(Numeric)
top3_entidad_desc: Mapped[str | None] = mapped_column(Text)
top3_monto: Mapped[float | None] = mapped_column(Numeric)
top3_monto: Mapped[float | None] = mapped_column(Numeric(30, 15))
top3_pct: Mapped[float | None] = mapped_column(Numeric)
class ObjetoEntidad(Base):
__tablename__ = "objeto_entidad"
__table_args__ = (
Index("idx_finfun_entidad_objeto", "objeto"),
Index("idx_finfun_entidad_objeto_entidad", "objeto", "entidad"),
Index("idx_objeto_entidad_gestion", "gestion"),
Index("idx_objeto_entidad_objeto", "objeto"),
Index("idx_objeto_entidad_objeto_entidad", "objeto", "entidad"),
)
gestion: Mapped[int] = mapped_column(Integer, primary_key=True)
objeto: Mapped[str] = mapped_column(Text, primary_key=True)
entidad: Mapped[int] = mapped_column(Integer, primary_key=True)
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
gestion: Mapped[int] = mapped_column(Integer)
objeto: Mapped[str] = mapped_column(Text)
entidad: Mapped[int] = mapped_column(Integer)
nivel: Mapped[str | None] = mapped_column(Text)
entidad_desc: Mapped[str | None] = mapped_column(Text)
monto: Mapped[float | None] = mapped_column(Numeric)
monto: Mapped[float | None] = mapped_column(Numeric(30, 15))
per_capita: Mapped[float | None] = mapped_column(Numeric)
ranking: Mapped[int | None] = mapped_column(Integer)
prop: Mapped[float | None] = mapped_column(Numeric)
......
......@@ -15,48 +15,57 @@ class TreemapObjeto(Base):
__tablename__ = "treemap_objeto"
__table_args__ = (
Index("idx_treemap_objeto_gestion_entidad", "gestion", "entidad"),
Index("idx_treemap_objeto_nivel", "nivel"),
)
# PK compuesta inferida para uso ORM
gestion: Mapped[int] = mapped_column(Integer, primary_key=True)
entidad: Mapped[int] = mapped_column(Integer, primary_key=True)
nivel: Mapped[str] = mapped_column(String(20), primary_key=True)
objeto: Mapped[int] = mapped_column(Integer, primary_key=True)
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
gestion: Mapped[int] = mapped_column(Integer)
entidad: Mapped[int] = mapped_column(Integer)
objeto: Mapped[int] = mapped_column(Integer)
nivel: Mapped[str | None] = mapped_column(String(20))
desc_objeto: Mapped[str | None] = mapped_column(Text)
parent: Mapped[int | None] = mapped_column(Integer)
devengado: Mapped[float | None] = mapped_column(Numeric)
devengado: Mapped[float | None] = mapped_column(Numeric(30, 15))
class TreemapFinFun(Base):
__tablename__ = "treemap_finfun"
__table_args__ = (
Index("idx_treemap_finfun_gestion_entidad", "gestion", "entidad"),
Index("idx_treemap_finfun_nivel", "nivel"),
)
# PK compuesta inferida para uso ORM
gestion: Mapped[int] = mapped_column(Integer, primary_key=True)
entidad: Mapped[int] = mapped_column(Integer, primary_key=True)
nivel: Mapped[str] = mapped_column(String(20), primary_key=True)
finfun: Mapped[int] = mapped_column(String(9), primary_key=True)
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
gestion: Mapped[int] = mapped_column(Integer)
entidad: Mapped[int] = mapped_column(Integer)
finfun: Mapped[str] = mapped_column(String(9))
nivel: Mapped[str | None] = mapped_column(String(20))
desc_finfun: Mapped[str | None] = mapped_column(Text)
parent: Mapped[int | None] = mapped_column(Integer)
devengado: Mapped[float | None] = mapped_column(Numeric)
parent: Mapped[str | None] = mapped_column(String(9))
devengado: Mapped[float | None] = mapped_column(Numeric(30, 15))
class TreemapActeco(Base):
__tablename__ = "treemap_acteco"
__table_args__ = (
Index("idx_treemap_acteco_gestion_entidad", "gestion", "entidad"),
Index("idx_treemap_acteco_nivel", "nivel"),
)
# PK compuesta inferida para uso ORM
gestion: Mapped[int] = mapped_column(Integer, primary_key=True)
entidad: Mapped[int] = mapped_column(Integer, primary_key=True)
nivel: Mapped[str] = mapped_column(String(20), primary_key=True)
acteco: Mapped[int] = mapped_column(String(9), primary_key=True)
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
gestion: Mapped[int] = mapped_column(Integer)
entidad: Mapped[int] = mapped_column(Integer)
acteco: Mapped[str] = mapped_column(String(9))
nivel: Mapped[str | None] = mapped_column(String(20))
desc_actividad: Mapped[str | None] = mapped_column(Text)
parent: Mapped[int | None] = mapped_column(Integer)
devengado: Mapped[float | None] = mapped_column(Numeric)
\ No newline at end of file
desc_acteco: Mapped[str | None] = mapped_column(Text)
parent: Mapped[str | None] = mapped_column(String(9))
devengado: Mapped[float | None] = mapped_column(Numeric(30, 15))
\ No newline at end of file
......
import time
from typing import List, Any, Optional, Union
from fastapi import APIRouter, Depends, Request, HTTPException, Body
from sqlalchemy.orm import Session
from sqlalchemy import and_, or_
from presupuestov1 import model, schema, constant, schemas, models, search
from aiocache import cached
router = APIRouter(
prefix='/entidad',
tags=['entidad'],
)
###############################################################################
# GET
###############################################################################
@router.get('/{entity_id}', response_model=schemas.classifier.ClasInstitucional)
def fetch_entity(
entity_id: int,
db: Session = Depends(model.get_db),
):
ClasInstitucional = models.classifier.ClasInstitucional
return db.query(ClasInstitucional).filter(
ClasInstitucional.entidad == entity_id
).one()
@router.get('/clasificador', response_model=List[schemas.classifier.ClasInstitucional])
def fetch_classifier(
db: Session = Depends(model.get_db),
):
return db.query(models.classifier.ClasInstitucional).all()
@router.get('/{entity_id}/objetos', response_model=List[schemas.treemap.TreemapObjeto])
def fetch_entity(
entity_id: int,
db: Session = Depends(model.get_db),
query: schema.QueryParams = Depends(),
):
TreemapObjeto = models.treemap.TreemapObjeto
return get_entity_connections(entity_id, db, query, TreemapObjeto, 'objeto')
router.get('/{entity_id}/finfuns', response_model=List[schemas.treemap.TreemapFinfun])
def fetch_entity(
entity_id: int,
db: Session = Depends(model.get_db),
query: schema.QueryParams = Depends(),
):
TreemapFinFun = models.treemap.TreemapFinFun
return get_entity_connections(entity_id, db, query, TreemapFinFun, 'finfun')
@router.get('/{entity_id}/actecos', response_model=List[schemas.treemap.TreemapActeco])
def fetch_entity(
entity_id: int,
db: Session = Depends(model.get_db),
query: schema.QueryParams = Depends(),
):
TreemapActeco = models.treemap.TreemapActeco
return get_entity_connections(entity_id, db, query, TreemapActeco, 'acteco')
###############################################################################
# Private
###############################################################################
def get_entity_connections(entity_id, db, query, ClassObject, object_id):
if query.gestion is None:
query.gestion = 0
query_filters = [
ClassObject.entidad == entity_id,
ClassObject.gestion == query.gestion,
]
if query.id is not None:
ids = query.id.split(',')
ids = [int(_.strip()) for _ in ids]
ids = or_([getattr(ClassObject, object_id) == _ for _ in ids])
query_filters.append(ids)
return db.query(ClassObject).filter(and_(*query_filters)).all()
\ No newline at end of file
......@@ -31,7 +31,7 @@ router = APIRouter(
@router.get('/search', response_model=schemas.project.Search)
def fetch_search(
query: schema.QueryParams = Depends(),
query: schema.SearchQueryParams = Depends(),
):
if query.q is None or len(query.q) < 3:
return []
......
......@@ -9,6 +9,10 @@ class OrmBaseModel(BaseModel):
model_config = ConfigDict(from_attributes=True)
class QueryParams(BaseModel):
class SearchQueryParams(BaseModel):
page: Optional[int] = Query(default=1)
q: Optional[str] = Query(default=None)
class QueryParams(BaseModel):
id: Optional[str] = Query(default=None)
gestion: Optional[int] = Query(default=None)
......
from . import (
acteco,
classifier,
finfun,
objeto,
treemap,
project
)
......
from presupuestov1.schema import OrmBaseModel
class ActecoEstado(OrmBaseModel):
gestion: int
acteco: str
total: float | None
poblacion: int | 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
top2_entidad_desc: str | None
top2_monto: float | None
top2_pct: float | None
top3_entidad: int | None
top3_entidad_desc: str | None
top3_monto: float | None
top3_pct: float | None
class ActecoEntidad(OrmBaseModel):
gestion: int
acteco: str
entidad: int
nivel: str | None
entidad_desc: str | None
monto: float | None
per_capita: float | None
ranking: int | None
prop: float | None
n_entidades: int | None
from typing import Any
from presupuestov1.schema import OrmBaseModel
class ClasInstitucional(OrmBaseModel):
entidad: int
desc_entidad: str | None
sigla_entidad: str | None
sector: str | None
desc_sector: str | None
sigla_sector: str | None
subsector: str | None
desc_subsector: str | None
sigla_subsector: str | None
area: str | None
desc_area: str | None
sigla_area: str | None
subarea: str | None
desc_subarea: str | None
sigla_subarea: str | None
gestiones: str | None
n_gestiones: int | None
class ClasObjetos(OrmBaseModel):
nivel: str | None
objeto: str
desc_objeto: str | None
gestiones: str | None
n_gestiones: int | None
n_variaciones: int | None
descripciones: list[dict[str, Any]] | None
class ClasRubros(OrmBaseModel):
nivel: str | None
rubro: str
desc_rubro: str | None
gestiones: str | None
n_gestiones: int | None
n_variaciones: int | None
descripciones: list[dict[str, Any]] | None
class ClasFinfun(OrmBaseModel):
nivel: str | None
finfun: str
desc_finfun: str | None
gestiones: str | None
n_gestiones: int | None
n_variaciones: int | None
descripciones: list[dict[str, Any]] | None
from presupuestov1.schema import OrmBaseModel
class EntidadesPorFinfun(OrmBaseModel):
finfun: str
entidad: int
nivel: str
entidad_desc: str | None
class FinfunEstado(OrmBaseModel):
gestion: int
finfun: str
total: float | None
poblacion: int | 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
top2_entidad_desc: str | None
top2_monto: float | None
top2_pct: float | None
top3_entidad: int | None
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
entidad_desc: str | None
monto: float | None
per_capita: float | None
ranking: int | None
prop: float | None
n_entidades: int | None
from presupuestov1.schema import OrmBaseModel
class EntidadesPorObjeto(OrmBaseModel):
entidad: int
objeto: int
nivel: str
entidad_desc: str | None
class ObjetoEstado(OrmBaseModel):
gestion: int
objeto: str
total: float | None
poblacion: int | 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
top2_entidad_desc: str | None
top2_monto: float | None
top2_pct: float | None
top3_entidad: int | None
top3_entidad_desc: str | None
top3_monto: float | None
top3_pct: float | None
class ObjetoEntidad(OrmBaseModel):
gestion: int
objeto: str
entidad: int
nivel: str | None
entidad_desc: str | None
monto: float | None
per_capita: float | None
ranking: int | None
prop: float | None
n_entidades: int | None
from presupuestov1.schema import OrmBaseModel
class TreemapObjeto(OrmBaseModel):
gestion: int
entidad: int
nivel: str
objeto: int
desc_objeto: str | None
parent: int | None
devengado: float | None
class TreemapFinFun(OrmBaseModel):
gestion: int
entidad: int
nivel: str
finfun: int
desc_finfun: str | None
parent: int | None
devengado: float | None
class TreemapActeco(OrmBaseModel):
gestion: int
entidad: int
nivel: str
acteco: int
desc_actividad: str | None
parent: int | None
devengado: float | None