"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.authenticate = authenticate; exports.requireAdminRole = requireAdminRole; exports.optionalAuth = optionalAuth; const jsonwebtoken_1 = __importDefault(require("jsonwebtoken")); const client_1 = require("@prisma/client"); const database_1 = require("../../../config/database"); const env_1 = require("../../../config/env"); const roles_1 = require("../../../utils/roles"); /** * Authenticate user via V2 JWT access token * Verifies token and checks user status in Prisma database */ async function authenticate(request, reply) { const authHeader = request.headers.authorization; const queryToken = request.query?.token; // Support both Authorization header and ?token= query param (for /