from fastapi import APIRouter, Depends from pydantic import BaseModel from backend.models.permission.constants import DefaultPermissionEnum from backend.services.permission.permission_service import PermissionService from common.token.token_manager import TokenManager token_manager = TokenManager() router = APIRouter() permission_service = PermissionService() class DeletePermissionRequest(BaseModel): permission_id: str class DeletePermissionResponse(BaseModel): success: bool @router.post( "/delete", response_model=DeletePermissionResponse, operation_id="delete-permission", summary="Delete Permission", description="Delete a permission after checking if it is referenced by any role." ) async def delete_permission( req: DeletePermissionRequest, _: bool = Depends(token_manager.has_all_permissions([DefaultPermissionEnum.CHANGE_PERMISSIONS.value.permission_key])) ) -> DeletePermissionResponse: await permission_service.delete_permission(req.permission_id) return DeletePermissionResponse(success=True)