import { NextResponse } from "next/server"; import { auth } from "@/lib/auth"; import { sitePreferencesService } from "@/services/preferences/site-preferences.service"; import { Role } from "@/prisma/generated/prisma/client"; export async function GET() { try { const session = await auth(); if (!session?.user || session.user.role !== Role.ADMIN) { return NextResponse.json({ error: "Accès refusé" }, { status: 403 }); } // Récupérer les préférences globales du site (ou créer si elles n'existent pas) const sitePreferences = await sitePreferencesService.getOrCreateSitePreferences(); return NextResponse.json(sitePreferences); } catch (error) { console.error("Error fetching admin preferences:", error); return NextResponse.json( { error: "Erreur lors de la récupération des préférences" }, { status: 500 } ); } } export async function PUT(request: Request) { try { const session = await auth(); if (!session?.user || session.user.role !== Role.ADMIN) { return NextResponse.json({ error: "Accès refusé" }, { status: 403 }); } const body = await request.json(); const { homeBackground, eventsBackground, leaderboardBackground } = body; const preferences = await sitePreferencesService.updateSitePreferences({ homeBackground, eventsBackground, leaderboardBackground, }); return NextResponse.json(preferences); } catch (error) { console.error("Error updating admin preferences:", error); return NextResponse.json( { error: "Erreur lors de la mise à jour des préférences" }, { status: 500 } ); } }