"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
/