"""Admin routes for the application.""" from flask import Blueprint from app.services.decorators import get_current_user, require_auth, require_role from app.services.scheduler_service import scheduler_service bp = Blueprint("admin", __name__) @bp.route("/") @require_auth @require_role("admin") def admin_only() -> dict[str, str]: """Admin-only endpoint to demonstrate role-based access.""" user = get_current_user() return { "message": f"Hello admin {user['name']}, you have admin access!", "user": user, "admin_info": "This endpoint is only accessible to admin users", } @bp.route("/scheduler/status") @require_auth @require_role("admin") def scheduler_status() -> dict: """Get scheduler status (admin only).""" return scheduler_service.get_scheduler_status() @bp.route("/credits/refill", methods=["POST"]) @require_auth @require_role("admin") def manual_credit_refill() -> dict: """Manually trigger credit refill for all users (admin only).""" return scheduler_service.trigger_credit_refill_now()