import { NextRequest, NextResponse } from 'next/server';
import { getAdminSession } from '@/lib/auth/adminAuth';
import { db } from '@/db/client';
import { normalizeAssetUrl } from '@/lib/utils/asset';

export const dynamic = 'force-dynamic';

export async function POST(req: NextRequest) {
  try {
    const session = await getAdminSession(req);
    if (!session.authenticated || !session.user) {
      return NextResponse.json({ error: 'Authentication required' }, { status: 401 });
    }

    if (session.user.role !== 'super_admin') {
      return NextResponse.json(
        { error: 'Access denied: Only Super Administrators can reset application branding.' },
        { status: 403 }
      );
    }

    const resetBranding = await db.resetSystemBranding(`${session.user.name} (${session.user.email})`);

    // Record activity audit log
    try {
      await db.createStoreActivityLog({
        shop_id: 'saas_admin',
        shopify_domain: 'system.global',
        action: 'branding_reset',
        actor: session.user.name,
        description: 'Restored original default application branding (DigiPixora — Meta Pixel & Ads)',
        metadata: {
          admin_id: session.user.id,
          admin_email: session.user.email,
        },
      });
    } catch {
      // ignore
    }

    return NextResponse.json({
      success: true,
      message: 'Branding successfully restored to default.',
      branding: {
        appName: resetBranding.app_name,
        logoUrl: normalizeAssetUrl(resetBranding.logo_url || '/images/logo.png'),
        faviconUrl: normalizeAssetUrl(resetBranding.favicon_url || '/favicon.ico'),
        updatedAt: resetBranding.updated_at,
        updatedBy: resetBranding.updated_by,
      },
    });
  } catch (error: any) {
    console.error('Error resetting branding:', error);
    return NextResponse.json({ error: error?.message || 'Failed to reset branding' }, { status: 500 });
  }
}
