import { eq } from 'drizzle-orm';
import { NextResponse } from 'next/server';
import { db } from '@/db/drizzle';
import { team } from '@/db/schema';
import { handleImageUpload } from '@/lib/image-upload';



export async function GET() {
  try {
    const teams = await db.select().from(team);
    return NextResponse.json(teams);
  } catch (error) {
    console.error('Error fetching teams:', error);
    return NextResponse.json(
      { message: 'Failed to fetch teams' },
      { status: 500 }
    );
  }
}

export async function POST(req: Request) {
  try {
    const formData = await req.formData();

    const name = formData.get('name')?.toString() ?? '';
    const facebook = formData.get('facebook')?.toString() ?? '';
    const twitter = formData.get('twitter')?.toString() ?? '';
    const linkedin = formData.get('linkedin')?.toString() ?? '';
    const title = formData.get('title')?.toString() ?? '';
    const email = formData.get('email')?.toString() ?? '';
    const status = formData.get('status')?.toString() === 'true';
    const about = formData.get('about')?.toString() ?? '';
    const role = formData.get('role')?.toString() ?? '';
    const imageFile = formData.get('image_file') as File | null;

    // Validate required fields
    if (!name) {
      return NextResponse.json(
        { message: 'Name is required' },
        { status: 400 }
      );
    }

    const imagePath = await handleImageUpload(imageFile);

    const newTeam = await db.insert(team).values({
      id: crypto.randomUUID(),
      name,
      facebook,
      twitter,
      linkedin,
      title,
      image: imagePath,
      email,
      status,
      about,
      role,
      createdAt: new Date(),
      updatedAt: new Date(),
    });

    return NextResponse.json(newTeam, { status: 201 });
  } catch (error: any) {
    console.error('Error creating team:', error);
    return NextResponse.json(
      { message: error.message || 'Failed to create team' },
      { status: 500 }
    );
  }
}
