from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from src.Usuario.usuario_mmr import UsuarioRepo, Usuario, UsuarioModel from backend.db.conexion import get_conexion router = APIRouter() @router.post("/usuarios/", response_model=dict) def crear_usuario(nombre: str, email: str, db: Session = Depends(get_conexion)): repo = UsuarioRepo(db) usuario = Usuario(id=None, nombre=nombre, email=email) usuario_id = repo.add(usuario) return {"id": usuario_id} @router.get("/usuarios/{usuario_id}", response_model=dict) def obtener_usuario(usuario_id: int, db: Session = Depends(get_conexion)): repo = UsuarioRepo(db) usuario = repo.get_by_id(usuario_id) if not usuario: raise HTTPException(status_code=404, detail="Usuario no encontrado") return {"id": usuario.id, "nombre": usuario.nombre, "email": usuario.email, "activo": usuario.activo} @router.get("/usuarios/", response_model=list) def listar_usuarios(db: Session = Depends(get_conexion)): repo = UsuarioRepo(db) usuarios = repo.get_all() return [{"id": u.id, "nombre": u.nombre, "email": u.email, "activo": u.activo} for u in usuarios] @router.delete("/usuarios/{usuario_id}", response_model=dict) def eliminar_usuario(usuario_id: int, db: Session = Depends(get_conexion)): repo = UsuarioRepo(db) exito = repo.delete_by_id(usuario_id) if not exito: raise HTTPException(status_code=404, detail="Usuario no encontrado") return {"ok": True}