Files
afrov2/admin/src/app/actions/settings.ts

62 lines
1.8 KiB
TypeScript

"use server";
import { prisma } from '@/lib/prisma';
import { revalidatePath } from 'next/cache';
export async function getSiteSettings() {
try {
const settings = await prisma.siteSetting.findUnique({
where: { id: 'singleton' }
});
// Default fallback values if not initialized
const defaultSettings = {
siteName: "Afrohub",
siteSlogan: "La plateforme de référence pour l'entrepreneuriat africain.",
contactEmail: "support@afrohub.com",
contactPhone: "+225 00 00 00 00 00",
address: "Abidjan, Côte d'Ivoire",
facebookUrl: "",
twitterUrl: "",
instagramUrl: "",
linkedinUrl: "",
footerText: "© 2025 Afrohub. Tous droits réservés.",
homeBlogShow: true,
homeBlogTitle: "Derniers Articles",
homeBlogSubtitle: "Toutes les actualités de l'entrepreneuriat africain.",
homeBlogCount: 3,
homeBlogSelection: "latest",
homeBlogIds: [],
homeBlogCategories: [],
homeCategories: ["Technologie & IT", "Agriculture & Agrobusiness", "Mode & Textile", "Cosmétique & Beauté"]
};
if (!settings) return defaultSettings;
return settings;
} catch (error) {
console.error("Failed to fetch settings:", error);
return null;
}
}
export async function updateSiteSettings(data: any) {
try {
const settings = await prisma.siteSetting.upsert({
where: { id: 'singleton' },
update: data,
create: {
id: 'singleton',
...data
}
});
revalidatePath('/settings');
revalidatePath('/', 'layout');
return { success: true, settings };
} catch (error) {
console.error("Failed to update settings:", error);
return { success: false, error: "Erreur lors de la mise à jour des paramètres" };
}
}