import type { APIContext } from 'astro';
import { authService } from '@/lib/authService';

export async function GET({ request }: APIContext) {
  try {
    // Создаем клиент PocketBase для текущего запроса
    const pb = authService.createClientFromRequest(request);

    // Проверяем и обновляем сессию
    const user = await authService.validateAndRefreshSession(pb);

    if (user) {
      // Возвращаем информацию о пользователе, если аутентифицирован
      const response = new Response(
        JSON.stringify({
          authenticated: true,
          user: user
        }),
        {
          status: 200,
          headers: {
            'Content-Type': 'application/json'
          }
        }
      );

      // Добавляем заголовки с обновленными куки
      const authHeaders = authService.createAuthHeaders(pb);
      Object.entries(authHeaders).forEach(([key, value]) => {
        response.headers.set(key, value);
      });

      return response;
    } else {
      return new Response(
        JSON.stringify({
          authenticated: false
        }),
        {
          status: 401,
          headers: { 'Content-Type': 'application/json' }
        }
      );
    }
  } catch (error) {
    return new Response(
      JSON.stringify({
        authenticated: false,
        error: 'Ошибка проверки аутентификации'
      }),
      {
        status: 500,
        headers: { 'Content-Type': 'application/json' }
      }
    );
  }
}