chore: rescate y restauracion de modulos base, a76 y digitalizacion tras conflictos

This commit is contained in:
2026-04-28 17:23:14 -05:00
parent bc433c7202
commit 8535fdf5cc
49 changed files with 4725 additions and 4040 deletions

View File

@@ -1,7 +1,7 @@
from typing import Any, Dict
from core.database import get_core_db
from core.security import get_current_user, validate_access_to_resource
from core.security import get_current_user, has_role
from fastapi import APIRouter, Depends, HTTPException, Query
from sqlalchemy.orm import Session
from sqlalchemy import or_
@@ -16,14 +16,10 @@ router = APIRouter(prefix="/containers")
async def list_containers(
page: int = Query(1, ge=1, description="Número de página"),
page_size: int = Query(50, ge=1, le=100, description="Tamaño de página"),
company_id: int = Query(..., description="ID de la empresa"),
search: str = Query(None, description="Término de búsqueda"),
db: Session = Depends(get_core_db),
current_user: dict = Depends(get_current_user),
):
# 🛡️ Permiso de Lectura (Listado)
validate_access_to_resource(db, company_id, current_user, required_permissions=["ref_containers.view"])
skip = (page - 1) * page_size
query = db.query(Container)
@@ -48,13 +44,9 @@ async def list_containers(
@router.get("/{key}", response_model=ContainerDTO)
async def get_container(
key: str,
company_id: int = Query(..., description="ID de la empresa"),
db: Session = Depends(get_core_db),
current_user: dict = Depends(get_current_user),
):
# 🛡️ Permiso de Lectura (Individual)
validate_access_to_resource(db, company_id, current_user, required_permissions=["ref_containers.view"])
obj = db.query(Container).filter(Container.key == key).first()
if not obj:
raise HTTPException(status_code=404, detail="Not found")
@@ -64,13 +56,9 @@ async def get_container(
@router.post("/", response_model=ContainerDTO, status_code=201)
async def create_container(
data: ContainerDTO,
company_id: int = Query(..., description="ID de la empresa"),
db: Session = Depends(get_core_db),
current_user: dict = Depends(get_current_user),
current_user: dict = Depends(has_role("admin")),
):
# 🛡️ Permiso de Creación
validate_access_to_resource(db, company_id, current_user, required_permissions=["ref_containers.create"])
obj = Container(**data.dict())
db.add(obj)
db.commit()
@@ -82,13 +70,9 @@ async def create_container(
async def update_container(
key: str,
data: ContainerDTO,
company_id: int = Query(..., description="ID de la empresa"),
db: Session = Depends(get_core_db),
current_user: dict = Depends(get_current_user),
current_user: dict = Depends(has_role("admin")),
):
# 🛡️ Permiso de Edición
validate_access_to_resource(db, company_id, current_user, required_permissions=["ref_containers.edit"])
obj = db.query(Container).filter(Container.key == key).first()
if not obj:
raise HTTPException(status_code=404, detail="Not found")
@@ -102,16 +86,12 @@ async def update_container(
@router.delete("/{key}", status_code=204)
async def delete_container(
key: str,
company_id: int = Query(..., description="ID de la empresa"),
db: Session = Depends(get_core_db),
current_user: dict = Depends(get_current_user),
current_user: dict = Depends(has_role("admin")),
):
# 🛡️ Permiso de Borrado
validate_access_to_resource(db, company_id, current_user, required_permissions=["ref_containers.delete"])
obj = db.query(Container).filter(Container.key == key).first()
if not obj:
raise HTTPException(status_code=404, detail="Not found")
db.delete(obj)
db.commit()
return None
return None