treemap.py 2.12 KB
from sqlalchemy.orm import Mapped, mapped_column
from presupuestov1.model import Base

from sqlalchemy import (
    Integer,
    String,
    Text,
    Numeric,
    Index,
    MetaData,
)


class TreemapObjeto(Base):
    __tablename__ = "treemap_objeto"
    __table_args__ = (
        Index("idx_treemap_objeto_gestion_entidad", "gestion", "entidad"),
    )

    # 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)

    desc_objeto: Mapped[str | None] = mapped_column(Text)
    parent: Mapped[int | None] = mapped_column(Integer)
    devengado: Mapped[float | None] = mapped_column(Numeric)


class TreemapFinFun(Base):
    __tablename__ = "treemap_finfun"
    __table_args__ = (
        Index("idx_treemap_finfun_gestion_entidad", "gestion", "entidad"),
    )

    # 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)

    desc_finfun: Mapped[str | None] = mapped_column(Text)
    parent: Mapped[int | None] = mapped_column(Integer)
    devengado: Mapped[float | None] = mapped_column(Numeric)


class TreemapActeco(Base):
    __tablename__ = "treemap_acteco"
    __table_args__ = (
        Index("idx_treemap_acteco_gestion_entidad", "gestion", "entidad"),
    )

    # 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)

    desc_actividad: Mapped[str | None] = mapped_column(Text)
    parent: Mapped[int | None] = mapped_column(Integer)
    devengado: Mapped[float | None] = mapped_column(Numeric)