import { NextResponse } from 'next/server';
import { dailyService } from '@/services/task-management/daily';
import { getServerSession } from 'next-auth/next';
import { authOptions } from '@/lib/auth';
import { parseDate, isValidAPIDate } from '@/lib/date-utils';

/**
 * API route pour récupérer les tâches avec deadline pour une date donnée
 * GET /api/daily/deadline-tasks?date=YYYY-MM-DD
 */
export async function GET(request: Request) {
  try {
    const session = await getServerSession(authOptions);
    if (!session?.user?.id) {
      return NextResponse.json({ error: 'Non authentifié' }, { status: 401 });
    }

    const { searchParams } = new URL(request.url);
    const dateStr = searchParams.get('date');

    if (!dateStr || !isValidAPIDate(dateStr)) {
      return NextResponse.json(
        { error: 'Date invalide. Format attendu: YYYY-MM-DD' },
        { status: 400 }
      );
    }

    const date = parseDate(dateStr);
    const tasks = await dailyService.getTasksByDeadlineDate(
      session.user.id,
      date
    );

    return NextResponse.json({ tasks });
  } catch (error) {
    console.error('Erreur lors de la récupération des tâches:', error);
    return NextResponse.json(
      { error: 'Erreur interne du serveur' },
      { status: 500 }
    );
  }
}
