from fastapi import APIRouter, Depends from pydantic import BaseModel from backend.models.permission.constants import DefaultPermissionEnum from backend.services.permission.role_service import RoleService from common.token.token_manager import TokenManager token_manager = TokenManager() router = APIRouter() role_service = RoleService() class DeleteRoleRequest(BaseModel): role_id: str class DeleteRoleResponse(BaseModel): success: bool @router.post( "/delete", response_model=DeleteRoleResponse, operation_id="delete-role", summary="Delete Role", description="Delete a role after checking if it is referenced by any user." ) async def delete_role( req: DeleteRoleRequest, _: bool = Depends(token_manager.has_all_permissions([DefaultPermissionEnum.CHANGE_ROLES.value.permission_key])) ) -> DeleteRoleResponse: await role_service.delete_role(req.role_id) return DeleteRoleResponse(success=True)