import { db } from "./client" const ADMIN_SELF_REGISTRATION_KEY = "admin.self_registration_enabled" function resolveEnvFallback(): boolean { return process.env.CMS_ADMIN_SELF_REGISTRATION_ENABLED === "true" } function parseStoredBoolean(value: string): boolean | null { if (value === "true") { return true } if (value === "false") { return false } return null } export async function isAdminSelfRegistrationEnabled(): Promise { try { const setting = await db.systemSetting.findUnique({ where: { key: ADMIN_SELF_REGISTRATION_KEY }, select: { value: true }, }) if (!setting) { return resolveEnvFallback() } const parsed = parseStoredBoolean(setting.value) if (parsed === null) { return resolveEnvFallback() } return parsed } catch { // Fallback while migrations are not yet applied in a local environment. return resolveEnvFallback() } } export async function setAdminSelfRegistrationEnabled(enabled: boolean): Promise { await db.systemSetting.upsert({ where: { key: ADMIN_SELF_REGISTRATION_KEY }, create: { key: ADMIN_SELF_REGISTRATION_KEY, value: enabled ? "true" : "false", }, update: { value: enabled ? "true" : "false", }, }) }