diff --git a/src/db/banner.ts b/src/db/banner.ts index d436b55..f3e7fa5 100644 --- a/src/db/banner.ts +++ b/src/db/banner.ts @@ -5,9 +5,31 @@ export function getBanner() { return db.banner.findFirst() } -export function setBanner(key: T, value: Prisma.BannerCreateInput[T]) { - return db.banner.update({ - where: { id: 0 }, - data: { [key]: value } +export async function setBanner( + key: T, + value: Prisma.BannerCreateInput[T], +) { + const isExists = await db.banner.findFirst() + + function update() { + return db.banner.update({ + where: { id: 0 }, + data: { [key]: value }, + }) + } + + if (isExists) return update() + else { + const isSeeded = await seedBanner() + if (isSeeded) return update() + } +} + +async function seedBanner() { + return db.banner.create({ + data: { + ticketUrl: '', + welcomeUrl: '', + }, }) } diff --git a/src/db/role.ts b/src/db/role.ts index c54a502..78b6cf1 100644 --- a/src/db/role.ts +++ b/src/db/role.ts @@ -5,9 +5,31 @@ export function getRole() { return db.role.findFirst() } -export function setRole(key: T, value: Prisma.RoleCreateInput[T]) { - return db.role.update({ - where: { id: 0 }, - data: { [key]: value } +export async function setRole( + key: T, + value: Prisma.RoleCreateInput[T], +) { + const isExists = await db.role.findFirst() + + function update() { + return db.role.update({ + where: { id: 0 }, + data: { [key]: value }, + }) + } + + if (isExists) return update() + else { + const isSeeded = await seedRole() + if (isSeeded) return update() + } +} + +async function seedRole() { + return db.role.create({ + data: { + ticketRoleId: '', + welcomeRoleId: '', + }, }) } diff --git a/src/db/settings.ts b/src/db/settings.ts index 92cd32a..79420d6 100644 --- a/src/db/settings.ts +++ b/src/db/settings.ts @@ -9,7 +9,7 @@ export async function setSettings( key: T, value: Prisma.SettingsCreateInput[T], ) { - const isExists = await db.settings.findFirst({ where: { id: 1 } }) + const isExists = await db.settings.findFirst() function update() { return db.settings.update({