import { defineMiddleware } from 'astro:middleware';

export const onRequest = defineMiddleware(async (context, next) => {
  const { url, cookies, redirect } = context;
  const pathname = url.pathname;

  // Получаем куку авторизации
  const authCookie = cookies.get('pb_auth');
  const hasAuthCookie = authCookie?.value;

  // Проверяем, что это страница авторизации (/auth/*)
  const isAuthPage = pathname.startsWith('/auth');

  if (isAuthPage && hasAuthCookie) {
    // Если пользователь уже авторизован — редирект на главную или на страницу, откуда пришёл
    const redirectUrl = url.searchParams.get('redirect');
    
    // Если есть redirect параметр и он не ведёт на auth-страницу — используем его
    if (redirectUrl && !redirectUrl.startsWith('/auth')) {
      return redirect(redirectUrl);
    }
    
    // Иначе — редирект на главную
    return redirect('/');
  }

  // Для всех остальных случаев — пропускаем запрос
  return next();
});
