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

// ВАЖНО: Отключаем пререндеринг, так как это динамический API
export const prerender = false;

export async function DELETE({ params, request }: APIContext) {
    // Получаем ID из URL (то, что в скобках [id])
    const { id } = params;

    if (!id) {
        return new Response(JSON.stringify({ error: 'ID не указан' }), {
            status: 400,
            headers: { 'Content-Type': 'application/json' }
        });
    }

    try {
        const pb = authService.createClientFromRequest(request);

        // 1. Проверка авторизации
        const user = await authService.validateAndRefreshSession(pb);
        if (!user) {
            return new Response(JSON.stringify({ error: 'Пожалуйста, войдите в систему' }), {
                status: 401,
                headers: { 'Content-Type': 'application/json' }
            });
        }

        // 2. Проверка прав (Автор или Админ)
        try {
            const review = await pb.collection('reviews').getOne(id);
            if (review.author !== user.id && user.role !== 'admin') {
                return new Response(JSON.stringify({ error: 'У вас нет прав на удаление' }), {
                    status: 403,
                    headers: { 'Content-Type': 'application/json' }
                });
            }
        } catch (e) {
            return new Response(JSON.stringify({ error: 'Отзыв не найден' }), {
                status: 404,
                headers: { 'Content-Type': 'application/json' }
            });
        }

        // 3. Удаление
        await pb.collection('reviews').delete(id);

        return new Response(JSON.stringify({ success: true }), {
            status: 200,
            headers: { 'Content-Type': 'application/json' }
        });

    } catch (error: any) {
        console.error('API Error:', error);
        return new Response(JSON.stringify({ error: error.message || 'Ошибка сервера' }), {
            status: 500,
            headers: { 'Content-Type': 'application/json' }
        });
    }
}