Skip to content

Commit

Permalink
Merge pull request #18 from guivaloz:guivaloz/mapped
Browse files Browse the repository at this point in the history
Mapped
  • Loading branch information
guivaloz authored Jun 10, 2024
2 parents e395135 + 79c2aaa commit 0ed3374
Show file tree
Hide file tree
Showing 19 changed files with 288 additions and 229 deletions.
30 changes: 17 additions & 13 deletions carina/core/autoridades/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@
Autoridades, modelos
"""

from sqlalchemy import Boolean, Column, ForeignKey, Integer, String
from sqlalchemy.orm import relationship
from typing import List

from sqlalchemy import ForeignKey, String
from sqlalchemy.orm import Mapped, mapped_column, relationship

from lib.database import Base
from lib.universal_mixin import UniversalMixin
Expand All @@ -16,23 +18,25 @@ class Autoridad(Base, UniversalMixin):
__tablename__ = "autoridades"

# Clave primaria
id = Column(Integer, primary_key=True)
id: Mapped[int] = mapped_column(primary_key=True)

# Claves foráneas
distrito_id = Column(Integer, ForeignKey("distritos.id"), index=True, nullable=False)
distrito = relationship("Distrito", back_populates="autoridades")
municipio_id = Column(Integer, ForeignKey("municipios.id"), index=True, nullable=False)
municipio = relationship("Municipio", back_populates="autoridades")
distrito_id: Mapped[int] = mapped_column(ForeignKey("distritos.id"))
distrito: Mapped["Distrito"] = relationship(back_populates="autoridades")
materia_id: Mapped[int] = mapped_column(ForeignKey("materias.id"))
materia: Mapped["Materia"] = relationship(back_populates="autoridades")
municipio_id: Mapped[int] = mapped_column(ForeignKey("municipios.id"))
municipio: Mapped["Municipio"] = relationship(back_populates="autoridades")

# Columnas
clave = Column(String(16), nullable=False, unique=True)
descripcion = Column(String(256), nullable=False)
descripcion_corta = Column(String(64), nullable=False)
es_extinto = Column(Boolean, nullable=False, default=False)
clave: Mapped[str] = mapped_column(String(16), unique=True)
descripcion: Mapped[str] = mapped_column(String(256))
descripcion_corta: Mapped[str] = mapped_column(String(64))
es_extinto: Mapped[bool] = mapped_column(default=False)

# Hijos
exh_exhortos = relationship("ExhExhorto", back_populates="autoridad")
usuarios = relationship("Usuario", back_populates="autoridad")
exh_exhortos: Mapped[List["ExhExhorto"]] = relationship(back_populates="autoridad")
usuarios: Mapped[List["Usuario"]] = relationship(back_populates="autoridad")

def __repr__(self):
"""Representación"""
Expand Down
21 changes: 11 additions & 10 deletions carina/core/bitacoras/models.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
"""
Bitacoras, modelos
"""
from sqlalchemy import Column, ForeignKey, Integer, String
from sqlalchemy.orm import relationship

from sqlalchemy import ForeignKey, String
from sqlalchemy.orm import Mapped, mapped_column, relationship

from lib.database import Base
from lib.universal_mixin import UniversalMixin
Expand All @@ -15,18 +16,18 @@ class Bitacora(Base, UniversalMixin):
__tablename__ = "bitacoras"

# Clave primaria
id = Column(Integer, primary_key=True)
id: Mapped[int] = mapped_column(primary_key=True)

# Claves foráneas
modulo_id = Column(Integer, ForeignKey("modulos.id"), index=True, nullable=False)
modulo = relationship("Modulo", back_populates="bitacoras")
usuario_id = Column(Integer, ForeignKey("usuarios.id"), index=True, nullable=False)
usuario = relationship("Usuario", back_populates="bitacoras")
modulo_id: Mapped[int] = mapped_column(ForeignKey("modulos.id"))
modulo: Mapped["Modulo"] = relationship(back_populates="bitacoras")
usuario_id: Mapped[int] = mapped_column(ForeignKey("usuarios.id"))
usuario: Mapped["Usuario"] = relationship(back_populates="bitacoras")

# Columnas
descripcion = Column(String(256), nullable=False)
url = Column(String(512), nullable=False)
descripcion: Mapped[str] = mapped_column(String(256))
url: Mapped[str] = mapped_column(String(512))

def __repr__(self):
"""Representación"""
return f"<Bitacora {self.creado} {self.descripcion}>"
return f"<Bitacora {self.id}>"
24 changes: 15 additions & 9 deletions carina/core/distritos/models.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
"""
Distritos, modelos
"""
from sqlalchemy import Boolean, Column, Integer, String
from sqlalchemy.orm import relationship

from typing import List

from sqlalchemy import String
from sqlalchemy.orm import Mapped, mapped_column, relationship

from lib.database import Base
from lib.universal_mixin import UniversalMixin
Expand All @@ -15,17 +18,20 @@ class Distrito(Base, UniversalMixin):
__tablename__ = "distritos"

# Clave primaria
id = Column(Integer, primary_key=True)
id: Mapped[int] = mapped_column(primary_key=True)

# Columnas
clave = Column(String(16), nullable=False, unique=True)
nombre = Column(String(256), nullable=False, unique=True)
nombre_corto = Column(String(64), nullable=False)
es_distrito = Column(Boolean, nullable=False, default=False)
es_jurisdiccional = Column(Boolean, nullable=False, default=False)
clave: Mapped[str] = mapped_column(String(16), unique=True)
nombre: Mapped[str] = mapped_column(String(256), unique=True)
nombre_corto: Mapped[str] = mapped_column(String(64))
es_distrito_judicial: Mapped[bool] = mapped_column(default=False)
es_distrito: Mapped[bool] = mapped_column(default=False)
es_jurisdiccional: Mapped[bool] = mapped_column(default=False)

# Hijos
autoridades = relationship("Autoridad", back_populates="distrito")
autoridades: Mapped[List["Autoridad"]] = relationship("Autoridad", back_populates="distrito")
domicilios: Mapped[List["Domicilio"]] = relationship("Domicilio", back_populates="distrito")
oficinas: Mapped[List["Oficina"]] = relationship("Oficina", back_populates="distrito")

def __repr__(self):
"""Representación"""
Expand Down
25 changes: 11 additions & 14 deletions carina/core/entradas_salidas/models.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
"""
Entradas-Salidas, modelos
"""
from collections import OrderedDict

from sqlalchemy import Column, Enum, ForeignKey, Integer, String
from sqlalchemy.orm import relationship
from sqlalchemy import Enum, ForeignKey, String
from sqlalchemy.orm import Mapped, mapped_column, relationship

from lib.database import Base
from lib.universal_mixin import UniversalMixin
Expand All @@ -13,26 +12,24 @@
class EntradaSalida(Base, UniversalMixin):
"""EntradaSalida"""

TIPOS = OrderedDict(
[
("INGRESO", "Ingresó"),
("SALIO", "Salió"),
]
)
TIPOS = {
"INGRESO": "Ingresó",
"SALIO": "Salió",
}

# Nombre de la tabla
__tablename__ = "entradas_salidas"

# Clave primaria
id = Column(Integer, primary_key=True)
id: Mapped[int] = mapped_column(primary_key=True)

# Claves foráneas
usuario_id = Column(Integer, ForeignKey("usuarios.id"), index=True, nullable=False)
usuario = relationship("Usuario", back_populates="entradas_salidas")
usuario_id: Mapped[int] = mapped_column(ForeignKey("usuarios.id"))
usuario: Mapped["Usuario"] = relationship(back_populates="entradas_salidas")

# Columnas
tipo = Column(Enum(*TIPOS, name="entradas_salidas_tipos", native_enum=False), index=True, nullable=False)
direccion_ip = Column(String(64), nullable=False)
tipo: Mapped[str] = mapped_column(Enum(*TIPOS, name="entradas_salidas_tipos", native_enum=False), index=True)
direccion_ip: Mapped[str] = mapped_column(String(64))

def __repr__(self):
"""Representación"""
Expand Down
14 changes: 8 additions & 6 deletions carina/core/estados/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@
Estados, modelos
"""

