import prisma from '../config/db.js';
import type { UpdateSettingsBody } from '../validators/settings.validator.js';
import { logAudit } from './auditLog.model.js';

// Single-row table (id is always 1) — see prisma/seed.ts for the initial row.
export function getSettings() {
  return prisma.platformSettings.upsert({ where: { id: 1 }, update: {}, create: { id: 1 } });
}

export async function updateSettings(data: UpdateSettingsBody, actorId: number | undefined) {
  const settings = await prisma.platformSettings.upsert({ where: { id: 1 }, update: data, create: { id: 1, ...data } });
  await logAudit({
    target: { type: 'settings', id: 'platform', label: 'Platform settings' },
    actorId, action: 'settings.updated',
  });
  return settings;
}
