Skip to content

Commit

Permalink
Merge pull request #17 from guivaloz/guivaloz/mapping
Browse files Browse the repository at this point in the history
Guivaloz/mapping
  • Loading branch information
guivaloz authored Jul 12, 2024
2 parents 15e8730 + 490b24d commit 307153f
Show file tree
Hide file tree
Showing 64 changed files with 2,775 additions and 1,591 deletions.
1 change: 1 addition & 0 deletions .gcloudignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

__pycache__/

/.idea
/.git
/.github
/.venv
Expand Down
13 changes: 0 additions & 13 deletions .github/workflows/black.yml

This file was deleted.

4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,17 @@
.env
.DS_Store
.~lock.*

*.csv
*.py[cod]
*.log
*.sql

poetry.lock

*.egg-info/
__pycache__/

/.idea/
/venv/
/.venv/
28 changes: 15 additions & 13 deletions citas_v2_admin/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ def create_app() -> FastAPI:
)

# Rutas
app.include_router(autoridades)
app.include_router(bitacoras)
app.include_router(autoridades, include_in_schema=False)
app.include_router(bitacoras, include_in_schema=False)
app.include_router(boletines)
app.include_router(cit_categorias)
app.include_router(cit_citas)
Expand All @@ -69,16 +69,16 @@ def create_app() -> FastAPI:
app.include_router(cit_horas_disponibles)
app.include_router(cit_oficinas_servicios)
app.include_router(cit_servicios)
app.include_router(distritos)
app.include_router(domicilios)
app.include_router(entradas_salidas)
app.include_router(modulos)
app.include_router(oficinas)
app.include_router(permisos)
app.include_router(roles)
app.include_router(usuarios)
app.include_router(usuarios_oficinas)
app.include_router(usuarios_roles)
app.include_router(distritos, include_in_schema=False)
app.include_router(domicilios, include_in_schema=False)
app.include_router(entradas_salidas, include_in_schema=False)
app.include_router(modulos, include_in_schema=False)
app.include_router(oficinas, include_in_schema=False)
app.include_router(permisos, include_in_schema=False)
app.include_router(roles, include_in_schema=False)
app.include_router(usuarios, include_in_schema=False)
app.include_router(usuarios_oficinas, include_in_schema=False)
app.include_router(usuarios_roles, include_in_schema=False)

# Paginación
add_pagination(app)
Expand All @@ -87,7 +87,9 @@ def create_app() -> FastAPI:
@app.get("/")
async def root():
"""Mensaje de Bienvenida"""
return {"message": "API con autentificación para realizar operaciones con la base de datos de Citas V2. Hecho con FastAPI."}
return {
"message": "API con autentificación para realizar operaciones con la base de datos de Citas V2. Hecho con FastAPI."
}

# Entregar
return app
58 changes: 30 additions & 28 deletions citas_v2_admin/core/autoridades/models.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
"""
Autoridades, modelos
"""
from collections import OrderedDict

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

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,44 +14,45 @@
class Autoridad(Base, UniversalMixin):
"""Autoridad"""

ORGANOS_JURISDICCIONALES = OrderedDict(
[
("NO DEFINIDO", "No Definido"),
("JUZGADO DE PRIMERA INSTANCIA", "Juzgado de Primera Instancia"),
("JUZGADO DE PRIMERA INSTANCIA ORAL", "Juzgado de Primera Instancia Oral"),
("PLENO O SALA DEL TSJ", "Pleno o Sala del TSJ"),
("TRIBUNAL DISTRITAL", "Tribunal Distrital"),
("TRIBUNAL DE CONCILIACION Y ARBITRAJE", "Tribunal de Conciliación y Arbitraje"),
]
)
ORGANOS_JURISDICCIONALES = {
"NO DEFINIDO": "No Definido",
"JUZGADO DE PRIMERA INSTANCIA": "Juzgado de Primera Instancia",
"JUZGADO DE PRIMERA INSTANCIA ORAL": "Juzgado de Primera Instancia Oral",
"PLENO O SALA DEL TSJ": "Pleno o Sala del TSJ",
"TRIBUNAL DISTRITAL": "Tribunal Distrital",
"TRIBUNAL DE CONCILIACION Y ARBITRAJE": "Tribunal de Conciliación y Arbitraje",
}

