import { NextResponse } from 'next/server';
import prisma from '@/lib/prisma';

export const dynamic = 'force-dynamic'; // No caching

export async function POST(request: Request) {
  try {
    const now = new Date();

    // 1. Find all due reminders that haven't been processed
    const dueNotes = await prisma.note.findMany({
      where: {
        reminder: {
          lte: now, // Less than or equal to now
        },
        isReminderDone: false,
        isArchived: false, // Optional: exclude archived notes
        trashedAt: null, // Exclude trashed notes
      },
      select: {
        id: true,
        title: true,
        content: true,
        reminder: true,
        // Add other fields useful for notification
      },
    });

    if (dueNotes.length === 0) {
      return NextResponse.json({ 
        success: true, 
        count: 0, 
        message: 'No due reminders found' 
      });
    }

    // 2. Mark them as done (Atomic operation logic would be better but simple batch update is fine here)
    const noteIds = dueNotes.map((n: any) => n.id);
    
    await prisma.note.updateMany({
      where: {
        id: { in: noteIds }
      },
      data: {
        isReminderDone: true
      }
    });

    // 3. Return the notes to N8N so it can send emails/messages
    return NextResponse.json({
      success: true,
      count: dueNotes.length,
      reminders: dueNotes
    });

  } catch (error) {
    console.error('Error processing cron reminders:', error);
    return NextResponse.json(
      { success: false, error: 'Internal Server Error' },
      { status: 500 }
    );
  }
}
