from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.ext.asyncio import AsyncSession from app.db.session import get_db from app.deps import get_current_user, get_tenant_id from app.users import schemas, service router = APIRouter() @router.get("") async def list_users( tenant_id: str = Depends(get_tenant_id), db: AsyncSession = Depends(get_db), ): return await service.list_users(db, tenant_id) @router.post("/invite") async def invite_user( data: schemas.InviteRequest, current_user: dict = Depends(get_current_user), tenant_id: str = Depends(get_tenant_id), db: AsyncSession = Depends(get_db), ): try: invite = await service.invite_user(db, tenant_id, data.email, data.rol) return {"token": invite.token, "email": invite.email} except ValueError as e: raise HTTPException(status_code=422, detail=str(e)) @router.delete("/{user_id}") async def delete_user( user_id: str, tenant_id: str = Depends(get_tenant_id), db: AsyncSession = Depends(get_db), ): try: await service.deactivate_user(db, tenant_id, user_id) return {"ok": True} except ValueError as e: raise HTTPException(status_code=422, detail=str(e))