import { NextRequest, NextResponse } from 'next/server';
import { getSupabaseAdmin } from '@/lib/supabase/server';

const CEO_PIN = '5050';

/**
 * GET /api/success-tracking/surveys?pin=5050 - List all surveys (admin only)
 */
export async function GET(request: NextRequest) {
  try {
    const pin = request.headers.get('x-ceo-pin') || new URL(request.url).searchParams.get('pin');
    if (pin !== CEO_PIN) {
      return NextResponse.json({ error: 'Unauthorized' }, { status: 401 });
    }

    const admin = getSupabaseAdmin();
    const url = new URL(request.url);
    const surveyType = url.searchParams.get('type');
    const limit = parseInt(url.searchParams.get('limit') || '100');

    let query = admin
      .from('success_surveys')
      .select('*')
      .order('created_at', { ascending: false })
      .limit(Math.min(limit, 500));

    if (surveyType) query = query.eq('survey_type', surveyType);

    const { data, error } = await query;

    if (error) {
      console.error('Admin surveys fetch error:', error);
      return NextResponse.json({ error: 'Failed to fetch surveys' }, { status: 500 });
    }

    return NextResponse.json({ data });
  } catch (err) {
    console.error('Surveys GET error:', err);
    return NextResponse.json({ error: 'Internal server error' }, { status: 500 });
  }
}
