60 lines
1.9 KiB
JavaScript
60 lines
1.9 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.getSetting = getSetting;
|
|
exports.getSettingBool = getSettingBool;
|
|
exports.setSetting = setSetting;
|
|
exports.getAllSettings = getAllSettings;
|
|
exports.getPublicSettings = getPublicSettings;
|
|
const client_1 = require("@prisma/client");
|
|
const prisma = new client_1.PrismaClient();
|
|
// Default settings
|
|
const DEFAULT_SETTINGS = {
|
|
customerSupportTicketsEnabled: 'false',
|
|
// Vertrags-Cockpit: Fristenschwellen (in Tagen)
|
|
deadlineCriticalDays: '14', // Rot: Kritisch
|
|
deadlineWarningDays: '42', // Gelb: Warnung (6 Wochen)
|
|
deadlineOkDays: '90', // Grün: OK (3 Monate)
|
|
};
|
|
async function getSetting(key) {
|
|
const setting = await prisma.appSetting.findUnique({
|
|
where: { key },
|
|
});
|
|
if (setting) {
|
|
return setting.value;
|
|
}
|
|
// Return default if exists
|
|
return DEFAULT_SETTINGS[key] ?? null;
|
|
}
|
|
async function getSettingBool(key) {
|
|
const value = await getSetting(key);
|
|
return value === 'true';
|
|
}
|
|
async function setSetting(key, value) {
|
|
await prisma.appSetting.upsert({
|
|
where: { key },
|
|
update: { value },
|
|
create: { key, value },
|
|
});
|
|
}
|
|
async function getAllSettings() {
|
|
const settings = await prisma.appSetting.findMany();
|
|
// Start with defaults, then override with stored values
|
|
const result = { ...DEFAULT_SETTINGS };
|
|
for (const setting of settings) {
|
|
result[setting.key] = setting.value;
|
|
}
|
|
return result;
|
|
}
|
|
async function getPublicSettings() {
|
|
// Settings that should be available to all authenticated users (including customers)
|
|
const publicKeys = ['customerSupportTicketsEnabled'];
|
|
const allSettings = await getAllSettings();
|
|
const result = {};
|
|
for (const key of publicKeys) {
|
|
if (key in allSettings) {
|
|
result[key] = allSettings[key];
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
//# sourceMappingURL=appSetting.service.js.map
|