diff --git a/src/db/settings.ts b/src/db/settings.ts index d1e3941..58e94ee 100644 --- a/src/db/settings.ts +++ b/src/db/settings.ts @@ -5,12 +5,38 @@ export async function getSettings() { return db.settings.findFirst() } -export function setSettings( +export async function setSettings( key: T, value: Prisma.SettingsCreateInput[T], ) { - return db.settings.update({ - where: { id: 0 }, - data: { [key]: value }, + const isExists = await db.settings.findFirst({ where: { id: 0 } }) + + function update() { + return db.settings.update({ + where: { id: 0 }, + data: { [key]: value }, + }) + } + + if (isExists) { + return update() + } else { + const isSeeded = await seedSettings() + if (isSeeded) return update() + } +} + +async function seedSettings() { + return db.settings.create({ + data: { + feedbackChannelId: '', + makeAnOrderChannelId: '', + portfolioChannelId: '', + priceChannelId: '', + welcomeChannelId: '', + workLoadChannelId: '', + workloadMessageId: '', + workLoadStatus: '', + }, }) }