// import { CanActivate, ExecutionContext, ForbiddenException, Injectable } from "@nestjs/common"; // import { Reflector } from "@nestjs/core"; // import { FastifyRequest } from "fastify"; // import { ROLES_KEY } from "../../../common/decorators/roles.decorator"; // import { AuthMessage } from "../../../common/enums/message.enum"; // import { RoleEnum } from "../../users/enums/role.enum"; // @Injectable() // export class RoleGuard implements CanActivate { // constructor(private reflector: Reflector) {} // canActivate(context: ExecutionContext): boolean { // const requiredRole = this.reflector.getAllAndOverride(ROLES_KEY, [context.getHandler(), context.getClass()]); // if (!requiredRole) return true; // const req = context.switchToHttp().getRequest(); // const user = req.user; // if (!user) throw new ForbiddenException(AuthMessage.UNAUTHORIZED_ACCESS); // const hasRequiredRole = requiredRole.some((role) => user.roles.includes(role)); // if (!hasRequiredRole) throw new ForbiddenException(AuthMessage.UNAUTHORIZED_ACCESS); // return true; // } // }