// app/api/cron/cleanup-users/route.ts import { deactivateInactiveUsers } from '@/lib/users/auth/partners-auth'; import { NextRequest } from 'next/server'; export async function GET(request: NextRequest) { try { // 보안: 헤더 또는 쿼리 파라미터로 인증 const authToken = request.headers.get('x-cron-secret') || request.nextUrl.searchParams.get('secret'); if (authToken !== process.env.CRON_SECRET) { console.log('Unauthorized cron request'); return new Response('Unauthorized', { status: 401 }); } console.log(`[${new Date().toISOString()}] Starting user cleanup job...`); const result = await deactivateInactiveUsers(90); // 90일 const message = `User cleanup completed: ${result.deactivatedCount} users deactivated`; console.log(`[${new Date().toISOString()}] ${message}`); return Response.json({ success: true, message, deactivatedCount: result.deactivatedCount, timestamp: new Date().toISOString() }); } catch (error) { const errorMessage = `User cleanup job failed: ${error.message}`; console.error(`[${new Date().toISOString()}] ${errorMessage}`); return Response.json({ success: false, error: errorMessage, timestamp: new Date().toISOString() }, { status: 500 }); } }