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

export const AuthGuard: CanActivateFn = (route, state) => {
  const router = inject(Router);
  const authService = inject(AuthService);
  
  console.log('AuthGuard - Rota atual:', state.url);
  console.log('AuthGuard - Usuário autenticado:', authService.isAuthenticated());
  
  // 🚪 Permitir acesso a rotas públicas (signin, etc.)
  const publicRoutes = ['/signin', '/signup', '/forgot-password'];
  if (publicRoutes.includes(state.url)) {
    console.log('AuthGuard - Rota pública, permitindo acesso');
    return true;
  }
  
  if (authService.isAuthenticated()) {
    console.log('AuthGuard - Usuário autenticado, permitindo acesso');
    return true;
  }

  console.log('AuthGuard - Usuário não autenticado, redirecionando para signin');
  router.navigate(['/signin'], { queryParams: { returnUrl: state.url }});
  return false;
}; 