feat(creatives): implement agency and client views (Tasks 6 & 7) with fatigue panel and Claude queue

This commit is contained in:
Marcos Fargas
2026-10-12 20:08:34 +02:00
parent 7b604c68ca
commit 34ce46774d
17 changed files with 2636 additions and 87 deletions

View File

@@ -49,10 +49,10 @@ export function applyVisibilityScope<T extends Record<string, any>>(
// Rol CLIENT: reglas estrictas de la sección 4
switch (resource) {
case 'creatives':
// Solo status in ('pendiente_aprobacion','aprobada','publicada','retirada') Y visibility = 'client'
// Solo status visibles para el cliente Y visibility = 'client'
query = query
.eq('visibility', 'client')
.in('status', ['pendiente_aprobacion', 'aprobada', 'publicada', 'retirada']);
.in('status', ['pendiente_aprobacion', 'aprobada', 'publicada', 'fatigada', 'retirada', 'rechazada']);
break;
case 'creative_events':

View File

@@ -7,7 +7,7 @@ export interface ActionActor {
userId?: string | null;
}
function getAdminClient() {
export function getAdminClient() {
const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL!;
const serviceRoleKey = process.env.SUPABASE_SERVICE_ROLE_KEY!;
return createClient(supabaseUrl, serviceRoleKey);

View File

@@ -96,10 +96,10 @@ export const DASHBOARD_MODULES: DashboardModuleDef[] = [
},
{
id: 'creatives',
href: '/dashboard/creatives',
label: 'Pipeline creatividades',
href: '/dashboard/creatividades',
label: 'Creatividades Ads',
providers: ['google_drive', 'meta_ads', 'google_ads'],
hint: 'Aprobación de piezas ads y RRSS',
hint: 'Aprobación de anuncios Meta y rendimiento',
},
{
id: 'asistente',