import { NextRequest, NextResponse } from 'next/server';
import { getServerSession } from 'next-auth';
import { authOptions } from '@/lib/auth';
import { prisma } from '@/lib/db';

// POST - Inicializar contenido por defecto
export async function POST(request: NextRequest) {
  try {
    const session = await getServerSession(authOptions);
    
    if (!session?.user) {
      return NextResponse.json(
        { success: false, error: 'No autorizado' },
        { status: 401 }
      );
    }
    
    if (session.user.rol !== 'COORDINADOR') {
      return NextResponse.json(
        { success: false, error: 'Solo coordinadores pueden inicializar contenido' },
        { status: 403 }
      );
    }
    
    const escuelaId = session.user.escuelaId!;
    const creadorId = session.user.id;
    
    // Verificar si ya existe contenido
    const existente = await prisma.contenidoWeb.findFirst({
      where: { escuelaId }
    });
    
    if (existente) {
      return NextResponse.json(
        { success: false, error: 'Ya existe contenido para esta escuela' },
        { status: 400 }
      );
    }
    
    // Contenido por defecto
    const contenidoPorDefecto = [
      // Hero Section
      {
        escuelaId,
        tipo: 'HERO_TITULO',
        clave: 'hero_main',
        titulo: 'Formando Campeones del Futuro',
        contenido: 'Campeones',
        orden: 1,
        activo: true,
        creadorId
      },
      {
        escuelaId,
        tipo: 'HERO_DESCRIPCION',
        clave: 'hero_desc',
        contenido: 'Sistema integral de gestión para nuestra escuela de fútbol. Donde la pasión por el deporte se encuentra con la excelencia formativa.',
        orden: 2,
        activo: true,
        creadorId
      },
      // Features
      {
        escuelaId,
        tipo: 'FEATURE_CARD',
        clave: 'feature_alumnos',
        titulo: 'Gestión de Alumnos',
        contenido: 'Control completo de datos personales, evaluaciones y seguimiento del progreso de cada alumno.',
        icono: 'Users',
        orden: 1,
        activo: true,
        creadorId
      },
      {
        escuelaId,
        tipo: 'FEATURE_CARD',
        clave: 'feature_eventos',
        titulo: 'Eventos y Asistencias',
        contenido: 'Organiza entrenamientos, amistosos y campeonatos con control detallado de asistencias.',
        icono: 'Calendar',
        orden: 2,
        activo: true,
        creadorId
      },
      {
        escuelaId,
        tipo: 'FEATURE_CARD',
        clave: 'feature_evaluaciones',
        titulo: 'Evaluaciones',
        contenido: 'Evaluaciones físicas y deportivas para el desarrollo integral de los jugadores.',
        icono: 'Activity',
        orden: 3,
        activo: true,
        creadorId
      },
      {
        escuelaId,
        tipo: 'FEATURE_CARD',
        clave: 'feature_objetivos',
        titulo: 'Objetivos Individuales',
        contenido: 'Seguimiento personalizado de objetivos técnicos, tácticos y psicológicos.',
        icono: 'Target',
        orden: 4,
        activo: true,
        creadorId
      },
      {
        escuelaId,
        tipo: 'FEATURE_CARD',
        clave: 'feature_finanzas',
        titulo: 'Gestión Financiera',
        contenido: 'Control de pagos, matrículas y finanzas de la escuela de manera transparente.',
        icono: 'BookOpen',
        orden: 5,
        activo: true,
        creadorId
      },
      {
        escuelaId,
        tipo: 'FEATURE_CARD',
        clave: 'feature_campeonatos',
        titulo: 'Campeonatos',
        contenido: 'Gestión completa de campeonatos, planteles y estadísticas de competencia.',
        icono: 'Trophy',
        orden: 6,
        activo: true,
        creadorId
      },
      // Sección título
      {
        escuelaId,
        tipo: 'SECCION_TITULO',
        clave: 'features_titulo',
        titulo: 'Sistema Integral de Gestión',
        orden: 1,
        activo: true,
        creadorId
      },
      // Contacto
      {
        escuelaId,
        tipo: 'CONTACTO',
        clave: 'contacto_footer',
        titulo: 'Escuela de Fútbol Lobezno',
        contenido: 'Formando campeones dentro y fuera del campo',
        orden: 1,
        activo: true,
        creadorId
      }
    ];
    
    // Crear todos los contenidos
    await prisma.contenidoWeb.createMany({
      data: contenidoPorDefecto as any[]
    });
    
    return NextResponse.json({
      success: true,
      message: 'Contenido inicializado exitosamente',
      cantidad: contenidoPorDefecto.length
    }, { status: 201 });
    
  } catch (error) {
    console.error('Error inicializando contenido:', error);
    return NextResponse.json(
      { success: false, error: 'Error inicializando contenido' },
      { status: 500 }
    );
  }
}
