import { serve } from "https://deno.land/std@0.177.0/http/server.ts"; import { Resend } from "npm:resend@2.0.0"; const resend = new Resend(Deno.env.get("RESEND_API_KEY")); const corsHeaders = { "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Headers": "authorization, x-client-info, apikey, content-type", }; interface PurgeReportRequest { deletedCount: number; adminEmails: string[]; timestamp: string; } const handler = async (req: Request): Promise => { // Handle CORS preflight requests if (req.method === "OPTIONS") { return new Response(null, { headers: corsHeaders }); } try { const { deletedCount, adminEmails, timestamp }: PurgeReportRequest = await req.json(); console.log('Sending purge report email...'); console.log('Deleted count:', deletedCount); console.log('Admin emails:', adminEmails); const emailDate = new Date(timestamp); const formattedDate = emailDate.toLocaleDateString('fr-FR', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit' }); const emailHtml = `

🗑️ Rapport de Purge Automatique

✓ EXÉCUTION RÉUSSIE

Bonjour,

La purge automatique des articles a été exécutée avec succès.

Articles supprimés
${deletedCount}
Date d'exécution
${formattedDate}

📋 Critères de purge appliqués

  • Ă‚ge des articles : Plus de 48 heures (2 jours)
  • Articles prĂ©servĂ©s :
    • Articles Ă©pinglĂ©s par au moins un utilisateur
    • Articles avec plus de 20 lectures
  • FrĂ©quence : Tous les jours Ă  3h00 du matin
${deletedCount === 0 ? `
ℹ️ Information : Aucun article ne correspondait aux critères de purge.
` : ''}
`; const emailResponse = await resend.emails.send({ from: "News Aggregator ", to: adminEmails, subject: `📊 Rapport de purge automatique - ${deletedCount} article${deletedCount > 1 ? 's' : ''} supprimé${deletedCount > 1 ? 's' : ''}`, html: emailHtml, }); console.log("Purge report email sent successfully:", emailResponse); return new Response(JSON.stringify({ success: true, emailResponse }), { status: 200, headers: { "Content-Type": "application/json", ...corsHeaders, }, }); } catch (error: any) { console.error("Error in send-purge-report function:", error); return new Response( JSON.stringify({ error: error?.message || 'Unknown error' }), { status: 500, headers: { "Content-Type": "application/json", ...corsHeaders }, } ); } }; serve(handler);