# Nombre de la tabla
__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")
materia_id = Column(Integer, ForeignKey("materias.id"), index=True, nullable=False)
materia = relationship("Materia", back_populates="autoridades")
distrito_id: Mapped[int] = mapped_column(ForeignKey("distritos.id"), index=True)
distrito: Mapped["Distrito"] = relationship(back_populates="autoridades")
materia_id: Mapped[int] = mapped_column(ForeignKey("materias.id"), index=True)
materia: Mapped["Materia"] = 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_jurisdiccional = Column(Boolean(), nullable=False, default=False)
es_notaria = Column(Boolean(), nullable=False, default=False)
es_organo_especializado = Column(Boolean(), nullable=False, default=False)
organo_jurisdiccional = Column(
Enum(*ORGANOS_JURISDICCIONALES, name="tipos_organos_jurisdiccionales", native_enum=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_jurisdiccional: Mapped[bool] = mapped_column(default=False)
es_notaria: Mapped[bool] = mapped_column(default=False)
es_organo_especializado: Mapped[bool] = mapped_column(default=False)
organo_jurisdiccional: Mapped[str] = mapped_column(
Enum(
*ORGANOS_JURISDICCIONALES,
name="tipos_organos_jurisdiccionales",
native_enum=False,
),
index=True,
nullable=False,
)

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

@property
def es_creador_glosas(self):
Expand Down
19 changes: 10 additions & 9 deletions citas_v2_admin/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,17 +16,17 @@ 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"), index=True)
modulo: Mapped["Modulo"] = relationship(back_populates="bitacoras")
usuario_id: Mapped[int] = mapped_column(ForeignKey("usuarios.id"), index=True)
usuario: Mapped["Usuario"] = relationship(back_populates="bitacoras")

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

@property
def modulo_nombre(self):
Expand Down
36 changes: 16 additions & 20 deletions citas_v2_admin/core/boletines/models.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
"""
Boletines, modelos
"""
from collections import OrderedDict

from sqlalchemy import JSON, Column, DateTime, Enum, Integer, String
from datetime import datetime

from sqlalchemy import JSON, Enum, Integer, String
from sqlalchemy.orm import Mapped, mapped_column

from lib.database import Base
from lib.universal_mixin import UniversalMixin
Expand All @@ -12,31 +14,25 @@
class Boletin(Base, UniversalMixin):
"""Boletin"""

ESTADOS = OrderedDict(
[
("BORRADOR", "Borrador"),
("PROGRAMADO", "Programado"),
("ENVIADO", "Enviado"),
]
)
ESTADOS = {
"BORRADOR": "Borrador",
"PROGRAMADO": "Programado",
"ENVIADO": "Enviado",
}

# Nombre de la tabla
__tablename__ = "boletines"

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

# Columnas
asunto = Column(String(256), nullable=False)
contenido = Column(JSON())
estado = Column(
Enum(*ESTADOS, name="boletines_estados", native_enum=False),
index=True,
nullable=False,
)
envio_programado = Column(DateTime(), nullable=False)
puntero = Column(Integer, nullable=False, default=0)
termino_programado = Column(DateTime(), nullable=False)
asunto: Mapped[str] = mapped_column(String(256))
contenido: Mapped[dict] = mapped_column(JSON())
estado: Mapped[str] = mapped_column(Enum(*ESTADOS, name="boletines_estados", native_enum=False), index=True)
envio_programado: Mapped[datetime]
puntero: Mapped[int] = mapped_column(Integer, default=0)
termino_programado: Mapped[datetime]

def __repr__(self):
"""Representación"""
Expand Down
11 changes: 6 additions & 5 deletions citas_v2_admin/core/cit_categorias/models.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
"""
Cit Categorias, modelos
"""
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import relationship

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,13 +16,13 @@ class CitCategoria(Base, UniversalMixin):
__tablename__ = "cit_categorias"

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

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

# Hijos
cit_servicios = relationship("CitServicio", back_populates="cit_categoria")
cit_servicios: Mapped["CitServicio"] = relationship("CitServicio", back_populates="cit_categoria")

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

0 comments on commit 307153f

Please sign in to comment.