import { inject } from '@angular/core';
import { CanActivateFn, Router } from '@angular/router';
import { AuthService } from './services/auth.service';

export const authGuard: CanActivateFn = (route, state) => {
  const authService = inject(AuthService);
  const router = inject(Router);

  const currentUser = authService.currentUserValue;
  if (currentUser) {
    // Verifica se a rota requer uma role específica
    if (route.data['roles'] && !route.data['roles'].some((role: string) => currentUser.role.includes(role))) {
      // Papel não autorizado, redireciona para a home ou uma página de erro
      router.navigate(['/login']);
      return false;
    }
    return true;
  }

  // Não autenticado, redireciona para a página de login
  router.navigate(['/login']);
  return false;
};