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

export async function GET({ request }: APIContext) {
    try {
        const pb = authService.createClientFromRequest(request);

        // Получаем последние 3 отзыва без аутентификации
        const reviews = await pb.collection('reviews').getList(1, 3, {
            sort: '-created',
            expand: 'author'
        });

        // Форматируем отзывы
        const formattedReviews = reviews.items.map(review => {
            const authorName = review.expand?.author?.name ||
                review.expand?.author?.email?.split('@')[0] ||
                'Anonym';

            return {
                id: review.id,
                title: review.title,
                content: review.content,
                rating: review.rating,
                author: authorName,
                createdAt: review.created
            };
        });

        return new Response(JSON.stringify(formattedReviews), {
            status: 200,
            headers: {
                'Content-Type': 'application/json',
                'Cache-Control': 'public, max-age=60'
            }
        });
    } catch (error: unknown) {
        console.error('Ошибка при получении последних отзывов:', error);

        return new Response(
            JSON.stringify({
                error: error instanceof Error ? error.message : 'Fehler beim Laden der Bewertungen'
            }),
            {
                status: 500,
                headers: { 'Content-Type': 'application/json' }
            }
        );
    }
}