-
-
{log.message || '-'}
+
+
+ {log.level}
+ {log.category && {log.category}}
+
+
{log.message || '-'}
{formatDate(log.timestamp)}
diff --git a/frontend/src/pages/Tasks.tsx b/frontend/src/pages/Tasks.tsx
new file mode 100644
index 0000000..91e0001
--- /dev/null
+++ b/frontend/src/pages/Tasks.tsx
@@ -0,0 +1,80 @@
+import { Card, CardContent, CardHeader, Input, TextArea, Button, Chip, TextField, Label } from '@heroui/react';
+import { ListChecks, Trash2, Plus } from 'lucide-react';
+import { useApp } from '../context/AppContext';
+import { SectionCard } from '../components/shared/SectionCard';
+import { formatDate } from '../utils/formatters';
+
+const STATUS_LABELS: Record
= { open: 'Offen', in_progress: 'In Bearbeitung', done: 'Erledigt' };
+const STATUS_COLORS: Record = { open: 'warning', in_progress: 'accent', done: 'success' };
+
+export function Tasks() {
+ const { tasks, taskDraft, setTaskDraft, createTask, updateTaskStatus, deleteTask } = useApp();
+
+ return (
+
+
+
+
Aufgaben ({tasks.length})
+
+ {tasks.length ? tasks.map((t) => (
+
+
+
+
+
{t.title}
+
von {t.createdByTag} · {formatDate(t.createdAt)}
+
+
+
+ {t.description && {t.description}
}
+
+
+
+ {STATUS_LABELS[t.status] || t.status}
+
+ {t.assigneeId && Zugewiesen an User-ID {t.assigneeId}}
+
+
+
+ )) : (
+
+
+ Keine Aufgaben
+
+ )}
+
+
+
+
+
+ Neue Aufgabe
+
+
+
+
+ setTaskDraft((s) => ({ ...s, title: e.target.value }))} />
+
+
+
+
+ Eine zuständige Person lässt sich aktuell nur über /task create in Discord zuweisen.
+
+
+
+
+
+ );
+}
diff --git a/frontend/src/types/index.ts b/frontend/src/types/index.ts
index 9d052d0..9321636 100644
--- a/frontend/src/types/index.ts
+++ b/frontend/src/types/index.ts
@@ -34,6 +34,7 @@ export type NavKey =
| 'settings'
| 'modules'
| 'events'
+ | 'tasks'
| 'admin';
export type TicketRecord = {
@@ -141,6 +142,19 @@ export type RegisterApplication = {
createdAt?: string;
};
+export type StaffTask = {
+ id: string;
+ guildId: string;
+ title: string;
+ description?: string | null;
+ status: 'open' | 'in_progress' | 'done';
+ assigneeId?: string | null;
+ createdBy: string;
+ createdByTag: string;
+ createdAt?: string;
+ updatedAt?: string;
+};
+
export type MusicSession = {
guildId: string;
nowPlaying?: { title: string; url: string } | null;
diff --git a/frontend/src/utils/formatters.ts b/frontend/src/utils/formatters.ts
index 916f586..a62428f 100644
--- a/frontend/src/utils/formatters.ts
+++ b/frontend/src/utils/formatters.ts
@@ -7,6 +7,19 @@ export function formatDate(value?: string | number | null) {
return `${date.toLocaleDateString('de-DE')} ${date.toLocaleTimeString('de-DE', { hour: '2-digit', minute: '2-digit' })}`;
}
+export function formatDuration(ms?: number | null) {
+ if (!ms || ms < 0) return '-';
+ const totalMinutes = Math.floor(ms / 60000);
+ const days = Math.floor(totalMinutes / (60 * 24));
+ const hours = Math.floor((totalMinutes % (60 * 24)) / 60);
+ const minutes = totalMinutes % 60;
+ const parts: string[] = [];
+ if (days) parts.push(`${days}d`);
+ if (hours) parts.push(`${hours}h`);
+ if (minutes || !parts.length) parts.push(`${minutes}m`);
+ return parts.join(' ');
+}
+
export function guildIconUrl(guild?: Guild | null) {
if (!guild) return undefined;
if (guild.icon) return `https://cdn.discordapp.com/icons/${guild.id}/${guild.icon}.png`;
diff --git a/node_modules/.prisma/client/edge.js b/node_modules/.prisma/client/edge.js
index 90f97fb..a11b681 100644
--- a/node_modules/.prisma/client/edge.js
+++ b/node_modules/.prisma/client/edge.js
@@ -113,6 +113,8 @@ exports.Prisma.GuildSettingsScalarFieldEnum = {
registerConfig: 'registerConfig',
serverStatsEnabled: 'serverStatsEnabled',
serverStatsConfig: 'serverStatsConfig',
+ lockdownConfig: 'lockdownConfig',
+ tasksEnabled: 'tasksEnabled',
supportRoleId: 'supportRoleId',
updatedAt: 'updatedAt',
createdAt: 'createdAt'
@@ -282,6 +284,19 @@ exports.Prisma.AutomodStrikeScalarFieldEnum = {
createdAt: 'createdAt'
};
+exports.Prisma.StaffTaskScalarFieldEnum = {
+ id: 'id',
+ guildId: 'guildId',
+ title: 'title',
+ description: 'description',
+ status: 'status',
+ assigneeId: 'assigneeId',
+ createdBy: 'createdBy',
+ createdByTag: 'createdByTag',
+ createdAt: 'createdAt',
+ updatedAt: 'updatedAt'
+};
+
exports.Prisma.SortOrder = {
asc: 'asc',
desc: 'desc'
@@ -329,7 +344,8 @@ exports.Prisma.ModelName = {
RegisterApplication: 'RegisterApplication',
RegisterApplicationAnswer: 'RegisterApplicationAnswer',
RegisterApplicationNote: 'RegisterApplicationNote',
- AutomodStrike: 'AutomodStrike'
+ AutomodStrike: 'AutomodStrike',
+ StaffTask: 'StaffTask'
};
/**
* Create the Client
@@ -377,13 +393,13 @@ const config = {
}
}
},
- "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel GuildSettings {\n guildId String @id\n welcomeChannelId String?\n logChannelId String?\n automodEnabled Boolean?\n automodConfig Json?\n levelingEnabled Boolean?\n ticketsEnabled Boolean?\n musicEnabled Boolean?\n statuspageEnabled Boolean?\n statuspageConfig Json?\n dynamicVoiceEnabled Boolean?\n dynamicVoiceConfig Json?\n supportLoginConfig Json?\n birthdayEnabled Boolean?\n birthdayConfig Json?\n reactionRolesEnabled Boolean?\n reactionRolesConfig Json?\n eventsEnabled Boolean?\n registerEnabled Boolean?\n registerConfig Json?\n serverStatsEnabled Boolean?\n serverStatsConfig Json?\n supportRoleId String?\n updatedAt DateTime @updatedAt\n createdAt DateTime @default(now())\n}\n\nmodel Ticket {\n id String @id @default(cuid())\n ticketNumber Int @default(autoincrement())\n userId String\n channelId String\n guildId String\n topic String?\n priority String @default(\"normal\")\n status String @default(\"neu\")\n claimedBy String?\n transcript String?\n firstClaimAt DateTime?\n firstResponseAt DateTime?\n kbSuggestionSentAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel TicketAutomationRule {\n id String @id @default(cuid())\n guildId String\n name String\n condition Json\n action Json\n active Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([guildId, active])\n}\n\nmodel KnowledgeBaseArticle {\n id String @id @default(cuid())\n guildId String\n title String\n keywords String[]\n content String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([guildId])\n}\n\nmodel Level {\n id String @id @default(cuid())\n userId String\n guildId String\n xp Int @default(0)\n level Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([userId, guildId], name: \"userId_guildId\")\n}\n\nmodel TicketSupportSession {\n id String @id @default(cuid())\n guildId String\n userId String\n roleId String\n startedAt DateTime @default(now())\n endedAt DateTime?\n durationSeconds Int?\n\n @@index([guildId, userId, endedAt])\n}\n\nmodel Birthday {\n id String @id @default(cuid())\n userId String\n guildId String\n birthDate String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([userId, guildId], name: \"birthday_user_guild\")\n @@index([guildId])\n}\n\nmodel ReactionRoleSet {\n id String @id @default(cuid())\n guildId String\n channelId String\n messageId String?\n title String?\n description String?\n entries Json\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([guildId])\n @@index([guildId, messageId])\n}\n\nmodel Event {\n id String @id @default(cuid())\n guildId String\n title String\n description String?\n channelId String\n startTime DateTime\n repeatType String @default(\"none\")\n repeatConfig Json?\n reminderOffsetMinutes Int @default(60)\n roleId String?\n isActive Boolean @default(true)\n lastReminderAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n signups EventSignup[]\n\n @@index([guildId])\n @@index([guildId, startTime])\n}\n\nmodel EventSignup {\n id String @id @default(cuid())\n eventId String\n guildId String\n userId String\n createdAt DateTime @default(now())\n canceledAt DateTime?\n\n event Event @relation(fields: [eventId], references: [id])\n\n @@unique([eventId, userId])\n @@index([guildId, eventId])\n}\n\nmodel RegisterForm {\n id String @id @default(cuid())\n guildId String\n name String\n description String?\n reviewChannelId String?\n notifyRoleIds String[]\n isActive Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n fields RegisterFormField[]\n applications RegisterApplication[]\n\n @@index([guildId, isActive])\n}\n\nmodel RegisterFormField {\n id String @id @default(cuid())\n formId String\n label String\n type String\n required Boolean @default(false)\n order Int @default(0)\n\n form RegisterForm @relation(fields: [formId], references: [id], onDelete: Cascade)\n}\n\nmodel RegisterApplication {\n id String @id @default(cuid())\n guildId String\n userId String\n formId String\n status String @default(\"pending\")\n reviewedBy String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n answers RegisterApplicationAnswer[]\n notes RegisterApplicationNote[]\n\n form RegisterForm @relation(fields: [formId], references: [id])\n\n @@index([guildId, formId, status])\n}\n\nmodel RegisterApplicationAnswer {\n id String @id @default(cuid())\n applicationId String\n fieldId String\n value String\n\n application RegisterApplication @relation(fields: [applicationId], references: [id], onDelete: Cascade)\n}\n\nmodel RegisterApplicationNote {\n id String @id @default(cuid())\n applicationId String\n authorId String\n authorTag String\n body String\n createdAt DateTime @default(now())\n\n application RegisterApplication @relation(fields: [applicationId], references: [id], onDelete: Cascade)\n\n @@index([applicationId])\n}\n\nmodel AutomodStrike {\n id String @id @default(cuid())\n guildId String\n userId String\n filterKey String\n weight Int @default(1)\n reason String?\n createdAt DateTime @default(now())\n\n @@index([guildId, userId])\n}\n",
- "inlineSchemaHash": "00907c08e253201d3ba8c91348f5a6c710985e251aa2332c64028584c3aa563d",
+ "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel GuildSettings {\n guildId String @id\n welcomeChannelId String?\n logChannelId String?\n automodEnabled Boolean?\n automodConfig Json?\n levelingEnabled Boolean?\n ticketsEnabled Boolean?\n musicEnabled Boolean?\n statuspageEnabled Boolean?\n statuspageConfig Json?\n dynamicVoiceEnabled Boolean?\n dynamicVoiceConfig Json?\n supportLoginConfig Json?\n birthdayEnabled Boolean?\n birthdayConfig Json?\n reactionRolesEnabled Boolean?\n reactionRolesConfig Json?\n eventsEnabled Boolean?\n registerEnabled Boolean?\n registerConfig Json?\n serverStatsEnabled Boolean?\n serverStatsConfig Json?\n lockdownConfig Json?\n tasksEnabled Boolean?\n supportRoleId String?\n updatedAt DateTime @updatedAt\n createdAt DateTime @default(now())\n}\n\nmodel Ticket {\n id String @id @default(cuid())\n ticketNumber Int @default(autoincrement())\n userId String\n channelId String\n guildId String\n topic String?\n priority String @default(\"normal\")\n status String @default(\"neu\")\n claimedBy String?\n transcript String?\n firstClaimAt DateTime?\n firstResponseAt DateTime?\n kbSuggestionSentAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel TicketAutomationRule {\n id String @id @default(cuid())\n guildId String\n name String\n condition Json\n action Json\n active Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([guildId, active])\n}\n\nmodel KnowledgeBaseArticle {\n id String @id @default(cuid())\n guildId String\n title String\n keywords String[]\n content String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([guildId])\n}\n\nmodel Level {\n id String @id @default(cuid())\n userId String\n guildId String\n xp Int @default(0)\n level Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([userId, guildId], name: \"userId_guildId\")\n}\n\nmodel TicketSupportSession {\n id String @id @default(cuid())\n guildId String\n userId String\n roleId String\n startedAt DateTime @default(now())\n endedAt DateTime?\n durationSeconds Int?\n\n @@index([guildId, userId, endedAt])\n}\n\nmodel Birthday {\n id String @id @default(cuid())\n userId String\n guildId String\n birthDate String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([userId, guildId], name: \"birthday_user_guild\")\n @@index([guildId])\n}\n\nmodel ReactionRoleSet {\n id String @id @default(cuid())\n guildId String\n channelId String\n messageId String?\n title String?\n description String?\n entries Json\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([guildId])\n @@index([guildId, messageId])\n}\n\nmodel Event {\n id String @id @default(cuid())\n guildId String\n title String\n description String?\n channelId String\n startTime DateTime\n repeatType String @default(\"none\")\n repeatConfig Json?\n reminderOffsetMinutes Int @default(60)\n roleId String?\n isActive Boolean @default(true)\n lastReminderAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n signups EventSignup[]\n\n @@index([guildId])\n @@index([guildId, startTime])\n}\n\nmodel EventSignup {\n id String @id @default(cuid())\n eventId String\n guildId String\n userId String\n createdAt DateTime @default(now())\n canceledAt DateTime?\n\n event Event @relation(fields: [eventId], references: [id])\n\n @@unique([eventId, userId])\n @@index([guildId, eventId])\n}\n\nmodel RegisterForm {\n id String @id @default(cuid())\n guildId String\n name String\n description String?\n reviewChannelId String?\n notifyRoleIds String[]\n isActive Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n fields RegisterFormField[]\n applications RegisterApplication[]\n\n @@index([guildId, isActive])\n}\n\nmodel RegisterFormField {\n id String @id @default(cuid())\n formId String\n label String\n type String\n required Boolean @default(false)\n order Int @default(0)\n\n form RegisterForm @relation(fields: [formId], references: [id], onDelete: Cascade)\n}\n\nmodel RegisterApplication {\n id String @id @default(cuid())\n guildId String\n userId String\n formId String\n status String @default(\"pending\")\n reviewedBy String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n answers RegisterApplicationAnswer[]\n notes RegisterApplicationNote[]\n\n form RegisterForm @relation(fields: [formId], references: [id])\n\n @@index([guildId, formId, status])\n}\n\nmodel RegisterApplicationAnswer {\n id String @id @default(cuid())\n applicationId String\n fieldId String\n value String\n\n application RegisterApplication @relation(fields: [applicationId], references: [id], onDelete: Cascade)\n}\n\nmodel RegisterApplicationNote {\n id String @id @default(cuid())\n applicationId String\n authorId String\n authorTag String\n body String\n createdAt DateTime @default(now())\n\n application RegisterApplication @relation(fields: [applicationId], references: [id], onDelete: Cascade)\n\n @@index([applicationId])\n}\n\nmodel AutomodStrike {\n id String @id @default(cuid())\n guildId String\n userId String\n filterKey String\n weight Int @default(1)\n reason String?\n createdAt DateTime @default(now())\n\n @@index([guildId, userId])\n}\n\nmodel StaffTask {\n id String @id @default(cuid())\n guildId String\n title String\n description String?\n status String @default(\"open\")\n assigneeId String?\n createdBy String\n createdByTag String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([guildId, status])\n}\n",
+ "inlineSchemaHash": "dd490209a409a4de826b25917a50782fd5c31d0031a2591beb5f3ae7bf58affb",
"copyEngine": true
}
config.dirname = '/'
-config.runtimeDataModel = JSON.parse("{\"models\":{\"GuildSettings\":{\"dbName\":null,\"fields\":[{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"welcomeChannelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"logChannelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"automodEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"automodConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"levelingEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ticketsEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"musicEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"statuspageEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"statuspageConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"dynamicVoiceEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"dynamicVoiceConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"supportLoginConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"birthdayEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"birthdayConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reactionRolesEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reactionRolesConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"eventsEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"registerEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"registerConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"serverStatsEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"serverStatsConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"supportRoleId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Ticket\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ticketNumber\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"channelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"topic\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"priority\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":\"normal\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":\"neu\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"claimedBy\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"transcript\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"firstClaimAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"firstResponseAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kbSuggestionSentAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"TicketAutomationRule\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"condition\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"action\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"active\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"default\":true,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"KnowledgeBaseArticle\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"keywords\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"content\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Level\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"xp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"level\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[[\"userId\",\"guildId\"]],\"uniqueIndexes\":[{\"name\":\"userId_guildId\",\"fields\":[\"userId\",\"guildId\"]}],\"isGenerated\":false},\"TicketSupportSession\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"roleId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"endedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"durationSeconds\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Birthday\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"birthDate\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[[\"userId\",\"guildId\"]],\"uniqueIndexes\":[{\"name\":\"birthday_user_guild\",\"fields\":[\"userId\",\"guildId\"]}],\"isGenerated\":false},\"ReactionRoleSet\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"channelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"messageId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"entries\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Event\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"channelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"startTime\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"repeatType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":\"none\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"repeatConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reminderOffsetMinutes\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":60,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"roleId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"isActive\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"default\":true,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastReminderAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"signups\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"EventSignup\",\"relationName\":\"EventToEventSignup\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"EventSignup\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"eventId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"canceledAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"event\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Event\",\"relationName\":\"EventToEventSignup\",\"relationFromFields\":[\"eventId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"eventId\",\"userId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"eventId\",\"userId\"]}],\"isGenerated\":false},\"RegisterForm\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reviewChannelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"notifyRoleIds\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"isActive\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"default\":true,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"fields\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterFormField\",\"relationName\":\"RegisterFormToRegisterFormField\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"applications\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterApplication\",\"relationName\":\"RegisterApplicationToRegisterForm\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"RegisterFormField\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"formId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"label\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"required\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"order\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"form\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterForm\",\"relationName\":\"RegisterFormToRegisterFormField\",\"relationFromFields\":[\"formId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"RegisterApplication\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"formId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":\"pending\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reviewedBy\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"answers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterApplicationAnswer\",\"relationName\":\"RegisterApplicationToRegisterApplicationAnswer\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"notes\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterApplicationNote\",\"relationName\":\"RegisterApplicationToRegisterApplicationNote\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"form\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterForm\",\"relationName\":\"RegisterApplicationToRegisterForm\",\"relationFromFields\":[\"formId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"RegisterApplicationAnswer\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"applicationId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"fieldId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"value\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"application\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterApplication\",\"relationName\":\"RegisterApplicationToRegisterApplicationAnswer\",\"relationFromFields\":[\"applicationId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"RegisterApplicationNote\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"applicationId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"authorId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"authorTag\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"body\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"application\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterApplication\",\"relationName\":\"RegisterApplicationToRegisterApplicationNote\",\"relationFromFields\":[\"applicationId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"AutomodStrike\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"filterKey\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"weight\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":1,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reason\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}")
+config.runtimeDataModel = JSON.parse("{\"models\":{\"GuildSettings\":{\"dbName\":null,\"fields\":[{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"welcomeChannelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"logChannelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"automodEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"automodConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"levelingEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ticketsEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"musicEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"statuspageEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"statuspageConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"dynamicVoiceEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"dynamicVoiceConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"supportLoginConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"birthdayEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"birthdayConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reactionRolesEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reactionRolesConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"eventsEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"registerEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"registerConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"serverStatsEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"serverStatsConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lockdownConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"tasksEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"supportRoleId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Ticket\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ticketNumber\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"channelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"topic\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"priority\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":\"normal\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":\"neu\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"claimedBy\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"transcript\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"firstClaimAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"firstResponseAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kbSuggestionSentAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"TicketAutomationRule\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"condition\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"action\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"active\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"default\":true,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"KnowledgeBaseArticle\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"keywords\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"content\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Level\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"xp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"level\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[[\"userId\",\"guildId\"]],\"uniqueIndexes\":[{\"name\":\"userId_guildId\",\"fields\":[\"userId\",\"guildId\"]}],\"isGenerated\":false},\"TicketSupportSession\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"roleId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"endedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"durationSeconds\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Birthday\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"birthDate\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[[\"userId\",\"guildId\"]],\"uniqueIndexes\":[{\"name\":\"birthday_user_guild\",\"fields\":[\"userId\",\"guildId\"]}],\"isGenerated\":false},\"ReactionRoleSet\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"channelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"messageId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"entries\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Event\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"channelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"startTime\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"repeatType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":\"none\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"repeatConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reminderOffsetMinutes\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":60,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"roleId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"isActive\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"default\":true,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastReminderAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"signups\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"EventSignup\",\"relationName\":\"EventToEventSignup\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"EventSignup\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"eventId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"canceledAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"event\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Event\",\"relationName\":\"EventToEventSignup\",\"relationFromFields\":[\"eventId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"eventId\",\"userId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"eventId\",\"userId\"]}],\"isGenerated\":false},\"RegisterForm\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reviewChannelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"notifyRoleIds\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"isActive\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"default\":true,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"fields\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterFormField\",\"relationName\":\"RegisterFormToRegisterFormField\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"applications\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterApplication\",\"relationName\":\"RegisterApplicationToRegisterForm\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"RegisterFormField\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"formId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"label\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"required\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"order\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"form\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterForm\",\"relationName\":\"RegisterFormToRegisterFormField\",\"relationFromFields\":[\"formId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"RegisterApplication\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"formId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":\"pending\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reviewedBy\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"answers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterApplicationAnswer\",\"relationName\":\"RegisterApplicationToRegisterApplicationAnswer\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"notes\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterApplicationNote\",\"relationName\":\"RegisterApplicationToRegisterApplicationNote\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"form\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterForm\",\"relationName\":\"RegisterApplicationToRegisterForm\",\"relationFromFields\":[\"formId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"RegisterApplicationAnswer\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"applicationId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"fieldId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"value\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"application\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterApplication\",\"relationName\":\"RegisterApplicationToRegisterApplicationAnswer\",\"relationFromFields\":[\"applicationId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"RegisterApplicationNote\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"applicationId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"authorId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"authorTag\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"body\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"application\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterApplication\",\"relationName\":\"RegisterApplicationToRegisterApplicationNote\",\"relationFromFields\":[\"applicationId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"AutomodStrike\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"filterKey\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"weight\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":1,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reason\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"StaffTask\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":\"open\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"assigneeId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdBy\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdByTag\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}")
defineDmmfProperty(exports.Prisma, config.runtimeDataModel)
config.engineWasm = undefined
diff --git a/node_modules/.prisma/client/index-browser.js b/node_modules/.prisma/client/index-browser.js
index b0529b1..440cf9d 100644
--- a/node_modules/.prisma/client/index-browser.js
+++ b/node_modules/.prisma/client/index-browser.js
@@ -145,6 +145,8 @@ exports.Prisma.GuildSettingsScalarFieldEnum = {
registerConfig: 'registerConfig',
serverStatsEnabled: 'serverStatsEnabled',
serverStatsConfig: 'serverStatsConfig',
+ lockdownConfig: 'lockdownConfig',
+ tasksEnabled: 'tasksEnabled',
supportRoleId: 'supportRoleId',
updatedAt: 'updatedAt',
createdAt: 'createdAt'
@@ -314,6 +316,19 @@ exports.Prisma.AutomodStrikeScalarFieldEnum = {
createdAt: 'createdAt'
};
+exports.Prisma.StaffTaskScalarFieldEnum = {
+ id: 'id',
+ guildId: 'guildId',
+ title: 'title',
+ description: 'description',
+ status: 'status',
+ assigneeId: 'assigneeId',
+ createdBy: 'createdBy',
+ createdByTag: 'createdByTag',
+ createdAt: 'createdAt',
+ updatedAt: 'updatedAt'
+};
+
exports.Prisma.SortOrder = {
asc: 'asc',
desc: 'desc'
@@ -361,7 +376,8 @@ exports.Prisma.ModelName = {
RegisterApplication: 'RegisterApplication',
RegisterApplicationAnswer: 'RegisterApplicationAnswer',
RegisterApplicationNote: 'RegisterApplicationNote',
- AutomodStrike: 'AutomodStrike'
+ AutomodStrike: 'AutomodStrike',
+ StaffTask: 'StaffTask'
};
/**
diff --git a/node_modules/.prisma/client/index.d.ts b/node_modules/.prisma/client/index.d.ts
index 57fa0bc..3518c2d 100644
--- a/node_modules/.prisma/client/index.d.ts
+++ b/node_modules/.prisma/client/index.d.ts
@@ -93,6 +93,11 @@ export type RegisterApplicationNote = $Result.DefaultSelection
+/**
+ * Model StaffTask
+ *
+ */
+export type StaffTask = $Result.DefaultSelection
/**
* ## Prisma Client ʲˢ
@@ -376,6 +381,16 @@ export class PrismaClient<
* ```
*/
get automodStrike(): Prisma.AutomodStrikeDelegate;
+
+ /**
+ * `prisma.staffTask`: Exposes CRUD operations for the **StaffTask** model.
+ * Example usage:
+ * ```ts
+ * // Fetch zero or more StaffTasks
+ * const staffTasks = await prisma.staffTask.findMany()
+ * ```
+ */
+ get staffTask(): Prisma.StaffTaskDelegate;
}
export namespace Prisma {
@@ -832,7 +847,8 @@ export namespace Prisma {
RegisterApplication: 'RegisterApplication',
RegisterApplicationAnswer: 'RegisterApplicationAnswer',
RegisterApplicationNote: 'RegisterApplicationNote',
- AutomodStrike: 'AutomodStrike'
+ AutomodStrike: 'AutomodStrike',
+ StaffTask: 'StaffTask'
};
export type ModelName = (typeof ModelName)[keyof typeof ModelName]
@@ -848,7 +864,7 @@ export namespace Prisma {
export type TypeMap = {
meta: {
- modelProps: "guildSettings" | "ticket" | "ticketAutomationRule" | "knowledgeBaseArticle" | "level" | "ticketSupportSession" | "birthday" | "reactionRoleSet" | "event" | "eventSignup" | "registerForm" | "registerFormField" | "registerApplication" | "registerApplicationAnswer" | "registerApplicationNote" | "automodStrike"
+ modelProps: "guildSettings" | "ticket" | "ticketAutomationRule" | "knowledgeBaseArticle" | "level" | "ticketSupportSession" | "birthday" | "reactionRoleSet" | "event" | "eventSignup" | "registerForm" | "registerFormField" | "registerApplication" | "registerApplicationAnswer" | "registerApplicationNote" | "automodStrike" | "staffTask"
txIsolationLevel: Prisma.TransactionIsolationLevel
}
model: {
@@ -1972,6 +1988,76 @@ export namespace Prisma {
}
}
}
+ StaffTask: {
+ payload: Prisma.$StaffTaskPayload
+ fields: Prisma.StaffTaskFieldRefs
+ operations: {
+ findUnique: {
+ args: Prisma.StaffTaskFindUniqueArgs
+ result: $Utils.PayloadToResult | null
+ }
+ findUniqueOrThrow: {
+ args: Prisma.StaffTaskFindUniqueOrThrowArgs
+ result: $Utils.PayloadToResult
+ }
+ findFirst: {
+ args: Prisma.StaffTaskFindFirstArgs
+ result: $Utils.PayloadToResult | null
+ }
+ findFirstOrThrow: {
+ args: Prisma.StaffTaskFindFirstOrThrowArgs
+ result: $Utils.PayloadToResult
+ }
+ findMany: {
+ args: Prisma.StaffTaskFindManyArgs
+ result: $Utils.PayloadToResult[]
+ }
+ create: {
+ args: Prisma.StaffTaskCreateArgs
+ result: $Utils.PayloadToResult
+ }
+ createMany: {
+ args: Prisma.StaffTaskCreateManyArgs
+ result: BatchPayload
+ }
+ createManyAndReturn: {
+ args: Prisma.StaffTaskCreateManyAndReturnArgs
+ result: $Utils.PayloadToResult[]
+ }
+ delete: {
+ args: Prisma.StaffTaskDeleteArgs
+ result: $Utils.PayloadToResult
+ }
+ update: {
+ args: Prisma.StaffTaskUpdateArgs
+ result: $Utils.PayloadToResult
+ }
+ deleteMany: {
+ args: Prisma.StaffTaskDeleteManyArgs
+ result: BatchPayload
+ }
+ updateMany: {
+ args: Prisma.StaffTaskUpdateManyArgs
+ result: BatchPayload
+ }
+ upsert: {
+ args: Prisma.StaffTaskUpsertArgs
+ result: $Utils.PayloadToResult
+ }
+ aggregate: {
+ args: Prisma.StaffTaskAggregateArgs
+ result: $Utils.Optional
+ }
+ groupBy: {
+ args: Prisma.StaffTaskGroupByArgs
+ result: $Utils.Optional[]
+ }
+ count: {
+ args: Prisma.StaffTaskCountArgs
+ result: $Utils.Optional | number
+ }
+ }
+ }
}
} & {
other: {
@@ -2268,6 +2354,7 @@ export namespace Prisma {
eventsEnabled: boolean | null
registerEnabled: boolean | null
serverStatsEnabled: boolean | null
+ tasksEnabled: boolean | null
supportRoleId: string | null
updatedAt: Date | null
createdAt: Date | null
@@ -2288,6 +2375,7 @@ export namespace Prisma {
eventsEnabled: boolean | null
registerEnabled: boolean | null
serverStatsEnabled: boolean | null
+ tasksEnabled: boolean | null
supportRoleId: string | null
updatedAt: Date | null
createdAt: Date | null
@@ -2316,6 +2404,8 @@ export namespace Prisma {
registerConfig: number
serverStatsEnabled: number
serverStatsConfig: number
+ lockdownConfig: number
+ tasksEnabled: number
supportRoleId: number
updatedAt: number
createdAt: number
@@ -2338,6 +2428,7 @@ export namespace Prisma {
eventsEnabled?: true
registerEnabled?: true
serverStatsEnabled?: true
+ tasksEnabled?: true
supportRoleId?: true
updatedAt?: true
createdAt?: true
@@ -2358,6 +2449,7 @@ export namespace Prisma {
eventsEnabled?: true
registerEnabled?: true
serverStatsEnabled?: true
+ tasksEnabled?: true
supportRoleId?: true
updatedAt?: true
createdAt?: true
@@ -2386,6 +2478,8 @@ export namespace Prisma {
registerConfig?: true
serverStatsEnabled?: true
serverStatsConfig?: true
+ lockdownConfig?: true
+ tasksEnabled?: true
supportRoleId?: true
updatedAt?: true
createdAt?: true
@@ -2487,6 +2581,8 @@ export namespace Prisma {
registerConfig: JsonValue | null
serverStatsEnabled: boolean | null
serverStatsConfig: JsonValue | null
+ lockdownConfig: JsonValue | null
+ tasksEnabled: boolean | null
supportRoleId: string | null
updatedAt: Date
createdAt: Date
@@ -2532,6 +2628,8 @@ export namespace Prisma {
registerConfig?: boolean
serverStatsEnabled?: boolean
serverStatsConfig?: boolean
+ lockdownConfig?: boolean
+ tasksEnabled?: boolean
supportRoleId?: boolean
updatedAt?: boolean
createdAt?: boolean
@@ -2560,6 +2658,8 @@ export namespace Prisma {
registerConfig?: boolean
serverStatsEnabled?: boolean
serverStatsConfig?: boolean
+ lockdownConfig?: boolean
+ tasksEnabled?: boolean
supportRoleId?: boolean
updatedAt?: boolean
createdAt?: boolean
@@ -2588,6 +2688,8 @@ export namespace Prisma {
registerConfig?: boolean
serverStatsEnabled?: boolean
serverStatsConfig?: boolean
+ lockdownConfig?: boolean
+ tasksEnabled?: boolean
supportRoleId?: boolean
updatedAt?: boolean
createdAt?: boolean
@@ -2620,6 +2722,8 @@ export namespace Prisma {
registerConfig: Prisma.JsonValue | null
serverStatsEnabled: boolean | null
serverStatsConfig: Prisma.JsonValue | null
+ lockdownConfig: Prisma.JsonValue | null
+ tasksEnabled: boolean | null
supportRoleId: string | null
updatedAt: Date
createdAt: Date
@@ -3038,6 +3142,8 @@ export namespace Prisma {
readonly registerConfig: FieldRef<"GuildSettings", 'Json'>
readonly serverStatsEnabled: FieldRef<"GuildSettings", 'Boolean'>
readonly serverStatsConfig: FieldRef<"GuildSettings", 'Json'>
+ readonly lockdownConfig: FieldRef<"GuildSettings", 'Json'>
+ readonly tasksEnabled: FieldRef<"GuildSettings", 'Boolean'>
readonly supportRoleId: FieldRef<"GuildSettings", 'String'>
readonly updatedAt: FieldRef<"GuildSettings", 'DateTime'>
readonly createdAt: FieldRef<"GuildSettings", 'DateTime'>
@@ -17700,6 +17806,944 @@ export namespace Prisma {
}
+ /**
+ * Model StaffTask
+ */
+
+ export type AggregateStaffTask = {
+ _count: StaffTaskCountAggregateOutputType | null
+ _min: StaffTaskMinAggregateOutputType | null
+ _max: StaffTaskMaxAggregateOutputType | null
+ }
+
+ export type StaffTaskMinAggregateOutputType = {
+ id: string | null
+ guildId: string | null
+ title: string | null
+ description: string | null
+ status: string | null
+ assigneeId: string | null
+ createdBy: string | null
+ createdByTag: string | null
+ createdAt: Date | null
+ updatedAt: Date | null
+ }
+
+ export type StaffTaskMaxAggregateOutputType = {
+ id: string | null
+ guildId: string | null
+ title: string | null
+ description: string | null
+ status: string | null
+ assigneeId: string | null
+ createdBy: string | null
+ createdByTag: string | null
+ createdAt: Date | null
+ updatedAt: Date | null
+ }
+
+ export type StaffTaskCountAggregateOutputType = {
+ id: number
+ guildId: number
+ title: number
+ description: number
+ status: number
+ assigneeId: number
+ createdBy: number
+ createdByTag: number
+ createdAt: number
+ updatedAt: number
+ _all: number
+ }
+
+
+ export type StaffTaskMinAggregateInputType = {
+ id?: true
+ guildId?: true
+ title?: true
+ description?: true
+ status?: true
+ assigneeId?: true
+ createdBy?: true
+ createdByTag?: true
+ createdAt?: true
+ updatedAt?: true
+ }
+
+ export type StaffTaskMaxAggregateInputType = {
+ id?: true
+ guildId?: true
+ title?: true
+ description?: true
+ status?: true
+ assigneeId?: true
+ createdBy?: true
+ createdByTag?: true
+ createdAt?: true
+ updatedAt?: true
+ }
+
+ export type StaffTaskCountAggregateInputType = {
+ id?: true
+ guildId?: true
+ title?: true
+ description?: true
+ status?: true
+ assigneeId?: true
+ createdBy?: true
+ createdByTag?: true
+ createdAt?: true
+ updatedAt?: true
+ _all?: true
+ }
+
+ export type StaffTaskAggregateArgs = {
+ /**
+ * Filter which StaffTask to aggregate.
+ */
+ where?: StaffTaskWhereInput
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
+ *
+ * Determine the order of StaffTasks to fetch.
+ */
+ orderBy?: StaffTaskOrderByWithRelationInput | StaffTaskOrderByWithRelationInput[]
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
+ *
+ * Sets the start position
+ */
+ cursor?: StaffTaskWhereUniqueInput
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
+ *
+ * Take `±n` StaffTasks from the position of the cursor.
+ */
+ take?: number
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
+ *
+ * Skip the first `n` StaffTasks.
+ */
+ skip?: number
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
+ *
+ * Count returned StaffTasks
+ **/
+ _count?: true | StaffTaskCountAggregateInputType
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
+ *
+ * Select which fields to find the minimum value
+ **/
+ _min?: StaffTaskMinAggregateInputType
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
+ *
+ * Select which fields to find the maximum value
+ **/
+ _max?: StaffTaskMaxAggregateInputType
+ }
+
+ export type GetStaffTaskAggregateType = {
+ [P in keyof T & keyof AggregateStaffTask]: P extends '_count' | 'count'
+ ? T[P] extends true
+ ? number
+ : GetScalarType
+ : GetScalarType
+ }
+
+
+
+
+ export type StaffTaskGroupByArgs = {
+ where?: StaffTaskWhereInput
+ orderBy?: StaffTaskOrderByWithAggregationInput | StaffTaskOrderByWithAggregationInput[]
+ by: StaffTaskScalarFieldEnum[] | StaffTaskScalarFieldEnum
+ having?: StaffTaskScalarWhereWithAggregatesInput
+ take?: number
+ skip?: number
+ _count?: StaffTaskCountAggregateInputType | true
+ _min?: StaffTaskMinAggregateInputType
+ _max?: StaffTaskMaxAggregateInputType
+ }
+
+ export type StaffTaskGroupByOutputType = {
+ id: string
+ guildId: string
+ title: string
+ description: string | null
+ status: string
+ assigneeId: string | null
+ createdBy: string
+ createdByTag: string
+ createdAt: Date
+ updatedAt: Date
+ _count: StaffTaskCountAggregateOutputType | null
+ _min: StaffTaskMinAggregateOutputType | null
+ _max: StaffTaskMaxAggregateOutputType | null
+ }
+
+ type GetStaffTaskGroupByPayload = Prisma.PrismaPromise<
+ Array<
+ PickEnumerable &
+ {
+ [P in ((keyof T) & (keyof StaffTaskGroupByOutputType))]: P extends '_count'
+ ? T[P] extends boolean
+ ? number
+ : GetScalarType
+ : GetScalarType
+ }
+ >
+ >
+
+
+ export type StaffTaskSelect = $Extensions.GetSelect<{
+ id?: boolean
+ guildId?: boolean
+ title?: boolean
+ description?: boolean
+ status?: boolean
+ assigneeId?: boolean
+ createdBy?: boolean
+ createdByTag?: boolean
+ createdAt?: boolean
+ updatedAt?: boolean
+ }, ExtArgs["result"]["staffTask"]>
+
+ export type StaffTaskSelectCreateManyAndReturn = $Extensions.GetSelect<{
+ id?: boolean
+ guildId?: boolean
+ title?: boolean
+ description?: boolean
+ status?: boolean
+ assigneeId?: boolean
+ createdBy?: boolean
+ createdByTag?: boolean
+ createdAt?: boolean
+ updatedAt?: boolean
+ }, ExtArgs["result"]["staffTask"]>
+
+ export type StaffTaskSelectScalar = {
+ id?: boolean
+ guildId?: boolean
+ title?: boolean
+ description?: boolean
+ status?: boolean
+ assigneeId?: boolean
+ createdBy?: boolean
+ createdByTag?: boolean
+ createdAt?: boolean
+ updatedAt?: boolean
+ }
+
+
+ export type $StaffTaskPayload = {
+ name: "StaffTask"
+ objects: {}
+ scalars: $Extensions.GetPayloadResult<{
+ id: string
+ guildId: string
+ title: string
+ description: string | null
+ status: string
+ assigneeId: string | null
+ createdBy: string
+ createdByTag: string
+ createdAt: Date
+ updatedAt: Date
+ }, ExtArgs["result"]["staffTask"]>
+ composites: {}
+ }
+
+ type StaffTaskGetPayload = $Result.GetResult
+
+ type StaffTaskCountArgs =
+ Omit & {
+ select?: StaffTaskCountAggregateInputType | true
+ }
+
+ export interface StaffTaskDelegate {
+ [K: symbol]: { types: Prisma.TypeMap['model']['StaffTask'], meta: { name: 'StaffTask' } }
+ /**
+ * Find zero or one StaffTask that matches the filter.
+ * @param {StaffTaskFindUniqueArgs} args - Arguments to find a StaffTask
+ * @example
+ * // Get one StaffTask
+ * const staffTask = await prisma.staffTask.findUnique({
+ * where: {
+ * // ... provide filter here
+ * }
+ * })
+ */
+ findUnique(args: SelectSubset>): Prisma__StaffTaskClient<$Result.GetResult, T, "findUnique"> | null, null, ExtArgs>
+
+ /**
+ * Find one StaffTask that matches the filter or throw an error with `error.code='P2025'`
+ * if no matches were found.
+ * @param {StaffTaskFindUniqueOrThrowArgs} args - Arguments to find a StaffTask
+ * @example
+ * // Get one StaffTask
+ * const staffTask = await prisma.staffTask.findUniqueOrThrow({
+ * where: {
+ * // ... provide filter here
+ * }
+ * })
+ */
+ findUniqueOrThrow(args: SelectSubset>): Prisma__StaffTaskClient<$Result.GetResult, T, "findUniqueOrThrow">, never, ExtArgs>
+
+ /**
+ * Find the first StaffTask that matches the filter.
+ * Note, that providing `undefined` is treated as the value not being there.
+ * Read more here: https://pris.ly/d/null-undefined
+ * @param {StaffTaskFindFirstArgs} args - Arguments to find a StaffTask
+ * @example
+ * // Get one StaffTask
+ * const staffTask = await prisma.staffTask.findFirst({
+ * where: {
+ * // ... provide filter here
+ * }
+ * })
+ */
+ findFirst(args?: SelectSubset>): Prisma__StaffTaskClient<$Result.GetResult, T, "findFirst"> | null, null, ExtArgs>
+
+ /**
+ * Find the first StaffTask that matches the filter or
+ * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
+ * Note, that providing `undefined` is treated as the value not being there.
+ * Read more here: https://pris.ly/d/null-undefined
+ * @param {StaffTaskFindFirstOrThrowArgs} args - Arguments to find a StaffTask
+ * @example
+ * // Get one StaffTask
+ * const staffTask = await prisma.staffTask.findFirstOrThrow({
+ * where: {
+ * // ... provide filter here
+ * }
+ * })
+ */
+ findFirstOrThrow(args?: SelectSubset>): Prisma__StaffTaskClient<$Result.GetResult, T, "findFirstOrThrow">, never, ExtArgs>
+
+ /**
+ * Find zero or more StaffTasks that matches the filter.
+ * Note, that providing `undefined` is treated as the value not being there.
+ * Read more here: https://pris.ly/d/null-undefined
+ * @param {StaffTaskFindManyArgs} args - Arguments to filter and select certain fields only.
+ * @example
+ * // Get all StaffTasks
+ * const staffTasks = await prisma.staffTask.findMany()
+ *
+ * // Get first 10 StaffTasks
+ * const staffTasks = await prisma.staffTask.findMany({ take: 10 })
+ *
+ * // Only select the `id`
+ * const staffTaskWithIdOnly = await prisma.staffTask.findMany({ select: { id: true } })
+ *
+ */
+ findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany">>
+
+ /**
+ * Create a StaffTask.
+ * @param {StaffTaskCreateArgs} args - Arguments to create a StaffTask.
+ * @example
+ * // Create one StaffTask
+ * const StaffTask = await prisma.staffTask.create({
+ * data: {
+ * // ... data to create a StaffTask
+ * }
+ * })
+ *
+ */
+ create(args: SelectSubset>): Prisma__StaffTaskClient<$Result.GetResult, T, "create">, never, ExtArgs>
+
+ /**
+ * Create many StaffTasks.
+ * @param {StaffTaskCreateManyArgs} args - Arguments to create many StaffTasks.
+ * @example
+ * // Create many StaffTasks
+ * const staffTask = await prisma.staffTask.createMany({
+ * data: [
+ * // ... provide data here
+ * ]
+ * })
+ *
+ */
+ createMany(args?: SelectSubset>): Prisma.PrismaPromise
+
+ /**
+ * Create many StaffTasks and returns the data saved in the database.
+ * @param {StaffTaskCreateManyAndReturnArgs} args - Arguments to create many StaffTasks.
+ * @example
+ * // Create many StaffTasks
+ * const staffTask = await prisma.staffTask.createManyAndReturn({
+ * data: [
+ * // ... provide data here
+ * ]
+ * })
+ *
+ * // Create many StaffTasks and only return the `id`
+ * const staffTaskWithIdOnly = await prisma.staffTask.createManyAndReturn({
+ * select: { id: true },
+ * data: [
+ * // ... provide data here
+ * ]
+ * })
+ * Note, that providing `undefined` is treated as the value not being there.
+ * Read more here: https://pris.ly/d/null-undefined
+ *
+ */
+ createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn">>
+
+ /**
+ * Delete a StaffTask.
+ * @param {StaffTaskDeleteArgs} args - Arguments to delete one StaffTask.
+ * @example
+ * // Delete one StaffTask
+ * const StaffTask = await prisma.staffTask.delete({
+ * where: {
+ * // ... filter to delete one StaffTask
+ * }
+ * })
+ *
+ */
+ delete(args: SelectSubset>): Prisma__StaffTaskClient<$Result.GetResult, T, "delete">, never, ExtArgs>
+
+ /**
+ * Update one StaffTask.
+ * @param {StaffTaskUpdateArgs} args - Arguments to update one StaffTask.
+ * @example
+ * // Update one StaffTask
+ * const staffTask = await prisma.staffTask.update({
+ * where: {
+ * // ... provide filter here
+ * },
+ * data: {
+ * // ... provide data here
+ * }
+ * })
+ *
+ */
+ update(args: SelectSubset>): Prisma__StaffTaskClient<$Result.GetResult, T, "update">, never, ExtArgs>
+
+ /**
+ * Delete zero or more StaffTasks.
+ * @param {StaffTaskDeleteManyArgs} args - Arguments to filter StaffTasks to delete.
+ * @example
+ * // Delete a few StaffTasks
+ * const { count } = await prisma.staffTask.deleteMany({
+ * where: {
+ * // ... provide filter here
+ * }
+ * })
+ *
+ */
+ deleteMany(args?: SelectSubset>): Prisma.PrismaPromise
+
+ /**
+ * Update zero or more StaffTasks.
+ * Note, that providing `undefined` is treated as the value not being there.
+ * Read more here: https://pris.ly/d/null-undefined
+ * @param {StaffTaskUpdateManyArgs} args - Arguments to update one or more rows.
+ * @example
+ * // Update many StaffTasks
+ * const staffTask = await prisma.staffTask.updateMany({
+ * where: {
+ * // ... provide filter here
+ * },
+ * data: {
+ * // ... provide data here
+ * }
+ * })
+ *
+ */
+ updateMany(args: SelectSubset>): Prisma.PrismaPromise
+
+ /**
+ * Create or update one StaffTask.
+ * @param {StaffTaskUpsertArgs} args - Arguments to update or create a StaffTask.
+ * @example
+ * // Update or create a StaffTask
+ * const staffTask = await prisma.staffTask.upsert({
+ * create: {
+ * // ... data to create a StaffTask
+ * },
+ * update: {
+ * // ... in case it already exists, update
+ * },
+ * where: {
+ * // ... the filter for the StaffTask we want to update
+ * }
+ * })
+ */
+ upsert(args: SelectSubset>): Prisma__StaffTaskClient<$Result.GetResult, T, "upsert">, never, ExtArgs>
+
+
+ /**
+ * Count the number of StaffTasks.
+ * Note, that providing `undefined` is treated as the value not being there.
+ * Read more here: https://pris.ly/d/null-undefined
+ * @param {StaffTaskCountArgs} args - Arguments to filter StaffTasks to count.
+ * @example
+ * // Count the number of StaffTasks
+ * const count = await prisma.staffTask.count({
+ * where: {
+ * // ... the filter for the StaffTasks we want to count
+ * }
+ * })
+ **/
+ count(
+ args?: Subset,
+ ): Prisma.PrismaPromise<
+ T extends $Utils.Record<'select', any>
+ ? T['select'] extends true
+ ? number
+ : GetScalarType
+ : number
+ >
+
+ /**
+ * Allows you to perform aggregations operations on a StaffTask.
+ * Note, that providing `undefined` is treated as the value not being there.
+ * Read more here: https://pris.ly/d/null-undefined
+ * @param {StaffTaskAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
+ * @example
+ * // Ordered by age ascending
+ * // Where email contains prisma.io
+ * // Limited to the 10 users
+ * const aggregations = await prisma.user.aggregate({
+ * _avg: {
+ * age: true,
+ * },
+ * where: {
+ * email: {
+ * contains: "prisma.io",
+ * },
+ * },
+ * orderBy: {
+ * age: "asc",
+ * },
+ * take: 10,
+ * })
+ **/
+ aggregate(args: Subset): Prisma.PrismaPromise>
+
+ /**
+ * Group by StaffTask.
+ * Note, that providing `undefined` is treated as the value not being there.
+ * Read more here: https://pris.ly/d/null-undefined
+ * @param {StaffTaskGroupByArgs} args - Group by arguments.
+ * @example
+ * // Group by city, order by createdAt, get count
+ * const result = await prisma.user.groupBy({
+ * by: ['city', 'createdAt'],
+ * orderBy: {
+ * createdAt: true
+ * },
+ * _count: {
+ * _all: true
+ * },
+ * })
+ *
+ **/
+ groupBy<
+ T extends StaffTaskGroupByArgs,
+ HasSelectOrTake extends Or<
+ Extends<'skip', Keys>,
+ Extends<'take', Keys>
+ >,
+ OrderByArg extends True extends HasSelectOrTake
+ ? { orderBy: StaffTaskGroupByArgs['orderBy'] }
+ : { orderBy?: StaffTaskGroupByArgs['orderBy'] },
+ OrderFields extends ExcludeUnderscoreKeys>>,
+ ByFields extends MaybeTupleToUnion,
+ ByValid extends Has,
+ HavingFields extends GetHavingFields,
+ HavingValid extends Has,
+ ByEmpty extends T['by'] extends never[] ? True : False,
+ InputErrors extends ByEmpty extends True
+ ? `Error: "by" must not be empty.`
+ : HavingValid extends False
+ ? {
+ [P in HavingFields]: P extends ByFields
+ ? never
+ : P extends string
+ ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
+ : [
+ Error,
+ 'Field ',
+ P,
+ ` in "having" needs to be provided in "by"`,
+ ]
+ }[HavingFields]
+ : 'take' extends Keys
+ ? 'orderBy' extends Keys
+ ? ByValid extends True
+ ? {}
+ : {
+ [P in OrderFields]: P extends ByFields
+ ? never
+ : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
+ }[OrderFields]
+ : 'Error: If you provide "take", you also need to provide "orderBy"'
+ : 'skip' extends Keys
+ ? 'orderBy' extends Keys
+ ? ByValid extends True
+ ? {}
+ : {
+ [P in OrderFields]: P extends ByFields
+ ? never
+ : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
+ }[OrderFields]
+ : 'Error: If you provide "skip", you also need to provide "orderBy"'
+ : ByValid extends True
+ ? {}
+ : {
+ [P in OrderFields]: P extends ByFields
+ ? never
+ : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
+ }[OrderFields]
+ >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetStaffTaskGroupByPayload : Prisma.PrismaPromise
+ /**
+ * Fields of the StaffTask model
+ */
+ readonly fields: StaffTaskFieldRefs;
+ }
+
+ /**
+ * The delegate class that acts as a "Promise-like" for StaffTask.
+ * Why is this prefixed with `Prisma__`?
+ * Because we want to prevent naming conflicts as mentioned in
+ * https://github.com/prisma/prisma-client-js/issues/707
+ */
+ export interface Prisma__StaffTaskClient extends Prisma.PrismaPromise {
+ readonly [Symbol.toStringTag]: "PrismaPromise"
+ /**
+ * Attaches callbacks for the resolution and/or rejection of the Promise.
+ * @param onfulfilled The callback to execute when the Promise is resolved.
+ * @param onrejected The callback to execute when the Promise is rejected.
+ * @returns A Promise for the completion of which ever callback is executed.
+ */
+ then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise
+ /**
+ * Attaches a callback for only the rejection of the Promise.
+ * @param onrejected The callback to execute when the Promise is rejected.
+ * @returns A Promise for the completion of the callback.
+ */
+ catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise
+ /**
+ * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
+ * resolved value cannot be modified from the callback.
+ * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
+ * @returns A Promise for the completion of the callback.
+ */
+ finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise
+ }
+
+
+
+
+ /**
+ * Fields of the StaffTask model
+ */
+ interface StaffTaskFieldRefs {
+ readonly id: FieldRef<"StaffTask", 'String'>
+ readonly guildId: FieldRef<"StaffTask", 'String'>
+ readonly title: FieldRef<"StaffTask", 'String'>
+ readonly description: FieldRef<"StaffTask", 'String'>
+ readonly status: FieldRef<"StaffTask", 'String'>
+ readonly assigneeId: FieldRef<"StaffTask", 'String'>
+ readonly createdBy: FieldRef<"StaffTask", 'String'>
+ readonly createdByTag: FieldRef<"StaffTask", 'String'>
+ readonly createdAt: FieldRef<"StaffTask", 'DateTime'>
+ readonly updatedAt: FieldRef<"StaffTask", 'DateTime'>
+ }
+
+
+ // Custom InputTypes
+ /**
+ * StaffTask findUnique
+ */
+ export type StaffTaskFindUniqueArgs = {
+ /**
+ * Select specific fields to fetch from the StaffTask
+ */
+ select?: StaffTaskSelect | null
+ /**
+ * Filter, which StaffTask to fetch.
+ */
+ where: StaffTaskWhereUniqueInput
+ }
+
+ /**
+ * StaffTask findUniqueOrThrow
+ */
+ export type StaffTaskFindUniqueOrThrowArgs = {
+ /**
+ * Select specific fields to fetch from the StaffTask
+ */
+ select?: StaffTaskSelect | null
+ /**
+ * Filter, which StaffTask to fetch.
+ */
+ where: StaffTaskWhereUniqueInput
+ }
+
+ /**
+ * StaffTask findFirst
+ */
+ export type StaffTaskFindFirstArgs = {
+ /**
+ * Select specific fields to fetch from the StaffTask
+ */
+ select?: StaffTaskSelect | null
+ /**
+ * Filter, which StaffTask to fetch.
+ */
+ where?: StaffTaskWhereInput
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
+ *
+ * Determine the order of StaffTasks to fetch.
+ */
+ orderBy?: StaffTaskOrderByWithRelationInput | StaffTaskOrderByWithRelationInput[]
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
+ *
+ * Sets the position for searching for StaffTasks.
+ */
+ cursor?: StaffTaskWhereUniqueInput
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
+ *
+ * Take `±n` StaffTasks from the position of the cursor.
+ */
+ take?: number
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
+ *
+ * Skip the first `n` StaffTasks.
+ */
+ skip?: number
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
+ *
+ * Filter by unique combinations of StaffTasks.
+ */
+ distinct?: StaffTaskScalarFieldEnum | StaffTaskScalarFieldEnum[]
+ }
+
+ /**
+ * StaffTask findFirstOrThrow
+ */
+ export type StaffTaskFindFirstOrThrowArgs = {
+ /**
+ * Select specific fields to fetch from the StaffTask
+ */
+ select?: StaffTaskSelect | null
+ /**
+ * Filter, which StaffTask to fetch.
+ */
+ where?: StaffTaskWhereInput
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
+ *
+ * Determine the order of StaffTasks to fetch.
+ */
+ orderBy?: StaffTaskOrderByWithRelationInput | StaffTaskOrderByWithRelationInput[]
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
+ *
+ * Sets the position for searching for StaffTasks.
+ */
+ cursor?: StaffTaskWhereUniqueInput
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
+ *
+ * Take `±n` StaffTasks from the position of the cursor.
+ */
+ take?: number
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
+ *
+ * Skip the first `n` StaffTasks.
+ */
+ skip?: number
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
+ *
+ * Filter by unique combinations of StaffTasks.
+ */
+ distinct?: StaffTaskScalarFieldEnum | StaffTaskScalarFieldEnum[]
+ }
+
+ /**
+ * StaffTask findMany
+ */
+ export type StaffTaskFindManyArgs = {
+ /**
+ * Select specific fields to fetch from the StaffTask
+ */
+ select?: StaffTaskSelect | null
+ /**
+ * Filter, which StaffTasks to fetch.
+ */
+ where?: StaffTaskWhereInput
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
+ *
+ * Determine the order of StaffTasks to fetch.
+ */
+ orderBy?: StaffTaskOrderByWithRelationInput | StaffTaskOrderByWithRelationInput[]
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
+ *
+ * Sets the position for listing StaffTasks.
+ */
+ cursor?: StaffTaskWhereUniqueInput
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
+ *
+ * Take `±n` StaffTasks from the position of the cursor.
+ */
+ take?: number
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
+ *
+ * Skip the first `n` StaffTasks.
+ */
+ skip?: number
+ distinct?: StaffTaskScalarFieldEnum | StaffTaskScalarFieldEnum[]
+ }
+
+ /**
+ * StaffTask create
+ */
+ export type StaffTaskCreateArgs = {
+ /**
+ * Select specific fields to fetch from the StaffTask
+ */
+ select?: StaffTaskSelect | null
+ /**
+ * The data needed to create a StaffTask.
+ */
+ data: XOR
+ }
+
+ /**
+ * StaffTask createMany
+ */
+ export type StaffTaskCreateManyArgs = {
+ /**
+ * The data used to create many StaffTasks.
+ */
+ data: StaffTaskCreateManyInput | StaffTaskCreateManyInput[]
+ skipDuplicates?: boolean
+ }
+
+ /**
+ * StaffTask createManyAndReturn
+ */
+ export type StaffTaskCreateManyAndReturnArgs = {
+ /**
+ * Select specific fields to fetch from the StaffTask
+ */
+ select?: StaffTaskSelectCreateManyAndReturn | null
+ /**
+ * The data used to create many StaffTasks.
+ */
+ data: StaffTaskCreateManyInput | StaffTaskCreateManyInput[]
+ skipDuplicates?: boolean
+ }
+
+ /**
+ * StaffTask update
+ */
+ export type StaffTaskUpdateArgs = {
+ /**
+ * Select specific fields to fetch from the StaffTask
+ */
+ select?: StaffTaskSelect | null
+ /**
+ * The data needed to update a StaffTask.
+ */
+ data: XOR
+ /**
+ * Choose, which StaffTask to update.
+ */
+ where: StaffTaskWhereUniqueInput
+ }
+
+ /**
+ * StaffTask updateMany
+ */
+ export type StaffTaskUpdateManyArgs = {
+ /**
+ * The data used to update StaffTasks.
+ */
+ data: XOR
+ /**
+ * Filter which StaffTasks to update
+ */
+ where?: StaffTaskWhereInput
+ }
+
+ /**
+ * StaffTask upsert
+ */
+ export type StaffTaskUpsertArgs = {
+ /**
+ * Select specific fields to fetch from the StaffTask
+ */
+ select?: StaffTaskSelect | null
+ /**
+ * The filter to search for the StaffTask to update in case it exists.
+ */
+ where: StaffTaskWhereUniqueInput
+ /**
+ * In case the StaffTask found by the `where` argument doesn't exist, create a new StaffTask with this data.
+ */
+ create: XOR
+ /**
+ * In case the StaffTask was found with the provided `where` argument, update it with this data.
+ */
+ update: XOR
+ }
+
+ /**
+ * StaffTask delete
+ */
+ export type StaffTaskDeleteArgs = {
+ /**
+ * Select specific fields to fetch from the StaffTask
+ */
+ select?: StaffTaskSelect | null
+ /**
+ * Filter which StaffTask to delete.
+ */
+ where: StaffTaskWhereUniqueInput
+ }
+
+ /**
+ * StaffTask deleteMany
+ */
+ export type StaffTaskDeleteManyArgs = {
+ /**
+ * Filter which StaffTasks to delete
+ */
+ where?: StaffTaskWhereInput
+ }
+
+ /**
+ * StaffTask without action
+ */
+ export type StaffTaskDefaultArgs = {
+ /**
+ * Select specific fields to fetch from the StaffTask
+ */
+ select?: StaffTaskSelect | null
+ }
+
+
/**
* Enums
*/
@@ -17737,6 +18781,8 @@ export namespace Prisma {
registerConfig: 'registerConfig',
serverStatsEnabled: 'serverStatsEnabled',
serverStatsConfig: 'serverStatsConfig',
+ lockdownConfig: 'lockdownConfig',
+ tasksEnabled: 'tasksEnabled',
supportRoleId: 'supportRoleId',
updatedAt: 'updatedAt',
createdAt: 'createdAt'
@@ -17954,6 +19000,22 @@ export namespace Prisma {
export type AutomodStrikeScalarFieldEnum = (typeof AutomodStrikeScalarFieldEnum)[keyof typeof AutomodStrikeScalarFieldEnum]
+ export const StaffTaskScalarFieldEnum: {
+ id: 'id',
+ guildId: 'guildId',
+ title: 'title',
+ description: 'description',
+ status: 'status',
+ assigneeId: 'assigneeId',
+ createdBy: 'createdBy',
+ createdByTag: 'createdByTag',
+ createdAt: 'createdAt',
+ updatedAt: 'updatedAt'
+ };
+
+ export type StaffTaskScalarFieldEnum = (typeof StaffTaskScalarFieldEnum)[keyof typeof StaffTaskScalarFieldEnum]
+
+
export const SortOrder: {
asc: 'asc',
desc: 'desc'
@@ -18106,6 +19168,8 @@ export namespace Prisma {
registerConfig?: JsonNullableFilter<"GuildSettings">
serverStatsEnabled?: BoolNullableFilter<"GuildSettings"> | boolean | null
serverStatsConfig?: JsonNullableFilter<"GuildSettings">
+ lockdownConfig?: JsonNullableFilter<"GuildSettings">
+ tasksEnabled?: BoolNullableFilter<"GuildSettings"> | boolean | null
supportRoleId?: StringNullableFilter<"GuildSettings"> | string | null
updatedAt?: DateTimeFilter<"GuildSettings"> | Date | string
createdAt?: DateTimeFilter<"GuildSettings"> | Date | string
@@ -18134,6 +19198,8 @@ export namespace Prisma {
registerConfig?: SortOrderInput | SortOrder
serverStatsEnabled?: SortOrderInput | SortOrder
serverStatsConfig?: SortOrderInput | SortOrder
+ lockdownConfig?: SortOrderInput | SortOrder
+ tasksEnabled?: SortOrderInput | SortOrder
supportRoleId?: SortOrderInput | SortOrder
updatedAt?: SortOrder
createdAt?: SortOrder
@@ -18165,6 +19231,8 @@ export namespace Prisma {
registerConfig?: JsonNullableFilter<"GuildSettings">
serverStatsEnabled?: BoolNullableFilter<"GuildSettings"> | boolean | null
serverStatsConfig?: JsonNullableFilter<"GuildSettings">
+ lockdownConfig?: JsonNullableFilter<"GuildSettings">
+ tasksEnabled?: BoolNullableFilter<"GuildSettings"> | boolean | null
supportRoleId?: StringNullableFilter<"GuildSettings"> | string | null
updatedAt?: DateTimeFilter<"GuildSettings"> | Date | string
createdAt?: DateTimeFilter<"GuildSettings"> | Date | string
@@ -18193,6 +19261,8 @@ export namespace Prisma {
registerConfig?: SortOrderInput | SortOrder
serverStatsEnabled?: SortOrderInput | SortOrder
serverStatsConfig?: SortOrderInput | SortOrder
+ lockdownConfig?: SortOrderInput | SortOrder
+ tasksEnabled?: SortOrderInput | SortOrder
supportRoleId?: SortOrderInput | SortOrder
updatedAt?: SortOrder
createdAt?: SortOrder
@@ -18227,6 +19297,8 @@ export namespace Prisma {
registerConfig?: JsonNullableWithAggregatesFilter<"GuildSettings">
serverStatsEnabled?: BoolNullableWithAggregatesFilter<"GuildSettings"> | boolean | null
serverStatsConfig?: JsonNullableWithAggregatesFilter<"GuildSettings">
+ lockdownConfig?: JsonNullableWithAggregatesFilter<"GuildSettings">
+ tasksEnabled?: BoolNullableWithAggregatesFilter<"GuildSettings"> | boolean | null
supportRoleId?: StringNullableWithAggregatesFilter<"GuildSettings"> | string | null
updatedAt?: DateTimeWithAggregatesFilter<"GuildSettings"> | Date | string
createdAt?: DateTimeWithAggregatesFilter<"GuildSettings"> | Date | string
@@ -19277,6 +20349,83 @@ export namespace Prisma {
createdAt?: DateTimeWithAggregatesFilter<"AutomodStrike"> | Date | string
}
+ export type StaffTaskWhereInput = {
+ AND?: StaffTaskWhereInput | StaffTaskWhereInput[]
+ OR?: StaffTaskWhereInput[]
+ NOT?: StaffTaskWhereInput | StaffTaskWhereInput[]
+ id?: StringFilter<"StaffTask"> | string
+ guildId?: StringFilter<"StaffTask"> | string
+ title?: StringFilter<"StaffTask"> | string
+ description?: StringNullableFilter<"StaffTask"> | string | null
+ status?: StringFilter<"StaffTask"> | string
+ assigneeId?: StringNullableFilter<"StaffTask"> | string | null
+ createdBy?: StringFilter<"StaffTask"> | string
+ createdByTag?: StringFilter<"StaffTask"> | string
+ createdAt?: DateTimeFilter<"StaffTask"> | Date | string
+ updatedAt?: DateTimeFilter<"StaffTask"> | Date | string
+ }
+
+ export type StaffTaskOrderByWithRelationInput = {
+ id?: SortOrder
+ guildId?: SortOrder
+ title?: SortOrder
+ description?: SortOrderInput | SortOrder
+ status?: SortOrder
+ assigneeId?: SortOrderInput | SortOrder
+ createdBy?: SortOrder
+ createdByTag?: SortOrder
+ createdAt?: SortOrder
+ updatedAt?: SortOrder
+ }
+
+ export type StaffTaskWhereUniqueInput = Prisma.AtLeast<{
+ id?: string
+ AND?: StaffTaskWhereInput | StaffTaskWhereInput[]
+ OR?: StaffTaskWhereInput[]
+ NOT?: StaffTaskWhereInput | StaffTaskWhereInput[]
+ guildId?: StringFilter<"StaffTask"> | string
+ title?: StringFilter<"StaffTask"> | string
+ description?: StringNullableFilter<"StaffTask"> | string | null
+ status?: StringFilter<"StaffTask"> | string
+ assigneeId?: StringNullableFilter<"StaffTask"> | string | null
+ createdBy?: StringFilter<"StaffTask"> | string
+ createdByTag?: StringFilter<"StaffTask"> | string
+ createdAt?: DateTimeFilter<"StaffTask"> | Date | string
+ updatedAt?: DateTimeFilter<"StaffTask"> | Date | string
+ }, "id">
+
+ export type StaffTaskOrderByWithAggregationInput = {
+ id?: SortOrder
+ guildId?: SortOrder
+ title?: SortOrder
+ description?: SortOrderInput | SortOrder
+ status?: SortOrder
+ assigneeId?: SortOrderInput | SortOrder
+ createdBy?: SortOrder
+ createdByTag?: SortOrder
+ createdAt?: SortOrder
+ updatedAt?: SortOrder
+ _count?: StaffTaskCountOrderByAggregateInput
+ _max?: StaffTaskMaxOrderByAggregateInput
+ _min?: StaffTaskMinOrderByAggregateInput
+ }
+
+ export type StaffTaskScalarWhereWithAggregatesInput = {
+ AND?: StaffTaskScalarWhereWithAggregatesInput | StaffTaskScalarWhereWithAggregatesInput[]
+ OR?: StaffTaskScalarWhereWithAggregatesInput[]
+ NOT?: StaffTaskScalarWhereWithAggregatesInput | StaffTaskScalarWhereWithAggregatesInput[]
+ id?: StringWithAggregatesFilter<"StaffTask"> | string
+ guildId?: StringWithAggregatesFilter<"StaffTask"> | string
+ title?: StringWithAggregatesFilter<"StaffTask"> | string
+ description?: StringNullableWithAggregatesFilter<"StaffTask"> | string | null
+ status?: StringWithAggregatesFilter<"StaffTask"> | string
+ assigneeId?: StringNullableWithAggregatesFilter<"StaffTask"> | string | null
+ createdBy?: StringWithAggregatesFilter<"StaffTask"> | string
+ createdByTag?: StringWithAggregatesFilter<"StaffTask"> | string
+ createdAt?: DateTimeWithAggregatesFilter<"StaffTask"> | Date | string
+ updatedAt?: DateTimeWithAggregatesFilter<"StaffTask"> | Date | string
+ }
+
export type GuildSettingsCreateInput = {
guildId: string
welcomeChannelId?: string | null
@@ -19300,6 +20449,8 @@ export namespace Prisma {
registerConfig?: NullableJsonNullValueInput | InputJsonValue
serverStatsEnabled?: boolean | null
serverStatsConfig?: NullableJsonNullValueInput | InputJsonValue
+ lockdownConfig?: NullableJsonNullValueInput | InputJsonValue
+ tasksEnabled?: boolean | null
supportRoleId?: string | null
updatedAt?: Date | string
createdAt?: Date | string
@@ -19328,6 +20479,8 @@ export namespace Prisma {
registerConfig?: NullableJsonNullValueInput | InputJsonValue
serverStatsEnabled?: boolean | null
serverStatsConfig?: NullableJsonNullValueInput | InputJsonValue
+ lockdownConfig?: NullableJsonNullValueInput | InputJsonValue
+ tasksEnabled?: boolean | null
supportRoleId?: string | null
updatedAt?: Date | string
createdAt?: Date | string
@@ -19356,6 +20509,8 @@ export namespace Prisma {
registerConfig?: NullableJsonNullValueInput | InputJsonValue
serverStatsEnabled?: NullableBoolFieldUpdateOperationsInput | boolean | null
serverStatsConfig?: NullableJsonNullValueInput | InputJsonValue
+ lockdownConfig?: NullableJsonNullValueInput | InputJsonValue
+ tasksEnabled?: NullableBoolFieldUpdateOperationsInput | boolean | null
supportRoleId?: NullableStringFieldUpdateOperationsInput | string | null
updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
@@ -19384,6 +20539,8 @@ export namespace Prisma {
registerConfig?: NullableJsonNullValueInput | InputJsonValue
serverStatsEnabled?: NullableBoolFieldUpdateOperationsInput | boolean | null
serverStatsConfig?: NullableJsonNullValueInput | InputJsonValue
+ lockdownConfig?: NullableJsonNullValueInput | InputJsonValue
+ tasksEnabled?: NullableBoolFieldUpdateOperationsInput | boolean | null
supportRoleId?: NullableStringFieldUpdateOperationsInput | string | null
updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
@@ -19412,6 +20569,8 @@ export namespace Prisma {
registerConfig?: NullableJsonNullValueInput | InputJsonValue
serverStatsEnabled?: boolean | null
serverStatsConfig?: NullableJsonNullValueInput | InputJsonValue
+ lockdownConfig?: NullableJsonNullValueInput | InputJsonValue
+ tasksEnabled?: boolean | null
supportRoleId?: string | null
updatedAt?: Date | string
createdAt?: Date | string
@@ -19440,6 +20599,8 @@ export namespace Prisma {
registerConfig?: NullableJsonNullValueInput | InputJsonValue
serverStatsEnabled?: NullableBoolFieldUpdateOperationsInput | boolean | null
serverStatsConfig?: NullableJsonNullValueInput | InputJsonValue
+ lockdownConfig?: NullableJsonNullValueInput | InputJsonValue
+ tasksEnabled?: NullableBoolFieldUpdateOperationsInput | boolean | null
supportRoleId?: NullableStringFieldUpdateOperationsInput | string | null
updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
@@ -19468,6 +20629,8 @@ export namespace Prisma {
registerConfig?: NullableJsonNullValueInput | InputJsonValue
serverStatsEnabled?: NullableBoolFieldUpdateOperationsInput | boolean | null
serverStatsConfig?: NullableJsonNullValueInput | InputJsonValue
+ lockdownConfig?: NullableJsonNullValueInput | InputJsonValue
+ tasksEnabled?: NullableBoolFieldUpdateOperationsInput | boolean | null
supportRoleId?: NullableStringFieldUpdateOperationsInput | string | null
updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
@@ -20636,6 +21799,97 @@ export namespace Prisma {
createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
}
+ export type StaffTaskCreateInput = {
+ id?: string
+ guildId: string
+ title: string
+ description?: string | null
+ status?: string
+ assigneeId?: string | null
+ createdBy: string
+ createdByTag: string
+ createdAt?: Date | string
+ updatedAt?: Date | string
+ }
+
+ export type StaffTaskUncheckedCreateInput = {
+ id?: string
+ guildId: string
+ title: string
+ description?: string | null
+ status?: string
+ assigneeId?: string | null
+ createdBy: string
+ createdByTag: string
+ createdAt?: Date | string
+ updatedAt?: Date | string
+ }
+
+ export type StaffTaskUpdateInput = {
+ id?: StringFieldUpdateOperationsInput | string
+ guildId?: StringFieldUpdateOperationsInput | string
+ title?: StringFieldUpdateOperationsInput | string
+ description?: NullableStringFieldUpdateOperationsInput | string | null
+ status?: StringFieldUpdateOperationsInput | string
+ assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
+ createdBy?: StringFieldUpdateOperationsInput | string
+ createdByTag?: StringFieldUpdateOperationsInput | string
+ createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
+ updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
+ }
+
+ export type StaffTaskUncheckedUpdateInput = {
+ id?: StringFieldUpdateOperationsInput | string
+ guildId?: StringFieldUpdateOperationsInput | string
+ title?: StringFieldUpdateOperationsInput | string
+ description?: NullableStringFieldUpdateOperationsInput | string | null
+ status?: StringFieldUpdateOperationsInput | string
+ assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
+ createdBy?: StringFieldUpdateOperationsInput | string
+ createdByTag?: StringFieldUpdateOperationsInput | string
+ createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
+ updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
+ }
+
+ export type StaffTaskCreateManyInput = {
+ id?: string
+ guildId: string
+ title: string
+ description?: string | null
+ status?: string
+ assigneeId?: string | null
+ createdBy: string
+ createdByTag: string
+ createdAt?: Date | string
+ updatedAt?: Date | string
+ }
+
+ export type StaffTaskUpdateManyMutationInput = {
+ id?: StringFieldUpdateOperationsInput | string
+ guildId?: StringFieldUpdateOperationsInput | string
+ title?: StringFieldUpdateOperationsInput | string
+ description?: NullableStringFieldUpdateOperationsInput | string | null
+ status?: StringFieldUpdateOperationsInput | string
+ assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
+ createdBy?: StringFieldUpdateOperationsInput | string
+ createdByTag?: StringFieldUpdateOperationsInput | string
+ createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
+ updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
+ }
+
+ export type StaffTaskUncheckedUpdateManyInput = {
+ id?: StringFieldUpdateOperationsInput | string
+ guildId?: StringFieldUpdateOperationsInput | string
+ title?: StringFieldUpdateOperationsInput | string
+ description?: NullableStringFieldUpdateOperationsInput | string | null
+ status?: StringFieldUpdateOperationsInput | string
+ assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
+ createdBy?: StringFieldUpdateOperationsInput | string
+ createdByTag?: StringFieldUpdateOperationsInput | string
+ createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
+ updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
+ }
+
export type StringFilter<$PrismaModel = never> = {
equals?: string | StringFieldRefInput<$PrismaModel>
in?: string[] | ListStringFieldRefInput<$PrismaModel>
@@ -20732,6 +21986,8 @@ export namespace Prisma {
registerConfig?: SortOrder
serverStatsEnabled?: SortOrder
serverStatsConfig?: SortOrder
+ lockdownConfig?: SortOrder
+ tasksEnabled?: SortOrder
supportRoleId?: SortOrder
updatedAt?: SortOrder
createdAt?: SortOrder
@@ -20752,6 +22008,7 @@ export namespace Prisma {
eventsEnabled?: SortOrder
registerEnabled?: SortOrder
serverStatsEnabled?: SortOrder
+ tasksEnabled?: SortOrder
supportRoleId?: SortOrder
updatedAt?: SortOrder
createdAt?: SortOrder
@@ -20772,6 +22029,7 @@ export namespace Prisma {
eventsEnabled?: SortOrder
registerEnabled?: SortOrder
serverStatsEnabled?: SortOrder
+ tasksEnabled?: SortOrder
supportRoleId?: SortOrder
updatedAt?: SortOrder
createdAt?: SortOrder
@@ -21617,6 +22875,45 @@ export namespace Prisma {
weight?: SortOrder
}
+ export type StaffTaskCountOrderByAggregateInput = {
+ id?: SortOrder
+ guildId?: SortOrder
+ title?: SortOrder
+ description?: SortOrder
+ status?: SortOrder
+ assigneeId?: SortOrder
+ createdBy?: SortOrder
+ createdByTag?: SortOrder
+ createdAt?: SortOrder
+ updatedAt?: SortOrder
+ }
+
+ export type StaffTaskMaxOrderByAggregateInput = {
+ id?: SortOrder
+ guildId?: SortOrder
+ title?: SortOrder
+ description?: SortOrder
+ status?: SortOrder
+ assigneeId?: SortOrder
+ createdBy?: SortOrder
+ createdByTag?: SortOrder
+ createdAt?: SortOrder
+ updatedAt?: SortOrder
+ }
+
+ export type StaffTaskMinOrderByAggregateInput = {
+ id?: SortOrder
+ guildId?: SortOrder
+ title?: SortOrder
+ description?: SortOrder
+ status?: SortOrder
+ assigneeId?: SortOrder
+ createdBy?: SortOrder
+ createdByTag?: SortOrder
+ createdAt?: SortOrder
+ updatedAt?: SortOrder
+ }
+
export type StringFieldUpdateOperationsInput = {
set?: string
}
@@ -23080,6 +24377,10 @@ export namespace Prisma {
* @deprecated Use AutomodStrikeDefaultArgs instead
*/
export type AutomodStrikeArgs = AutomodStrikeDefaultArgs
+ /**
+ * @deprecated Use StaffTaskDefaultArgs instead
+ */
+ export type StaffTaskArgs = StaffTaskDefaultArgs
/**
* Batch Payload for updateMany & deleteMany & createMany
diff --git a/node_modules/.prisma/client/index.js b/node_modules/.prisma/client/index.js
index e19fe0f..19280be 100644
--- a/node_modules/.prisma/client/index.js
+++ b/node_modules/.prisma/client/index.js
@@ -114,6 +114,8 @@ exports.Prisma.GuildSettingsScalarFieldEnum = {
registerConfig: 'registerConfig',
serverStatsEnabled: 'serverStatsEnabled',
serverStatsConfig: 'serverStatsConfig',
+ lockdownConfig: 'lockdownConfig',
+ tasksEnabled: 'tasksEnabled',
supportRoleId: 'supportRoleId',
updatedAt: 'updatedAt',
createdAt: 'createdAt'
@@ -283,6 +285,19 @@ exports.Prisma.AutomodStrikeScalarFieldEnum = {
createdAt: 'createdAt'
};
+exports.Prisma.StaffTaskScalarFieldEnum = {
+ id: 'id',
+ guildId: 'guildId',
+ title: 'title',
+ description: 'description',
+ status: 'status',
+ assigneeId: 'assigneeId',
+ createdBy: 'createdBy',
+ createdByTag: 'createdByTag',
+ createdAt: 'createdAt',
+ updatedAt: 'updatedAt'
+};
+
exports.Prisma.SortOrder = {
asc: 'asc',
desc: 'desc'
@@ -330,7 +345,8 @@ exports.Prisma.ModelName = {
RegisterApplication: 'RegisterApplication',
RegisterApplicationAnswer: 'RegisterApplicationAnswer',
RegisterApplicationNote: 'RegisterApplicationNote',
- AutomodStrike: 'AutomodStrike'
+ AutomodStrike: 'AutomodStrike',
+ StaffTask: 'StaffTask'
};
/**
* Create the Client
@@ -378,8 +394,8 @@ const config = {
}
}
},
- "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel GuildSettings {\n guildId String @id\n welcomeChannelId String?\n logChannelId String?\n automodEnabled Boolean?\n automodConfig Json?\n levelingEnabled Boolean?\n ticketsEnabled Boolean?\n musicEnabled Boolean?\n statuspageEnabled Boolean?\n statuspageConfig Json?\n dynamicVoiceEnabled Boolean?\n dynamicVoiceConfig Json?\n supportLoginConfig Json?\n birthdayEnabled Boolean?\n birthdayConfig Json?\n reactionRolesEnabled Boolean?\n reactionRolesConfig Json?\n eventsEnabled Boolean?\n registerEnabled Boolean?\n registerConfig Json?\n serverStatsEnabled Boolean?\n serverStatsConfig Json?\n supportRoleId String?\n updatedAt DateTime @updatedAt\n createdAt DateTime @default(now())\n}\n\nmodel Ticket {\n id String @id @default(cuid())\n ticketNumber Int @default(autoincrement())\n userId String\n channelId String\n guildId String\n topic String?\n priority String @default(\"normal\")\n status String @default(\"neu\")\n claimedBy String?\n transcript String?\n firstClaimAt DateTime?\n firstResponseAt DateTime?\n kbSuggestionSentAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel TicketAutomationRule {\n id String @id @default(cuid())\n guildId String\n name String\n condition Json\n action Json\n active Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([guildId, active])\n}\n\nmodel KnowledgeBaseArticle {\n id String @id @default(cuid())\n guildId String\n title String\n keywords String[]\n content String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([guildId])\n}\n\nmodel Level {\n id String @id @default(cuid())\n userId String\n guildId String\n xp Int @default(0)\n level Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([userId, guildId], name: \"userId_guildId\")\n}\n\nmodel TicketSupportSession {\n id String @id @default(cuid())\n guildId String\n userId String\n roleId String\n startedAt DateTime @default(now())\n endedAt DateTime?\n durationSeconds Int?\n\n @@index([guildId, userId, endedAt])\n}\n\nmodel Birthday {\n id String @id @default(cuid())\n userId String\n guildId String\n birthDate String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([userId, guildId], name: \"birthday_user_guild\")\n @@index([guildId])\n}\n\nmodel ReactionRoleSet {\n id String @id @default(cuid())\n guildId String\n channelId String\n messageId String?\n title String?\n description String?\n entries Json\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([guildId])\n @@index([guildId, messageId])\n}\n\nmodel Event {\n id String @id @default(cuid())\n guildId String\n title String\n description String?\n channelId String\n startTime DateTime\n repeatType String @default(\"none\")\n repeatConfig Json?\n reminderOffsetMinutes Int @default(60)\n roleId String?\n isActive Boolean @default(true)\n lastReminderAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n signups EventSignup[]\n\n @@index([guildId])\n @@index([guildId, startTime])\n}\n\nmodel EventSignup {\n id String @id @default(cuid())\n eventId String\n guildId String\n userId String\n createdAt DateTime @default(now())\n canceledAt DateTime?\n\n event Event @relation(fields: [eventId], references: [id])\n\n @@unique([eventId, userId])\n @@index([guildId, eventId])\n}\n\nmodel RegisterForm {\n id String @id @default(cuid())\n guildId String\n name String\n description String?\n reviewChannelId String?\n notifyRoleIds String[]\n isActive Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n fields RegisterFormField[]\n applications RegisterApplication[]\n\n @@index([guildId, isActive])\n}\n\nmodel RegisterFormField {\n id String @id @default(cuid())\n formId String\n label String\n type String\n required Boolean @default(false)\n order Int @default(0)\n\n form RegisterForm @relation(fields: [formId], references: [id], onDelete: Cascade)\n}\n\nmodel RegisterApplication {\n id String @id @default(cuid())\n guildId String\n userId String\n formId String\n status String @default(\"pending\")\n reviewedBy String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n answers RegisterApplicationAnswer[]\n notes RegisterApplicationNote[]\n\n form RegisterForm @relation(fields: [formId], references: [id])\n\n @@index([guildId, formId, status])\n}\n\nmodel RegisterApplicationAnswer {\n id String @id @default(cuid())\n applicationId String\n fieldId String\n value String\n\n application RegisterApplication @relation(fields: [applicationId], references: [id], onDelete: Cascade)\n}\n\nmodel RegisterApplicationNote {\n id String @id @default(cuid())\n applicationId String\n authorId String\n authorTag String\n body String\n createdAt DateTime @default(now())\n\n application RegisterApplication @relation(fields: [applicationId], references: [id], onDelete: Cascade)\n\n @@index([applicationId])\n}\n\nmodel AutomodStrike {\n id String @id @default(cuid())\n guildId String\n userId String\n filterKey String\n weight Int @default(1)\n reason String?\n createdAt DateTime @default(now())\n\n @@index([guildId, userId])\n}\n",
- "inlineSchemaHash": "00907c08e253201d3ba8c91348f5a6c710985e251aa2332c64028584c3aa563d",
+ "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel GuildSettings {\n guildId String @id\n welcomeChannelId String?\n logChannelId String?\n automodEnabled Boolean?\n automodConfig Json?\n levelingEnabled Boolean?\n ticketsEnabled Boolean?\n musicEnabled Boolean?\n statuspageEnabled Boolean?\n statuspageConfig Json?\n dynamicVoiceEnabled Boolean?\n dynamicVoiceConfig Json?\n supportLoginConfig Json?\n birthdayEnabled Boolean?\n birthdayConfig Json?\n reactionRolesEnabled Boolean?\n reactionRolesConfig Json?\n eventsEnabled Boolean?\n registerEnabled Boolean?\n registerConfig Json?\n serverStatsEnabled Boolean?\n serverStatsConfig Json?\n lockdownConfig Json?\n tasksEnabled Boolean?\n supportRoleId String?\n updatedAt DateTime @updatedAt\n createdAt DateTime @default(now())\n}\n\nmodel Ticket {\n id String @id @default(cuid())\n ticketNumber Int @default(autoincrement())\n userId String\n channelId String\n guildId String\n topic String?\n priority String @default(\"normal\")\n status String @default(\"neu\")\n claimedBy String?\n transcript String?\n firstClaimAt DateTime?\n firstResponseAt DateTime?\n kbSuggestionSentAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel TicketAutomationRule {\n id String @id @default(cuid())\n guildId String\n name String\n condition Json\n action Json\n active Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([guildId, active])\n}\n\nmodel KnowledgeBaseArticle {\n id String @id @default(cuid())\n guildId String\n title String\n keywords String[]\n content String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([guildId])\n}\n\nmodel Level {\n id String @id @default(cuid())\n userId String\n guildId String\n xp Int @default(0)\n level Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([userId, guildId], name: \"userId_guildId\")\n}\n\nmodel TicketSupportSession {\n id String @id @default(cuid())\n guildId String\n userId String\n roleId String\n startedAt DateTime @default(now())\n endedAt DateTime?\n durationSeconds Int?\n\n @@index([guildId, userId, endedAt])\n}\n\nmodel Birthday {\n id String @id @default(cuid())\n userId String\n guildId String\n birthDate String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([userId, guildId], name: \"birthday_user_guild\")\n @@index([guildId])\n}\n\nmodel ReactionRoleSet {\n id String @id @default(cuid())\n guildId String\n channelId String\n messageId String?\n title String?\n description String?\n entries Json\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([guildId])\n @@index([guildId, messageId])\n}\n\nmodel Event {\n id String @id @default(cuid())\n guildId String\n title String\n description String?\n channelId String\n startTime DateTime\n repeatType String @default(\"none\")\n repeatConfig Json?\n reminderOffsetMinutes Int @default(60)\n roleId String?\n isActive Boolean @default(true)\n lastReminderAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n signups EventSignup[]\n\n @@index([guildId])\n @@index([guildId, startTime])\n}\n\nmodel EventSignup {\n id String @id @default(cuid())\n eventId String\n guildId String\n userId String\n createdAt DateTime @default(now())\n canceledAt DateTime?\n\n event Event @relation(fields: [eventId], references: [id])\n\n @@unique([eventId, userId])\n @@index([guildId, eventId])\n}\n\nmodel RegisterForm {\n id String @id @default(cuid())\n guildId String\n name String\n description String?\n reviewChannelId String?\n notifyRoleIds String[]\n isActive Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n fields RegisterFormField[]\n applications RegisterApplication[]\n\n @@index([guildId, isActive])\n}\n\nmodel RegisterFormField {\n id String @id @default(cuid())\n formId String\n label String\n type String\n required Boolean @default(false)\n order Int @default(0)\n\n form RegisterForm @relation(fields: [formId], references: [id], onDelete: Cascade)\n}\n\nmodel RegisterApplication {\n id String @id @default(cuid())\n guildId String\n userId String\n formId String\n status String @default(\"pending\")\n reviewedBy String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n answers RegisterApplicationAnswer[]\n notes RegisterApplicationNote[]\n\n form RegisterForm @relation(fields: [formId], references: [id])\n\n @@index([guildId, formId, status])\n}\n\nmodel RegisterApplicationAnswer {\n id String @id @default(cuid())\n applicationId String\n fieldId String\n value String\n\n application RegisterApplication @relation(fields: [applicationId], references: [id], onDelete: Cascade)\n}\n\nmodel RegisterApplicationNote {\n id String @id @default(cuid())\n applicationId String\n authorId String\n authorTag String\n body String\n createdAt DateTime @default(now())\n\n application RegisterApplication @relation(fields: [applicationId], references: [id], onDelete: Cascade)\n\n @@index([applicationId])\n}\n\nmodel AutomodStrike {\n id String @id @default(cuid())\n guildId String\n userId String\n filterKey String\n weight Int @default(1)\n reason String?\n createdAt DateTime @default(now())\n\n @@index([guildId, userId])\n}\n\nmodel StaffTask {\n id String @id @default(cuid())\n guildId String\n title String\n description String?\n status String @default(\"open\")\n assigneeId String?\n createdBy String\n createdByTag String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([guildId, status])\n}\n",
+ "inlineSchemaHash": "dd490209a409a4de826b25917a50782fd5c31d0031a2591beb5f3ae7bf58affb",
"copyEngine": true
}
@@ -400,7 +416,7 @@ if (!fs.existsSync(path.join(__dirname, 'schema.prisma'))) {
config.isBundled = true
}
-config.runtimeDataModel = JSON.parse("{\"models\":{\"GuildSettings\":{\"dbName\":null,\"fields\":[{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"welcomeChannelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"logChannelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"automodEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"automodConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"levelingEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ticketsEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"musicEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"statuspageEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"statuspageConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"dynamicVoiceEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"dynamicVoiceConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"supportLoginConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"birthdayEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"birthdayConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reactionRolesEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reactionRolesConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"eventsEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"registerEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"registerConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"serverStatsEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"serverStatsConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"supportRoleId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Ticket\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ticketNumber\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"channelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"topic\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"priority\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":\"normal\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":\"neu\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"claimedBy\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"transcript\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"firstClaimAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"firstResponseAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kbSuggestionSentAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"TicketAutomationRule\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"condition\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"action\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"active\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"default\":true,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"KnowledgeBaseArticle\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"keywords\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"content\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Level\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"xp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"level\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[[\"userId\",\"guildId\"]],\"uniqueIndexes\":[{\"name\":\"userId_guildId\",\"fields\":[\"userId\",\"guildId\"]}],\"isGenerated\":false},\"TicketSupportSession\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"roleId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"endedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"durationSeconds\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Birthday\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"birthDate\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[[\"userId\",\"guildId\"]],\"uniqueIndexes\":[{\"name\":\"birthday_user_guild\",\"fields\":[\"userId\",\"guildId\"]}],\"isGenerated\":false},\"ReactionRoleSet\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"channelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"messageId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"entries\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Event\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"channelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"startTime\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"repeatType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":\"none\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"repeatConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reminderOffsetMinutes\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":60,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"roleId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"isActive\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"default\":true,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastReminderAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"signups\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"EventSignup\",\"relationName\":\"EventToEventSignup\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"EventSignup\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"eventId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"canceledAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"event\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Event\",\"relationName\":\"EventToEventSignup\",\"relationFromFields\":[\"eventId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"eventId\",\"userId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"eventId\",\"userId\"]}],\"isGenerated\":false},\"RegisterForm\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reviewChannelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"notifyRoleIds\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"isActive\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"default\":true,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"fields\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterFormField\",\"relationName\":\"RegisterFormToRegisterFormField\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"applications\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterApplication\",\"relationName\":\"RegisterApplicationToRegisterForm\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"RegisterFormField\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"formId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"label\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"required\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"order\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"form\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterForm\",\"relationName\":\"RegisterFormToRegisterFormField\",\"relationFromFields\":[\"formId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"RegisterApplication\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"formId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":\"pending\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reviewedBy\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"answers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterApplicationAnswer\",\"relationName\":\"RegisterApplicationToRegisterApplicationAnswer\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"notes\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterApplicationNote\",\"relationName\":\"RegisterApplicationToRegisterApplicationNote\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"form\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterForm\",\"relationName\":\"RegisterApplicationToRegisterForm\",\"relationFromFields\":[\"formId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"RegisterApplicationAnswer\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"applicationId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"fieldId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"value\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"application\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterApplication\",\"relationName\":\"RegisterApplicationToRegisterApplicationAnswer\",\"relationFromFields\":[\"applicationId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"RegisterApplicationNote\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"applicationId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"authorId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"authorTag\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"body\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"application\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterApplication\",\"relationName\":\"RegisterApplicationToRegisterApplicationNote\",\"relationFromFields\":[\"applicationId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"AutomodStrike\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"filterKey\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"weight\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":1,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reason\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}")
+config.runtimeDataModel = JSON.parse("{\"models\":{\"GuildSettings\":{\"dbName\":null,\"fields\":[{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"welcomeChannelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"logChannelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"automodEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"automodConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"levelingEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ticketsEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"musicEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"statuspageEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"statuspageConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"dynamicVoiceEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"dynamicVoiceConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"supportLoginConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"birthdayEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"birthdayConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reactionRolesEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reactionRolesConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"eventsEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"registerEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"registerConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"serverStatsEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"serverStatsConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lockdownConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"tasksEnabled\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Boolean\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"supportRoleId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Ticket\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ticketNumber\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"channelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"topic\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"priority\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":\"normal\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":\"neu\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"claimedBy\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"transcript\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"firstClaimAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"firstResponseAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"kbSuggestionSentAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"TicketAutomationRule\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"condition\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"action\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"active\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"default\":true,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"KnowledgeBaseArticle\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"keywords\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"content\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Level\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"xp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"level\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[[\"userId\",\"guildId\"]],\"uniqueIndexes\":[{\"name\":\"userId_guildId\",\"fields\":[\"userId\",\"guildId\"]}],\"isGenerated\":false},\"TicketSupportSession\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"roleId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"endedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"durationSeconds\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Birthday\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"birthDate\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[[\"userId\",\"guildId\"]],\"uniqueIndexes\":[{\"name\":\"birthday_user_guild\",\"fields\":[\"userId\",\"guildId\"]}],\"isGenerated\":false},\"ReactionRoleSet\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"channelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"messageId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"entries\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Event\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"channelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"startTime\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"repeatType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":\"none\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"repeatConfig\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reminderOffsetMinutes\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":60,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"roleId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"isActive\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"default\":true,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastReminderAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"signups\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"EventSignup\",\"relationName\":\"EventToEventSignup\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"EventSignup\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"eventId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"canceledAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"event\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Event\",\"relationName\":\"EventToEventSignup\",\"relationFromFields\":[\"eventId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"eventId\",\"userId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"eventId\",\"userId\"]}],\"isGenerated\":false},\"RegisterForm\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reviewChannelId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"notifyRoleIds\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"isActive\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"default\":true,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"fields\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterFormField\",\"relationName\":\"RegisterFormToRegisterFormField\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"applications\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterApplication\",\"relationName\":\"RegisterApplicationToRegisterForm\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"RegisterFormField\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"formId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"label\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"required\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"order\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"form\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterForm\",\"relationName\":\"RegisterFormToRegisterFormField\",\"relationFromFields\":[\"formId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"RegisterApplication\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"formId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":\"pending\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reviewedBy\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"answers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterApplicationAnswer\",\"relationName\":\"RegisterApplicationToRegisterApplicationAnswer\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"notes\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterApplicationNote\",\"relationName\":\"RegisterApplicationToRegisterApplicationNote\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"form\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterForm\",\"relationName\":\"RegisterApplicationToRegisterForm\",\"relationFromFields\":[\"formId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"RegisterApplicationAnswer\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"applicationId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"fieldId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"value\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"application\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterApplication\",\"relationName\":\"RegisterApplicationToRegisterApplicationAnswer\",\"relationFromFields\":[\"applicationId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"RegisterApplicationNote\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"applicationId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"authorId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"authorTag\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"body\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"application\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"RegisterApplication\",\"relationName\":\"RegisterApplicationToRegisterApplicationNote\",\"relationFromFields\":[\"applicationId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"AutomodStrike\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"filterKey\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"weight\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":1,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reason\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"StaffTask\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"cuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"guildId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"description\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":\"open\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"assigneeId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdBy\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdByTag\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}")
defineDmmfProperty(exports.Prisma, config.runtimeDataModel)
config.engineWasm = undefined
diff --git a/node_modules/.prisma/client/wasm.js b/node_modules/.prisma/client/wasm.js
index b0529b1..440cf9d 100644
--- a/node_modules/.prisma/client/wasm.js
+++ b/node_modules/.prisma/client/wasm.js
@@ -145,6 +145,8 @@ exports.Prisma.GuildSettingsScalarFieldEnum = {
registerConfig: 'registerConfig',
serverStatsEnabled: 'serverStatsEnabled',
serverStatsConfig: 'serverStatsConfig',
+ lockdownConfig: 'lockdownConfig',
+ tasksEnabled: 'tasksEnabled',
supportRoleId: 'supportRoleId',
updatedAt: 'updatedAt',
createdAt: 'createdAt'
@@ -314,6 +316,19 @@ exports.Prisma.AutomodStrikeScalarFieldEnum = {
createdAt: 'createdAt'
};
+exports.Prisma.StaffTaskScalarFieldEnum = {
+ id: 'id',
+ guildId: 'guildId',
+ title: 'title',
+ description: 'description',
+ status: 'status',
+ assigneeId: 'assigneeId',
+ createdBy: 'createdBy',
+ createdByTag: 'createdByTag',
+ createdAt: 'createdAt',
+ updatedAt: 'updatedAt'
+};
+
exports.Prisma.SortOrder = {
asc: 'asc',
desc: 'desc'
@@ -361,7 +376,8 @@ exports.Prisma.ModelName = {
RegisterApplication: 'RegisterApplication',
RegisterApplicationAnswer: 'RegisterApplicationAnswer',
RegisterApplicationNote: 'RegisterApplicationNote',
- AutomodStrike: 'AutomodStrike'
+ AutomodStrike: 'AutomodStrike',
+ StaffTask: 'StaffTask'
};
/**
diff --git a/src/commands/admin/lockdown.ts b/src/commands/admin/lockdown.ts
new file mode 100644
index 0000000..f919f8a
--- /dev/null
+++ b/src/commands/admin/lockdown.ts
@@ -0,0 +1,48 @@
+import { ChatInputCommandInteraction, PermissionFlagsBits, SlashCommandBuilder } from 'discord.js';
+import { SlashCommand } from '../../utils/types';
+import { context } from '../../config/context';
+
+const command: SlashCommand = {
+ guildOnly: true,
+ data: new SlashCommandBuilder()
+ .setName('lockdown')
+ .setDescription('Aktiviert oder deaktiviert den Raid-Schutz/Lockdown-Modus.')
+ .addSubcommand((sub) =>
+ sub
+ .setName('enable')
+ .setDescription('Aktiviert den Lockdown-Modus.')
+ .addStringOption((opt) => opt.setName('reason').setDescription('Grund für den Lockdown'))
+ .addRoleOption((opt) => opt.setName('staff_role').setDescription('Rolle, die im Raid-Log gepingt wird'))
+ )
+ .addSubcommand((sub) => sub.setName('disable').setDescription('Hebt den Lockdown-Modus wieder auf.'))
+ .setDefaultMemberPermissions(PermissionFlagsBits.Administrator),
+ async execute(interaction: ChatInputCommandInteraction) {
+ if (!interaction.guild) return;
+ const sub = interaction.options.getSubcommand();
+
+ if (sub === 'enable') {
+ if (context.lockdown.isActive(interaction.guildId!)) {
+ await interaction.reply({ content: 'Lockdown ist bereits aktiv.', ephemeral: true });
+ return;
+ }
+ await interaction.deferReply({ ephemeral: true });
+ const reason = interaction.options.getString('reason') ?? undefined;
+ const staffRole = interaction.options.getRole('staff_role');
+ await context.lockdown.enable(interaction.guild, interaction.user.id, reason, staffRole?.id);
+ await interaction.editReply({ content: 'Lockdown wurde aktiviert. Alle Textkanäle sind für @everyone gesperrt.' });
+ return;
+ }
+
+ if (sub === 'disable') {
+ if (!context.lockdown.isActive(interaction.guildId!)) {
+ await interaction.reply({ content: 'Lockdown ist aktuell nicht aktiv.', ephemeral: true });
+ return;
+ }
+ await interaction.deferReply({ ephemeral: true });
+ await context.lockdown.disable(interaction.guild);
+ await interaction.editReply({ content: 'Lockdown wurde aufgehoben.' });
+ }
+ }
+};
+
+export default command;
diff --git a/src/commands/utility/embed.ts b/src/commands/utility/embed.ts
new file mode 100644
index 0000000..7323c8d
--- /dev/null
+++ b/src/commands/utility/embed.ts
@@ -0,0 +1,17 @@
+import { ChatInputCommandInteraction, PermissionFlagsBits, SlashCommandBuilder } from 'discord.js';
+import { SlashCommand } from '../../utils/types';
+import { context } from '../../config/context';
+
+const command: SlashCommand = {
+ guildOnly: true,
+ data: new SlashCommandBuilder()
+ .setName('embed')
+ .setDescription('Erstellt ein eigenes Embed.')
+ .addSubcommand((sub) => sub.setName('create').setDescription('Öffnet den Embed-Builder.'))
+ .setDefaultMemberPermissions(PermissionFlagsBits.ManageMessages),
+ async execute(interaction: ChatInputCommandInteraction) {
+ await context.embedBuilder.openModal(interaction);
+ }
+};
+
+export default command;
diff --git a/src/commands/utility/setup.ts b/src/commands/utility/setup.ts
new file mode 100644
index 0000000..e091abb
--- /dev/null
+++ b/src/commands/utility/setup.ts
@@ -0,0 +1,16 @@
+import { ChatInputCommandInteraction, PermissionFlagsBits, SlashCommandBuilder } from 'discord.js';
+import { SlashCommand } from '../../utils/types';
+import { context } from '../../config/context';
+
+const command: SlashCommand = {
+ guildOnly: true,
+ data: new SlashCommandBuilder()
+ .setName('setup')
+ .setDescription('Startet den Einrichtungsassistenten für diesen Server.')
+ .setDefaultMemberPermissions(PermissionFlagsBits.ManageGuild),
+ async execute(interaction: ChatInputCommandInteraction) {
+ await context.setup.start(interaction);
+ }
+};
+
+export default command;
diff --git a/src/commands/utility/task.ts b/src/commands/utility/task.ts
new file mode 100644
index 0000000..7f6ab96
--- /dev/null
+++ b/src/commands/utility/task.ts
@@ -0,0 +1,66 @@
+import {
+ ActionRowBuilder,
+ ButtonBuilder,
+ ButtonStyle,
+ ChatInputCommandInteraction,
+ EmbedBuilder,
+ PermissionFlagsBits,
+ SlashCommandBuilder
+} from 'discord.js';
+import { SlashCommand } from '../../utils/types';
+import { context } from '../../config/context';
+
+const STATUS_LABELS: Record = { open: 'Offen', in_progress: 'In Bearbeitung', done: 'Erledigt' };
+
+export function buildTaskCard(task: { id: string; title: string; description: string | null; status: string; assigneeId: string | null; createdByTag: string }) {
+ const embed = new EmbedBuilder()
+ .setTitle(task.title)
+ .setDescription(task.description || 'Keine Beschreibung')
+ .setColor(0xf97316)
+ .addFields(
+ { name: 'Status', value: STATUS_LABELS[task.status] || task.status, inline: true },
+ { name: 'Zugewiesen an', value: task.assigneeId ? `<@${task.assigneeId}>` : 'Niemand', inline: true },
+ { name: 'Erstellt von', value: task.createdByTag, inline: true }
+ );
+ const row = new ActionRowBuilder().addComponents(
+ new ButtonBuilder().setCustomId(`task:status:${task.id}:open`).setLabel('Offen').setStyle(task.status === 'open' ? ButtonStyle.Primary : ButtonStyle.Secondary),
+ new ButtonBuilder().setCustomId(`task:status:${task.id}:in_progress`).setLabel('In Bearbeitung').setStyle(task.status === 'in_progress' ? ButtonStyle.Primary : ButtonStyle.Secondary),
+ new ButtonBuilder().setCustomId(`task:status:${task.id}:done`).setLabel('Erledigt').setStyle(task.status === 'done' ? ButtonStyle.Success : ButtonStyle.Secondary)
+ );
+ return { embeds: [embed], components: [row] };
+}
+
+const command: SlashCommand = {
+ guildOnly: true,
+ data: new SlashCommandBuilder()
+ .setName('task')
+ .setDescription('Verwaltet Team-Aufgaben.')
+ .addSubcommand((sub) =>
+ sub
+ .setName('create')
+ .setDescription('Erstellt eine neue Team-Aufgabe.')
+ .addStringOption((opt) => opt.setName('title').setDescription('Titel der Aufgabe').setRequired(true))
+ .addStringOption((opt) => opt.setName('description').setDescription('Beschreibung'))
+ .addUserOption((opt) => opt.setName('assignee').setDescription('Zuständige Person'))
+ )
+ .setDefaultMemberPermissions(PermissionFlagsBits.ManageMessages),
+ async execute(interaction: ChatInputCommandInteraction) {
+ if (!interaction.guildId) return;
+ const title = interaction.options.getString('title', true);
+ const description = interaction.options.getString('description') ?? undefined;
+ const assignee = interaction.options.getUser('assignee');
+
+ const task = await context.tasks.createTask({
+ guildId: interaction.guildId,
+ title,
+ description,
+ assigneeId: assignee?.id,
+ createdBy: interaction.user.id,
+ createdByTag: interaction.user.tag
+ });
+
+ await interaction.reply(buildTaskCard(task));
+ }
+};
+
+export default command;
diff --git a/src/config/context.ts b/src/config/context.ts
index 155caee..8884b95 100644
--- a/src/config/context.ts
+++ b/src/config/context.ts
@@ -16,8 +16,14 @@ import { TicketAutomationService } from '../services/ticketAutomationService';
import { KnowledgeBaseService } from '../services/knowledgeBaseService';
import { RegisterService } from '../services/registerService';
import { StatsService } from '../services/statsService';
+import { LockdownService } from '../services/lockdownService';
+import { TaskService } from '../services/taskService';
+import { SetupWizardService } from '../services/setupService';
+import { EmbedBuilderService } from '../services/embedBuilderService';
const logging = new LoggingService();
+const moduleService = new BotModuleService();
+const ticketService = new TicketService();
export const context = {
client: null as Client | null,
@@ -25,10 +31,10 @@ export const context = {
logging,
automod: new AutoModService(logging, true, true),
music: new MusicService(),
- tickets: new TicketService(),
+ tickets: ticketService,
leveling: new LevelService(),
dynamicVoice: new DynamicVoiceService(),
- modules: new BotModuleService(),
+ modules: moduleService,
admin: new AdminService(),
statuspage: new StatuspageService(),
birthdays: new BirthdayService(),
@@ -37,7 +43,11 @@ export const context = {
ticketAutomation: new TicketAutomationService(),
knowledgeBase: new KnowledgeBaseService(),
register: new RegisterService(),
- stats: new StatsService()
+ stats: new StatsService(),
+ lockdown: new LockdownService(),
+ tasks: new TaskService(),
+ setup: new SetupWizardService(moduleService, ticketService),
+ embedBuilder: new EmbedBuilderService()
};
context.modules.setHooks({
diff --git a/src/config/state.ts b/src/config/state.ts
index 03280a3..427f5fd 100644
--- a/src/config/state.ts
+++ b/src/config/state.ts
@@ -77,6 +77,15 @@ export interface GuildSettings {
};
supportRoleId?: string;
welcomeEnabled?: boolean;
+ tasksEnabled?: boolean;
+ lockdownConfig?: {
+ active?: boolean;
+ activatedAt?: string;
+ activatedBy?: string;
+ reason?: string;
+ staffRoleId?: string;
+ snapshot?: { channelId: string; sendMessages: boolean | null }[];
+ };
}
class SettingsStore {
@@ -95,7 +104,8 @@ class SettingsStore {
'birthdayEnabled',
'reactionRolesEnabled',
'eventsEnabled',
- 'registerEnabled'
+ 'registerEnabled',
+ 'tasksEnabled'
] as const;
defaultOn.forEach((key) => {
if (normalized[key] === undefined) normalized[key] = true;
@@ -136,6 +146,8 @@ class SettingsStore {
registerConfig: (row as any).registerConfig ?? undefined,
serverStatsEnabled: (row as any).serverStatsEnabled ?? undefined,
serverStatsConfig: (row as any).serverStatsConfig ?? undefined,
+ lockdownConfig: (row as any).lockdownConfig ?? undefined,
+ tasksEnabled: (row as any).tasksEnabled ?? undefined,
supportRoleId: row.supportRoleId ?? undefined
} satisfies GuildSettings;
this.cache.set(row.guildId, this.applyModuleDefaults(cfg));
@@ -191,6 +203,9 @@ class SettingsStore {
if (partial.reactionRolesConfig) {
merged.reactionRolesConfig = { ...(merged.reactionRolesConfig ?? {}), ...partial.reactionRolesConfig };
}
+ if (partial.lockdownConfig) {
+ merged.lockdownConfig = { ...(merged.lockdownConfig ?? {}), ...partial.lockdownConfig };
+ }
merged.automodConfig = { ...mergedAutomod, supportLoginConfig: merged.supportLoginConfig ?? mergedAutomod['supportLoginConfig'] };
merged.statuspageEnabled = mergedAutomod.statuspageEnabled;
merged.statuspageConfig = mergedAutomod.statuspageConfig;
@@ -220,6 +235,8 @@ class SettingsStore {
registerConfig: merged.registerConfig ?? Prisma.JsonNull,
serverStatsEnabled: (merged as any).serverStatsEnabled ?? null,
serverStatsConfig: (merged as any).serverStatsConfig ?? null,
+ lockdownConfig: merged.lockdownConfig ?? Prisma.JsonNull,
+ tasksEnabled: merged.tasksEnabled ?? null,
supportRoleId: merged.supportRoleId ?? null
},
create: {
@@ -244,6 +261,8 @@ class SettingsStore {
registerConfig: merged.registerConfig ?? Prisma.JsonNull,
serverStatsEnabled: (merged as any).serverStatsEnabled ?? null,
serverStatsConfig: (merged as any).serverStatsConfig ?? null,
+ lockdownConfig: merged.lockdownConfig ?? Prisma.JsonNull,
+ tasksEnabled: merged.tasksEnabled ?? null,
supportRoleId: merged.supportRoleId ?? null
}
});
diff --git a/src/database/migrations/20260703120000_add_staff_tasks/migration.sql b/src/database/migrations/20260703120000_add_staff_tasks/migration.sql
new file mode 100644
index 0000000..16cd661
--- /dev/null
+++ b/src/database/migrations/20260703120000_add_staff_tasks/migration.sql
@@ -0,0 +1,22 @@
+-- AlterTable
+ALTER TABLE "GuildSettings" ADD COLUMN "lockdownConfig" JSONB,
+ADD COLUMN "tasksEnabled" BOOLEAN;
+
+-- CreateTable
+CREATE TABLE "StaffTask" (
+ "id" TEXT NOT NULL,
+ "guildId" TEXT NOT NULL,
+ "title" TEXT NOT NULL,
+ "description" TEXT,
+ "status" TEXT NOT NULL DEFAULT 'open',
+ "assigneeId" TEXT,
+ "createdBy" TEXT NOT NULL,
+ "createdByTag" TEXT NOT NULL,
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ "updatedAt" TIMESTAMP(3) NOT NULL,
+
+ CONSTRAINT "StaffTask_pkey" PRIMARY KEY ("id")
+);
+
+-- CreateIndex
+CREATE INDEX "StaffTask_guildId_status_idx" ON "StaffTask"("guildId", "status");
diff --git a/src/database/schema.prisma b/src/database/schema.prisma
index d2397c3..0e28cf9 100644
--- a/src/database/schema.prisma
+++ b/src/database/schema.prisma
@@ -30,6 +30,8 @@ model GuildSettings {
registerConfig Json?
serverStatsEnabled Boolean?
serverStatsConfig Json?
+ lockdownConfig Json?
+ tasksEnabled Boolean?
supportRoleId String?
updatedAt DateTime @updatedAt
createdAt DateTime @default(now())
@@ -242,3 +244,18 @@ model AutomodStrike {
@@index([guildId, userId])
}
+
+model StaffTask {
+ id String @id @default(cuid())
+ guildId String
+ title String
+ description String?
+ status String @default("open")
+ assigneeId String?
+ createdBy String
+ createdByTag String
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+
+ @@index([guildId, status])
+}
diff --git a/src/events/guildMemberAdd.ts b/src/events/guildMemberAdd.ts
index b68e87d..9f3da37 100644
--- a/src/events/guildMemberAdd.ts
+++ b/src/events/guildMemberAdd.ts
@@ -6,6 +6,11 @@ import { settingsStore } from '../config/state';
const event: EventHandler = {
name: 'guildMemberAdd',
execute(member: GuildMember) {
+ if (context.lockdown.isActive(member.guild.id)) {
+ member.kick('Lockdown aktiv - neue Mitglieder werden abgewiesen').catch(() => undefined);
+ context.logging.logMemberJoin(member);
+ return;
+ }
const guildConfig = settingsStore.get(member.guild.id);
const welcomeCfg = guildConfig?.welcomeConfig || guildConfig?.automodConfig?.welcomeConfig;
if (welcomeCfg?.enabled && welcomeCfg.channelId) {
diff --git a/src/events/interactionCreate.ts b/src/events/interactionCreate.ts
index 9900e25..53e016e 100644
--- a/src/events/interactionCreate.ts
+++ b/src/events/interactionCreate.ts
@@ -1,6 +1,7 @@
import { Interaction } from 'discord.js';
import { EventHandler } from '../utils/types';
import { context } from '../config/context';
+import { buildTaskCard } from '../commands/utility/task';
const event: EventHandler = {
name: 'interactionCreate',
@@ -12,6 +13,23 @@ const event: EventHandler = {
return;
}
+ if (interaction.isButton() || interaction.isStringSelectMenu() || interaction.isChannelSelectMenu()) {
+ if (interaction.customId.startsWith('setup:')) {
+ await context.setup.handleComponent(interaction as any);
+ return;
+ }
+ if (interaction.customId.startsWith('embed:')) {
+ await context.embedBuilder.handleComponent(interaction as any);
+ return;
+ }
+ if (interaction.isButton() && interaction.customId.startsWith('task:status:')) {
+ const [, , taskId, status] = interaction.customId.split(':');
+ const task = await context.tasks.updateStatus(taskId, status as any);
+ await interaction.update(buildTaskCard(task));
+ return;
+ }
+ }
+
if (interaction.isButton()) {
if (interaction.customId.startsWith('event:')) {
const [_, action, eventId] = interaction.customId.split(':');
@@ -32,6 +50,10 @@ const event: EventHandler = {
await context.register.handleModal(interaction as any);
return;
}
+ if (interaction.customId.startsWith('embed:')) {
+ await context.embedBuilder.handleModal(interaction);
+ return;
+ }
}
}
};
diff --git a/src/services/commandHandler.ts b/src/services/commandHandler.ts
index 3bc1c5c..9d0110b 100644
--- a/src/services/commandHandler.ts
+++ b/src/services/commandHandler.ts
@@ -34,7 +34,9 @@ export class CommandHandler {
birthday: 'birthdayEnabled',
// Events
event: 'eventsEnabled',
- events: 'eventsEnabled'
+ events: 'eventsEnabled',
+ // Tasks
+ task: 'tasksEnabled'
};
constructor(private client: Client, private admin?: AdminService, private statuspage?: StatuspageService) {}
diff --git a/src/services/embedBuilderService.ts b/src/services/embedBuilderService.ts
new file mode 100644
index 0000000..698bf9c
--- /dev/null
+++ b/src/services/embedBuilderService.ts
@@ -0,0 +1,166 @@
+import {
+ ActionRowBuilder,
+ ButtonBuilder,
+ ButtonInteraction,
+ ButtonStyle,
+ ChannelSelectMenuBuilder,
+ ChannelSelectMenuInteraction,
+ ChannelType,
+ ChatInputCommandInteraction,
+ EmbedBuilder,
+ ModalBuilder,
+ ModalSubmitInteraction,
+ TextInputBuilder,
+ TextInputStyle
+} from 'discord.js';
+
+type ComponentInteraction = ButtonInteraction | ChannelSelectMenuInteraction;
+
+interface EmbedDraft {
+ guildId: string;
+ title?: string;
+ description?: string;
+ color?: number;
+ imageUrl?: string;
+ footer?: string;
+ buttonLabel?: string;
+ buttonUrl?: string;
+ channelId?: string;
+}
+
+export class EmbedBuilderService {
+ private drafts = new Map();
+
+ public async openModal(interaction: ChatInputCommandInteraction) {
+ const modal = new ModalBuilder().setCustomId('embed:create').setTitle('Embed erstellen');
+ const title = new TextInputBuilder().setCustomId('title').setLabel('Titel').setStyle(TextInputStyle.Short).setRequired(false);
+ const description = new TextInputBuilder().setCustomId('description').setLabel('Beschreibung').setStyle(TextInputStyle.Paragraph).setRequired(false);
+ const color = new TextInputBuilder().setCustomId('color').setLabel('Farbe (Hex, z.B. #f97316)').setStyle(TextInputStyle.Short).setRequired(false);
+ const image = new TextInputBuilder().setCustomId('image').setLabel('Bild-URL').setStyle(TextInputStyle.Short).setRequired(false);
+ const footer = new TextInputBuilder().setCustomId('footer').setLabel('Footer').setStyle(TextInputStyle.Short).setRequired(false);
+ modal.addComponents(
+ new ActionRowBuilder().addComponents(title),
+ new ActionRowBuilder().addComponents(description),
+ new ActionRowBuilder().addComponents(color),
+ new ActionRowBuilder().addComponents(image),
+ new ActionRowBuilder().addComponents(footer)
+ );
+ await interaction.showModal(modal);
+ }
+
+ public async handleModal(interaction: ModalSubmitInteraction) {
+ if (interaction.customId === 'embed:create') {
+ const draft: EmbedDraft = {
+ guildId: interaction.guildId || '',
+ title: interaction.fields.getTextInputValue('title') || undefined,
+ description: interaction.fields.getTextInputValue('description') || undefined,
+ color: this.parseColor(interaction.fields.getTextInputValue('color')),
+ imageUrl: interaction.fields.getTextInputValue('image') || undefined,
+ footer: interaction.fields.getTextInputValue('footer') || undefined
+ };
+ await interaction.reply({ ...this.renderPreview(draft), ephemeral: true });
+ const msg = await interaction.fetchReply();
+ this.drafts.set(msg.id, draft);
+ return;
+ }
+
+ if (interaction.customId.startsWith('embed:buttonmodal:')) {
+ const messageId = interaction.customId.split(':')[2];
+ const draft = this.drafts.get(messageId);
+ if (!draft) {
+ await interaction.reply({ content: 'Diese Vorschau ist abgelaufen. Starte `/embed create` erneut.', ephemeral: true });
+ return;
+ }
+ draft.buttonLabel = interaction.fields.getTextInputValue('label') || undefined;
+ draft.buttonUrl = interaction.fields.getTextInputValue('url') || undefined;
+ if (interaction.isFromMessage()) {
+ await interaction.update(this.renderPreview(draft));
+ }
+ return;
+ }
+ }
+
+ public async handleComponent(interaction: ComponentInteraction) {
+ const messageId = interaction.message.id;
+ const draft = this.drafts.get(messageId);
+ if (!draft) {
+ await interaction.reply({ content: 'Diese Vorschau ist abgelaufen. Starte `/embed create` erneut.', ephemeral: true });
+ return;
+ }
+
+ if (interaction.isChannelSelectMenu()) {
+ draft.channelId = interaction.values[0];
+ await interaction.update(this.renderPreview(draft));
+ return;
+ }
+
+ const action = interaction.customId.split(':')[1];
+
+ if (action === 'addbutton') {
+ const modal = new ModalBuilder().setCustomId(`embed:buttonmodal:${messageId}`).setTitle('Link-Button');
+ const label = new TextInputBuilder().setCustomId('label').setLabel('Button-Label').setStyle(TextInputStyle.Short).setRequired(true).setValue(draft.buttonLabel || '');
+ const url = new TextInputBuilder().setCustomId('url').setLabel('Button-URL').setStyle(TextInputStyle.Short).setRequired(true).setValue(draft.buttonUrl || '');
+ modal.addComponents(new ActionRowBuilder().addComponents(label), new ActionRowBuilder().addComponents(url));
+ await interaction.showModal(modal);
+ return;
+ }
+
+ if (action === 'cancel') {
+ this.drafts.delete(messageId);
+ await interaction.update({ embeds: [new EmbedBuilder().setTitle('Abgebrochen').setColor(0x6b7280)], components: [] });
+ return;
+ }
+
+ if (action === 'send') {
+ if (!draft.channelId) {
+ await interaction.reply({ content: 'Bitte zuerst einen Zielkanal wählen.', ephemeral: true });
+ return;
+ }
+ const guild = interaction.guild;
+ const channel = guild ? await guild.channels.fetch(draft.channelId).catch(() => null) : null;
+ if (!channel || !channel.isTextBased()) {
+ await interaction.reply({ content: 'Kanal nicht gefunden.', ephemeral: true });
+ return;
+ }
+ const embed = this.buildEmbed(draft);
+ const components =
+ draft.buttonLabel && draft.buttonUrl
+ ? [new ActionRowBuilder().addComponents(new ButtonBuilder().setLabel(draft.buttonLabel).setURL(draft.buttonUrl).setStyle(ButtonStyle.Link))]
+ : [];
+ await channel.send({ embeds: [embed], components });
+ this.drafts.delete(messageId);
+ await interaction.update({ content: `Embed gesendet in <#${draft.channelId}>.`, embeds: [], components: [] });
+ return;
+ }
+ }
+
+ private renderPreview(draft: EmbedDraft) {
+ const embed = this.buildEmbed(draft);
+ const channelRow = new ActionRowBuilder().addComponents(
+ new ChannelSelectMenuBuilder().setCustomId('embed:channel').setChannelTypes(ChannelType.GuildText).setPlaceholder('Zielkanal wählen')
+ );
+ const buttonRow = new ActionRowBuilder().addComponents(
+ new ButtonBuilder().setCustomId('embed:addbutton').setLabel(draft.buttonLabel ? 'Link-Button bearbeiten' : 'Link-Button hinzufügen').setStyle(ButtonStyle.Secondary),
+ new ButtonBuilder().setCustomId('embed:send').setLabel('Senden').setStyle(ButtonStyle.Success).setDisabled(!draft.channelId),
+ new ButtonBuilder().setCustomId('embed:cancel').setLabel('Abbrechen').setStyle(ButtonStyle.Danger)
+ );
+ return { embeds: [embed], components: [channelRow, buttonRow] };
+ }
+
+ private buildEmbed(draft: EmbedDraft) {
+ const embed = new EmbedBuilder().setColor(draft.color ?? 0xf97316);
+ if (draft.title) embed.setTitle(draft.title);
+ if (draft.description) embed.setDescription(draft.description);
+ if (draft.imageUrl) embed.setImage(draft.imageUrl);
+ if (draft.footer) embed.setFooter({ text: draft.footer });
+ if (!draft.title && !draft.description) embed.setDescription('*Keine Inhalte gesetzt*');
+ return embed;
+ }
+
+ private parseColor(input: string): number | undefined {
+ if (!input) return undefined;
+ const hex = input.trim().replace(/^#/, '');
+ if (!/^[0-9a-fA-F]{6}$/.test(hex)) return undefined;
+ return parseInt(hex, 16);
+ }
+}
diff --git a/src/services/lockdownService.ts b/src/services/lockdownService.ts
new file mode 100644
index 0000000..b13e4ce
--- /dev/null
+++ b/src/services/lockdownService.ts
@@ -0,0 +1,91 @@
+import { ChannelType, EmbedBuilder, Guild, TextChannel } from 'discord.js';
+import { settingsStore } from '../config/state';
+import { logger } from '../utils/logger';
+
+interface ChannelLockSnapshot {
+ channelId: string;
+ sendMessages: boolean | null;
+}
+
+export class LockdownService {
+ public isActive(guildId: string): boolean {
+ return settingsStore.get(guildId)?.lockdownConfig?.active === true;
+ }
+
+ public async enable(guild: Guild, activatedBy: string, reason?: string, staffRoleId?: string): Promise {
+ if (this.isActive(guild.id)) return false;
+
+ const everyone = guild.roles.everyone;
+ const textChannels = guild.channels.cache.filter(
+ (c): c is TextChannel => c.type === ChannelType.GuildText
+ );
+
+ const snapshot: ChannelLockSnapshot[] = [];
+ for (const channel of textChannels.values()) {
+ const overwrite = channel.permissionOverwrites.cache.get(everyone.id);
+ const sendMessages = overwrite?.deny.has('SendMessages')
+ ? false
+ : overwrite?.allow.has('SendMessages')
+ ? true
+ : null;
+ snapshot.push({ channelId: channel.id, sendMessages });
+ await channel.permissionOverwrites.edit(everyone, { SendMessages: false }).catch((err) => logger.error(`Lockdown: failed to lock ${channel.id}`, err));
+ }
+
+ await settingsStore.set(guild.id, {
+ lockdownConfig: {
+ active: true,
+ activatedAt: new Date().toISOString(),
+ activatedBy,
+ reason,
+ staffRoleId,
+ snapshot
+ }
+ });
+
+ await this.postLog(guild, 'Lockdown aktiviert', reason, staffRoleId, 0xdc2626, textChannels.size);
+ return true;
+ }
+
+ public async disable(guild: Guild): Promise {
+ const cfg = settingsStore.get(guild.id);
+ const lockdown = cfg?.lockdownConfig;
+ if (!lockdown?.active) return false;
+
+ const everyone = guild.roles.everyone;
+ for (const entry of lockdown.snapshot || []) {
+ const channel = guild.channels.cache.get(entry.channelId);
+ if (!channel || channel.type !== ChannelType.GuildText) continue;
+ await (channel as TextChannel).permissionOverwrites
+ .edit(everyone, { SendMessages: entry.sendMessages })
+ .catch((err) => logger.error(`Lockdown: failed to unlock ${channel.id}`, err));
+ }
+
+ await settingsStore.set(guild.id, {
+ lockdownConfig: { active: false, snapshot: [] }
+ });
+
+ await this.postLog(guild, 'Lockdown aufgehoben', undefined, undefined, 0x22c55e);
+ return true;
+ }
+
+ private async postLog(guild: Guild, title: string, reason?: string, staffRoleId?: string, color = 0xdc2626, channelCount?: number) {
+ const cfg = settingsStore.get(guild.id);
+ const channelId = cfg?.loggingConfig?.logChannelId || cfg?.logChannelId;
+ if (!channelId) return;
+ const channel = await guild.channels.fetch(channelId).catch(() => null);
+ if (!channel || !channel.isTextBased()) return;
+
+ const embed = new EmbedBuilder()
+ .setTitle(`Raid-Schutz: ${title}`)
+ .setColor(color)
+ .setTimestamp()
+ .addFields(
+ { name: 'Grund', value: reason || 'Kein Grund angegeben' },
+ ...(channelCount !== undefined ? [{ name: 'Betroffene Kanäle', value: String(channelCount) }] : [])
+ );
+
+ const content = staffRoleId ? `<@&${staffRoleId}>` : undefined;
+ await channel.send({ content, embeds: [embed] }).catch((err) => logger.error('Failed to send lockdown log', err));
+ }
+}
diff --git a/src/services/moduleService.ts b/src/services/moduleService.ts
index 01104d4..5ccc55b 100644
--- a/src/services/moduleService.ts
+++ b/src/services/moduleService.ts
@@ -12,7 +12,8 @@ export type ModuleKey =
| 'reactionRolesEnabled'
| 'eventsEnabled'
| 'registerEnabled'
- | 'serverStatsEnabled';
+ | 'serverStatsEnabled'
+ | 'tasksEnabled';
export interface GuildModuleState {
key: ModuleKey;
@@ -33,7 +34,8 @@ const MODULES: Record = {
reactionRolesEnabled: { name: 'Reaction Roles', description: 'Reaktionen vergeben und entfernen Rollen.' },
eventsEnabled: { name: 'Termine', description: 'Events planen, erinnern und Anmeldungen sammeln.' },
registerEnabled: { name: 'Register', description: 'Registrierungsformulare und Bewerbungen.' },
- serverStatsEnabled: { name: 'Server Stats', description: 'Zeigt Member-/Channel-Zahlen als Voice-Statistiken an.' }
+ serverStatsEnabled: { name: 'Server Stats', description: 'Zeigt Member-/Channel-Zahlen als Voice-Statistiken an.' },
+ tasksEnabled: { name: 'Team-Aufgaben', description: 'Aufgaben für das Team erstellen und Status per Buttons pflegen.' }
};
export class BotModuleService {
diff --git a/src/services/setupService.ts b/src/services/setupService.ts
new file mode 100644
index 0000000..475b1e3
--- /dev/null
+++ b/src/services/setupService.ts
@@ -0,0 +1,341 @@
+import {
+ ActionRowBuilder,
+ ButtonBuilder,
+ ButtonInteraction,
+ ButtonStyle,
+ ChannelSelectMenuBuilder,
+ ChannelSelectMenuInteraction,
+ ChannelType,
+ ChatInputCommandInteraction,
+ EmbedBuilder,
+ StringSelectMenuBuilder,
+ StringSelectMenuInteraction
+} from 'discord.js';
+import { settingsStore } from '../config/state';
+import { BotModuleService, ModuleKey } from './moduleService';
+import { TicketService } from './ticketService';
+
+type ComponentInteraction = ButtonInteraction | StringSelectMenuInteraction | ChannelSelectMenuInteraction;
+type AutomodLevel = 'light' | 'normal' | 'strict';
+
+interface WizardState {
+ guildId: string;
+ step: number;
+ serverType?: string;
+ availableModules: { key: ModuleKey; name: string; description: string }[];
+ selectedModules: Set;
+ ticketCategoryCreated?: boolean;
+ logChannelId?: string;
+ welcomeChannelId?: string;
+ automodLevel?: AutomodLevel;
+}
+
+const SERVER_TYPES: { key: string; label: string; presetModules: ModuleKey[] }[] = [
+ { key: 'community', label: 'Community', presetModules: ['welcomeEnabled', 'levelingEnabled', 'birthdayEnabled', 'reactionRolesEnabled', 'eventsEnabled'] },
+ { key: 'gaming', label: 'Gaming', presetModules: ['welcomeEnabled', 'levelingEnabled', 'musicEnabled', 'dynamicVoiceEnabled', 'eventsEnabled'] },
+ { key: 'support', label: 'Support', presetModules: ['ticketsEnabled', 'statuspageEnabled', 'automodEnabled'] },
+ { key: 'club', label: 'Club', presetModules: ['registerEnabled', 'ticketsEnabled', 'eventsEnabled', 'welcomeEnabled'] },
+ { key: 'team', label: 'Team', presetModules: ['ticketsEnabled', 'automodEnabled', 'welcomeEnabled'] }
+];
+
+const STEP_COUNT = 7;
+
+export class SetupWizardService {
+ private sessions = new Map();
+
+ constructor(private modules: BotModuleService, private tickets: TicketService) {}
+
+ public async start(interaction: ChatInputCommandInteraction) {
+ if (!interaction.guildId) return;
+ const modules = await this.modules.getModulesForGuild(interaction.guildId);
+ const state: WizardState = {
+ guildId: interaction.guildId,
+ step: 0,
+ availableModules: modules.map((m) => ({ key: m.key, name: m.name, description: m.description })),
+ selectedModules: new Set(modules.filter((m) => m.enabled).map((m) => m.key))
+ };
+ await interaction.reply({ ...this.render(state), ephemeral: true });
+ const msg = await interaction.fetchReply();
+ this.sessions.set(msg.id, state);
+ }
+
+ public async handleComponent(interaction: ComponentInteraction) {
+ const messageId = interaction.message.id;
+ const state = this.sessions.get(messageId);
+ if (!state) {
+ await interaction.reply({ content: 'Dieser Setup-Assistent ist abgelaufen. Starte `/setup` erneut.', ephemeral: true });
+ return;
+ }
+
+ const [, section, action] = interaction.customId.split(':');
+
+ if (section === 'cancel') {
+ this.sessions.delete(messageId);
+ await interaction.update({ embeds: [new EmbedBuilder().setTitle('Setup abgebrochen').setColor(0x6b7280)], components: [] });
+ return;
+ }
+
+ if (section === 'back') {
+ state.step = Math.max(0, state.step - 1);
+ await interaction.update(this.render(state));
+ return;
+ }
+
+ if (section === 'type' && interaction.isButton()) {
+ state.serverType = action;
+ const preset = SERVER_TYPES.find((t) => t.key === action);
+ preset?.presetModules.forEach((m) => state.selectedModules.add(m));
+ state.step = 1;
+ await interaction.update(this.render(state));
+ return;
+ }
+
+ if (section === 'modules') {
+ if (action === 'select' && interaction.isStringSelectMenu()) {
+ state.selectedModules = new Set(interaction.values as ModuleKey[]);
+ await interaction.update(this.render(state));
+ return;
+ }
+ if (action === 'next') {
+ state.step = 2;
+ await interaction.update(this.render(state));
+ return;
+ }
+ }
+
+ if (section === 'tickets') {
+ if (action === 'create' && interaction.guild) {
+ await this.tickets.ensureCategory(interaction.guild);
+ state.ticketCategoryCreated = true;
+ await interaction.update(this.render(state));
+ return;
+ }
+ if (action === 'next') {
+ state.step = 3;
+ await interaction.update(this.render(state));
+ return;
+ }
+ }
+
+ if (section === 'log') {
+ if (action === 'select' && interaction.isChannelSelectMenu()) {
+ state.logChannelId = interaction.values[0];
+ state.step = 4;
+ await interaction.update(this.render(state));
+ return;
+ }
+ if (action === 'skip') {
+ state.step = 4;
+ await interaction.update(this.render(state));
+ return;
+ }
+ }
+
+ if (section === 'welcome') {
+ if (action === 'select' && interaction.isChannelSelectMenu()) {
+ state.welcomeChannelId = interaction.values[0];
+ state.step = 5;
+ await interaction.update(this.render(state));
+ return;
+ }
+ if (action === 'skip') {
+ state.step = 5;
+ await interaction.update(this.render(state));
+ return;
+ }
+ }
+
+ if (section === 'automod' && interaction.isButton()) {
+ state.automodLevel = action as AutomodLevel;
+ state.step = 6;
+ await interaction.update(this.render(state));
+ return;
+ }
+
+ if (section === 'finish') {
+ await this.finish(state);
+ this.sessions.delete(messageId);
+ await interaction.update({
+ embeds: [new EmbedBuilder().setTitle('Setup abgeschlossen').setDescription('Papo wurde erfolgreich eingerichtet.').setColor(0xf97316)],
+ components: []
+ });
+ return;
+ }
+ }
+
+ private async finish(state: WizardState) {
+ for (const mod of state.availableModules) {
+ if (state.selectedModules.has(mod.key)) {
+ await this.modules.enableModule(state.guildId, mod.key);
+ } else {
+ await this.modules.disableModule(state.guildId, mod.key);
+ }
+ }
+
+ const patch: Record = { automodEnabled: true, automodConfig: this.automodPreset(state.automodLevel ?? 'normal') };
+ if (state.logChannelId) patch.logChannelId = state.logChannelId;
+ if (state.welcomeChannelId) patch.welcomeConfig = { enabled: true, channelId: state.welcomeChannelId };
+ await settingsStore.set(state.guildId, patch);
+ }
+
+ private automodPreset(level: AutomodLevel) {
+ if (level === 'light') {
+ return {
+ linkFilter: false,
+ inviteFilter: true,
+ spamFilter: true,
+ badWordFilter: false,
+ capsFilter: false,
+ mentionSpamFilter: false,
+ filters: {
+ spamFilter: { action: 'delete' },
+ inviteFilter: { action: 'delete' }
+ },
+ strikeConfig: { enabled: false, thresholds: [] }
+ };
+ }
+ if (level === 'strict') {
+ return {
+ linkFilter: true,
+ inviteFilter: true,
+ spamFilter: true,
+ badWordFilter: true,
+ capsFilter: true,
+ mentionSpamFilter: true,
+ filters: {
+ badWordFilter: { action: 'timeout', timeoutMinutes: 10 },
+ capsFilter: { action: 'timeout', timeoutMinutes: 10 },
+ spamFilter: { action: 'timeout', timeoutMinutes: 10 },
+ mentionSpamFilter: { action: 'timeout', timeoutMinutes: 10 }
+ },
+ strikeConfig: {
+ enabled: true,
+ decayHours: 24,
+ thresholds: [
+ { count: 3, action: 'timeout', timeoutMinutes: 10 },
+ { count: 5, action: 'kick' }
+ ]
+ }
+ };
+ }
+ return {
+ linkFilter: true,
+ inviteFilter: true,
+ spamFilter: true,
+ badWordFilter: true,
+ capsFilter: false,
+ mentionSpamFilter: true,
+ filters: {
+ spamFilter: { action: 'timeout', timeoutMinutes: 10 },
+ mentionSpamFilter: { action: 'timeout', timeoutMinutes: 10 }
+ },
+ strikeConfig: { enabled: false, thresholds: [] }
+ };
+ }
+
+ private render(state: WizardState): { embeds: EmbedBuilder[]; components: any[] } {
+ const embed = new EmbedBuilder().setColor(0xf97316).setFooter({ text: `Schritt ${state.step + 1} von ${STEP_COUNT}` });
+ const cancelRow = new ActionRowBuilder().addComponents(
+ new ButtonBuilder().setCustomId('setup:cancel').setLabel('Abbrechen').setStyle(ButtonStyle.Danger)
+ );
+ if (state.step > 0) {
+ cancelRow.addComponents(new ButtonBuilder().setCustomId('setup:back').setLabel('Zurück').setStyle(ButtonStyle.Secondary));
+ }
+
+ if (state.step === 0) {
+ embed.setTitle('Setup – Server-Art').setDescription('Wähle die Art deines Servers, um passende Module vorzuschlagen.');
+ const row = new ActionRowBuilder().addComponents(
+ ...SERVER_TYPES.map((t) =>
+ new ButtonBuilder()
+ .setCustomId(`setup:type:${t.key}`)
+ .setLabel(t.label)
+ .setStyle(state.serverType === t.key ? ButtonStyle.Primary : ButtonStyle.Secondary)
+ )
+ );
+ return { embeds: [embed], components: [row, cancelRow] };
+ }
+
+ if (state.step === 1) {
+ embed.setTitle('Setup – Module').setDescription('Wähle, welche Module aktiv sein sollen.');
+ const select = new StringSelectMenuBuilder()
+ .setCustomId('setup:modules:select')
+ .setPlaceholder('Module auswählen')
+ .setMinValues(0)
+ .setMaxValues(state.availableModules.length)
+ .addOptions(
+ state.availableModules.map((m) => ({
+ label: m.name,
+ value: m.key,
+ description: m.description.slice(0, 100),
+ default: state.selectedModules.has(m.key)
+ }))
+ );
+ const selectRow = new ActionRowBuilder().addComponents(select);
+ const nextRow = new ActionRowBuilder().addComponents(
+ new ButtonBuilder().setCustomId('setup:modules:next').setLabel('Weiter').setStyle(ButtonStyle.Primary)
+ );
+ return { embeds: [embed], components: [selectRow, nextRow, cancelRow] };
+ }
+
+ if (state.step === 2) {
+ embed
+ .setTitle('Setup – Ticket-Kategorie')
+ .setDescription(
+ state.ticketCategoryCreated
+ ? 'Die Kategorie "Tickets" wurde erstellt (bzw. existierte bereits).'
+ : 'Erstelle jetzt die Kategorie für neue Ticket-Kanäle, oder überspringe diesen Schritt.'
+ );
+ const row = new ActionRowBuilder().addComponents(
+ new ButtonBuilder().setCustomId('setup:tickets:create').setLabel('Jetzt erstellen').setStyle(ButtonStyle.Secondary),
+ new ButtonBuilder().setCustomId('setup:tickets:next').setLabel('Weiter').setStyle(ButtonStyle.Primary)
+ );
+ return { embeds: [embed], components: [row, cancelRow] };
+ }
+
+ if (state.step === 3) {
+ embed.setTitle('Setup – Log-Kanal').setDescription('Wähle den Kanal für Bot- und Automod-Logs.');
+ const select = new ChannelSelectMenuBuilder().setCustomId('setup:log:select').setChannelTypes(ChannelType.GuildText).setPlaceholder('Log-Kanal wählen');
+ const selectRow = new ActionRowBuilder().addComponents(select);
+ const skipRow = new ActionRowBuilder().addComponents(
+ new ButtonBuilder().setCustomId('setup:log:skip').setLabel('Überspringen').setStyle(ButtonStyle.Secondary)
+ );
+ return { embeds: [embed], components: [selectRow, skipRow, cancelRow] };
+ }
+
+ if (state.step === 4) {
+ embed.setTitle('Setup – Willkommens-Kanal').setDescription('Wähle den Kanal für Willkommensnachrichten.');
+ const select = new ChannelSelectMenuBuilder().setCustomId('setup:welcome:select').setChannelTypes(ChannelType.GuildText).setPlaceholder('Welcome-Kanal wählen');
+ const selectRow = new ActionRowBuilder().addComponents(select);
+ const skipRow = new ActionRowBuilder().addComponents(
+ new ButtonBuilder().setCustomId('setup:welcome:skip').setLabel('Überspringen').setStyle(ButtonStyle.Secondary)
+ );
+ return { embeds: [embed], components: [selectRow, skipRow, cancelRow] };
+ }
+
+ if (state.step === 5) {
+ embed.setTitle('Setup – Automod-Stärke').setDescription('Wie streng soll Automod eingreifen?');
+ const row = new ActionRowBuilder().addComponents(
+ new ButtonBuilder().setCustomId('setup:automod:light').setLabel('Leicht').setStyle(ButtonStyle.Secondary),
+ new ButtonBuilder().setCustomId('setup:automod:normal').setLabel('Normal').setStyle(ButtonStyle.Secondary),
+ new ButtonBuilder().setCustomId('setup:automod:strict').setLabel('Streng').setStyle(ButtonStyle.Secondary)
+ );
+ return { embeds: [embed], components: [row, cancelRow] };
+ }
+
+ const moduleNames = state.availableModules.filter((m) => state.selectedModules.has(m.key)).map((m) => m.name);
+ embed
+ .setTitle('Setup – Zusammenfassung')
+ .setDescription('Prüfe deine Auswahl und schließe die Einrichtung ab.')
+ .addFields(
+ { name: 'Server-Art', value: SERVER_TYPES.find((t) => t.key === state.serverType)?.label || 'Nicht gewählt' },
+ { name: 'Module', value: moduleNames.length ? moduleNames.join(', ') : 'Keine' },
+ { name: 'Log-Kanal', value: state.logChannelId ? `<#${state.logChannelId}>` : 'Nicht gesetzt' },
+ { name: 'Welcome-Kanal', value: state.welcomeChannelId ? `<#${state.welcomeChannelId}>` : 'Nicht gesetzt' },
+ { name: 'Automod-Stärke', value: state.automodLevel ?? 'normal' }
+ );
+ const row = new ActionRowBuilder().addComponents(
+ new ButtonBuilder().setCustomId('setup:finish').setLabel('Fertigstellen').setStyle(ButtonStyle.Success)
+ );
+ return { embeds: [embed], components: [row, cancelRow] };
+ }
+}
diff --git a/src/services/taskService.ts b/src/services/taskService.ts
new file mode 100644
index 0000000..63616a1
--- /dev/null
+++ b/src/services/taskService.ts
@@ -0,0 +1,38 @@
+import { prisma } from '../database';
+
+export type TaskStatus = 'open' | 'in_progress' | 'done';
+
+export class TaskService {
+ public async createTask(data: {
+ guildId: string;
+ title: string;
+ description?: string;
+ assigneeId?: string;
+ createdBy: string;
+ createdByTag: string;
+ }) {
+ return prisma.staffTask.create({ data });
+ }
+
+ public async listTasks(guildId: string, status?: string) {
+ return prisma.staffTask.findMany({
+ where: { guildId, ...(status ? { status } : {}) },
+ orderBy: { createdAt: 'desc' }
+ });
+ }
+
+ public async getTask(id: string) {
+ return prisma.staffTask.findUnique({ where: { id } });
+ }
+
+ public async updateStatus(id: string, status: TaskStatus) {
+ return prisma.staffTask.update({ where: { id }, data: { status } });
+ }
+
+ public async deleteTask(guildId: string, id: string) {
+ const task = await prisma.staffTask.findFirst({ where: { id, guildId } });
+ if (!task) return false;
+ await prisma.staffTask.delete({ where: { id } });
+ return true;
+ }
+}
diff --git a/src/services/ticketService.ts b/src/services/ticketService.ts
index 3407011..80f3654 100644
--- a/src/services/ticketService.ts
+++ b/src/services/ticketService.ts
@@ -394,7 +394,7 @@ export class TicketService {
};
}
- private async ensureCategory(guild: Guild): Promise {
+ public async ensureCategory(guild: Guild): Promise {
let category = guild.channels.cache.find(
(c) => c.type === ChannelType.GuildCategory && c.name.toLowerCase().includes(this.categoryName.toLowerCase())
);
diff --git a/src/web/routes/api.ts b/src/web/routes/api.ts
index 0073dfa..6290644 100644
--- a/src/web/routes/api.ts
+++ b/src/web/routes/api.ts
@@ -856,6 +856,44 @@ router.delete('/automod/strikes', requireAuth, async (req, res) => {
res.json({ ok: true });
});
+router.get('/tasks', requireAuth, async (req, res) => {
+ const guildId = typeof req.query.guildId === 'string' ? req.query.guildId : undefined;
+ const status = typeof req.query.status === 'string' ? req.query.status : undefined;
+ if (!guildId) return res.status(400).json({ error: 'guildId required' });
+ const tasks = await context.tasks.listTasks(guildId, status);
+ res.json({ tasks });
+});
+
+router.post('/tasks', requireAuth, async (req, res) => {
+ const guildId = typeof req.body.guildId === 'string' ? req.body.guildId : undefined;
+ const title = typeof req.body.title === 'string' ? req.body.title.trim() : '';
+ if (!guildId || !title) return res.status(400).json({ error: 'guildId and title required' });
+ const author = req.session.user;
+ const task = await context.tasks.createTask({
+ guildId,
+ title,
+ description: typeof req.body.description === 'string' ? req.body.description : undefined,
+ createdBy: author.id,
+ createdByTag: author?.username || author?.global_name || author?.id || 'Unbekannt'
+ });
+ res.json({ task });
+});
+
+router.post('/tasks/:id/status', requireAuth, async (req, res) => {
+ const status = typeof req.body.status === 'string' ? req.body.status : undefined;
+ if (!status || !['open', 'in_progress', 'done'].includes(status)) return res.status(400).json({ error: 'invalid status' });
+ const task = await context.tasks.updateStatus(req.params.id, status as any);
+ res.json({ task });
+});
+
+router.delete('/tasks/:id', requireAuth, async (req, res) => {
+ const guildId = typeof req.body.guildId === 'string' ? req.body.guildId : undefined;
+ if (!guildId) return res.status(400).json({ error: 'guildId required' });
+ const ok = await context.tasks.deleteTask(guildId, req.params.id);
+ if (!ok) return res.status(404).json({ error: 'not found' });
+ res.json({ ok: true });
+});
+
router.post('/settings', requireAuth, async (req, res) => {
const current = req.body.guildId ? settingsStore.get(req.body.guildId) ?? {} : {};
const {