#!/usr/bin/env node import db from "./src/lib/db.js"; import { parseISO, isAfter, startOfDay, addDays } from "date-fns"; const today = startOfDay(new Date()); const threeDaysFromNow = addDays(today, 3); const oneDayFromNow = addDays(today, 1); console.log(`Today: ${today.toISOString().split('T')[0]}`); console.log(`3 days from now: ${threeDaysFromNow.toISOString().split('T')[0]}`); console.log(`1 day from now: ${oneDayFromNow.toISOString().split('T')[0]}`); const projects = db.prepare(` SELECT project_name, finish_date, project_status FROM projects WHERE finish_date IS NOT NULL AND project_status != 'fulfilled' AND project_status != 'cancelled' ORDER BY finish_date ASC `).all(); console.log(`\nFound ${projects.length} active projects with due dates:`); projects.forEach(project => { try { const finishDate = parseISO(project.finish_date); const finishDateStart = startOfDay(finishDate); const isDueIn3Days = finishDateStart.getTime() === threeDaysFromNow.getTime(); const isDueIn1Day = finishDateStart.getTime() === oneDayFromNow.getTime(); const isOverdue = isAfter(today, finishDateStart); let status = ''; if (isDueIn3Days) status = '⚠️ DUE IN 3 DAYS'; else if (isDueIn1Day) status = '🚨 DUE IN 1 DAY'; else if (isOverdue) status = '❌ OVERDUE'; else status = '📅 Future'; console.log(`${status} - ${project.project_name}: ${project.finish_date.split('T')[0]} (${project.project_status})`); } catch (error) { console.log(`❌ Error parsing date for ${project.project_name}: ${project.finish_date}`); } });