entity.py 2.24 KB
from sqlalchemy.orm import Mapped, mapped_column
from presupuestov1.model import Base

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


class EntidadDistribuciones(Base):
    __tablename__ = "entidad_distribuciones"
    __table_args__ = (
        Index("idx_entidad_distribuciones_tipo", "tipo"),
        Index("idx_entidad_distribuciones_tipo_codigo", "tipo_codigo"),
        Index("idx_entidad_distribuciones_codigo", "codigo"),
        Index("idx_entidad_distribuciones_dimension", "dimension"),
        Index("idx_entidad_distribuciones_gestion", "gestion"),
        Index("idx_entidad_distribuciones_compos1", "tipo_codigo", "codigo", "dimension", "gestion"),
        {"schema": "web"},
    )

    id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)

    tipo: Mapped[str] = mapped_column(String(8))
    tipo_codigo: Mapped[str] = mapped_column(String(16))
    codigo: Mapped[str] = mapped_column(String(8))
    dimension: Mapped[str] = mapped_column(String(10))
    gestion: Mapped[int] = mapped_column(Integer)
    padre: Mapped[str] = mapped_column(String(8))
    hijo: Mapped[str] = mapped_column(String(8))
    devengado: Mapped[float] = mapped_column(Numeric(30, 15))

    desc_padre: Mapped[str] = mapped_column(Text)
    desc_hijo: Mapped[str] = mapped_column(Text)


class EntidadResumenes(Base):
    __tablename__ = "entidad_resumenes"
    __table_args__ = (
        Index("idx_entidad_resumenes_tipo", "tipo"),
        Index("idx_entidad_resumenes_tipo_codigo", "tipo_codigo"),
        Index("idx_entidad_resumenes_codigo", "codigo"),
        Index("idx_entidad_resumenes_gestion", "gestion"),
        Index("idx_entidad_resumenes_compos1", "tipo_codigo", "codigo"),
        {"schema": "web"},
    )

    id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)

    tipo: Mapped[str] = mapped_column(String(8))
    tipo_codigo: Mapped[str] = mapped_column(String(16))
    codigo: Mapped[str] = mapped_column(String(8))
    gestion: Mapped[int] = mapped_column(Integer)

    devengado: Mapped[float] = mapped_column(Numeric(30, 15))
    ranking: Mapped[int] = mapped_column(Integer)


    desc: Mapped[str] = mapped_column(Text)
    desc_padre: Mapped[str] = mapped_column(Text)