import { NextRequest, NextResponse } from 'next/server'; import { createClient } from '@/lib/supabase/server'; import { resolveActiveTenant } from '@/lib/tenant-context'; import { isAgencyRole, userRole } from '@/lib/agency'; import { fetchAdDailyPaged } from '@/lib/fetch-ad-daily'; export const dynamic = 'force-dynamic'; export async function GET(req: NextRequest) { const supabase = await createClient(); const { data: { user }, } = await supabase.auth.getUser(); if (!user) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }); } const ctx = await resolveActiveTenant(user); if (!ctx.tenantId || ctx.portfolioWide) { return NextResponse.json({ rows: [], warning: 'Selecciona un cliente en Contexto', }); } const since = req.nextUrl.searchParams.get('since') || ''; const until = req.nextUrl.searchParams.get('until') || ''; if (!/^\d{4}-\d{2}-\d{2}$/.test(since) || !/^\d{4}-\d{2}-\d{2}$/.test(until)) { return NextResponse.json({ error: 'since y until (YYYY-MM-DD)' }, { status: 400 }); } const agency = isAgencyRole(userRole(user)); const rows = await fetchAdDailyPaged({ tenantId: ctx.tenantId, useServiceRole: agency && ctx.viaView, since, until, }); return NextResponse.json({ rows, since, until, tenant_label: ctx.label, }); }