from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import relationship
from typing import List

from sqlalchemy import String
from sqlalchemy.orm import Mapped, mapped_column, relationship

from lib.database import Base
from lib.universal_mixin import UniversalMixin
Expand All @@ -16,14 +18,14 @@ class Estado(Base, UniversalMixin):
__tablename__ = "estados"

# Clave primaria
id = Column(Integer, primary_key=True)
id: Mapped[int] = mapped_column(primary_key=True)

# Columnas
clave = Column(String(2), nullable=False, unique=True)
nombre = Column(String(256), nullable=False)
clave: Mapped[str] = mapped_column(String(16), unique=True)
nombre: Mapped[str] = mapped_column(String(256))

# Hijos
municipios = relationship("Municipio", back_populates="estado")
municipios: Mapped[List["Municipio"]] = relationship("Municipio", back_populates="estado")

def __repr__(self):
"""Representación"""
Expand Down
14 changes: 8 additions & 6 deletions carina/core/exh_areas/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@
Exh Areas, modelos
"""

from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import relationship
from typing import List

from sqlalchemy import String
from sqlalchemy.orm import Mapped, mapped_column, relationship

from lib.database import Base
from lib.universal_mixin import UniversalMixin
Expand All @@ -16,14 +18,14 @@ class ExhArea(Base, UniversalMixin):
__tablename__ = "exh_areas"

# Clave primaria
id = Column(Integer, primary_key=True)
id: Mapped[int] = mapped_column(primary_key=True)

# Columnas
clave = Column(String(16), unique=True, nullable=False)
nombre = Column(String(256), unique=True, nullable=False)
clave: Mapped[str] = mapped_column(String(16), unique=True)
nombre: Mapped[str] = mapped_column(String(256))

# Hijos
exh_exhortos = relationship("ExhExhorto", back_populates="exh_area")
exh_exhortos: Mapped[List["ExhExhorto"]] = relationship("ExhExhorto", back_populates="exh_area")

def __repr__(self):
"""Representación"""
Expand Down
Loading

0 comments on commit 0ed3374

Please sign in to comment.