Skip to content

Commit e15e136

Browse files
author
xyzjesper
committed
Added part one of the new ticket system v2. Moved to new Database ORM
1 parent 214f26f commit e15e136

File tree

117 files changed

+7778
-6031
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

117 files changed

+7778
-6031
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ config.yml
77
/.VSCodeCounter/
88
/src/generated/prisma
99
/generated/prisma
10-
.sentryclirc
10+
.sentryclirc
11+
/docs/

bun.lock

Lines changed: 35 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"customerdev": "bun run build && node ./.build/src/main/startup.js",
99
"disbotdev": "bun run build && node ./.build/src/main/startup.js",
1010
"build": "tsc && bun run setup:prisma",
11+
"typedoc": "bun x typedoc --entryPointStrategy Expand src",
1112
"setup:prisma": "copyfiles -u 1 \"src/prisma/**/*\" .build/src",
1213
"sentry:sourcemaps": "sentry-cli sourcemaps inject --org nexocrew --project disbot-client ./.build && sentry-cli sourcemaps upload --org nexocrew --project disbot-client ./.build"
1314
},
@@ -65,6 +66,7 @@
6566
"topgg-autoposter": "^2.0.2",
6667
"ts-node": "^10.9.2",
6768
"tsc-alias": "^1.8.16",
69+
"typedoc": "^0.28.9",
6870
"undici": "^7.11.0",
6971
"uuid": "^11.1.0",
7072
"winston": "^3.17.0",

prisma/schema.prisma

Lines changed: 74 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -357,34 +357,37 @@ model Tags {
357357
}
358358

359359
model TicketSetups {
360-
id String @id @default(auto()) @map("_id") @db.ObjectId
360+
id String @id @default(auto()) @map("_id") @db.ObjectId
361361
CategoryId String?
362-
Handlers String[]
363-
HandlerWithShadowPing String[]
364-
CustomId String @unique
365-
TicketChannelName String?
366362
ChannelType Int?
367-
MessageTempleateId String?
368-
TicketBlacklistRoles String[]
369-
TranscriptChannelId String?
363+
TicketPermissions TicketPermissions[]
364+
CustomId String @unique
365+
TicketChannelName String?
366+
EnableTicketsOnlyFromTime String?
367+
MessageTemplateId String?
368+
TicketBlacklistRoles String[] // DONE!
369+
TranscriptChannelId String? // TRANSFER
370370
HasModal Boolean?
371-
UserDMWhenCloseMessageTemplateId String?
372-
ModalOptions TicketModalData[]
373-
TicketLimit Int?
374-
WithTicketFeedback Boolean?
375-
TicketFeedbackChannelId String?
376371
ModalTitle String?
377-
TicketCreationCooldownPerUser Int?
378-
AutoCloseAfterInactivity Int?
379-
AutoAssignHandler String?
380-
AutoReplyMessageTemplateId String?
381-
RequiredRoles String[]
382-
OpenTicketWithCommand Boolean?
383-
SlashCommandId String?
384-
TextCommandName String?
385-
SendTranscriptToUser Boolean?
372+
ModalOptions TicketModalData[]
373+
OnlyClaimMode Boolean? // DONE
374+
TicketLimit Int? //DONE
375+
UserDMWhenCloseMessageTemplateId String? // DONE
376+
WithTicketFeedback Boolean? // DONE
377+
TicketFeedbackChannelId String? // DONE
378+
TicketCreationCooldownPerUser Int? // DONE
379+
AutoCloseAfterInactivity Int? // DONE
380+
AutoCloseAfterTime Int? // DONE
381+
AutoAssignHandler String? // DONE
382+
AutoReplyMessageTemplateId String? // DONE
383+
AutoCloseAction String[] // DONE // LOOK (THREAD), ARCHIVE (BOTH), MOVE_TO_OLD_CHANNEL (Channel), DELETE (BOTH), WITH_CONFIRM (BOTH), TRANSCRIPT (BOTH), REASON (BOTH), REMOVE_USER_FROM_TICKET (BOTH) - !!! SUGGEST MORE !!!
384+
OldTicketCategoryId String? // DONE
385+
RequiredRoles String[] // DONE
386+
SlashCommandId String? // DONE
387+
TextCommandName String? // DONE
388+
SendTranscriptToUser Boolean? // DONE
386389
GuildId String
387-
Guilds Guilds @relation(fields: [GuildId], references: [GuildId])
390+
Guilds Guilds @relation(fields: [GuildId], references: [GuildId])
388391
Tickets Tickets[]
389392
390393
// TODO: API Support
@@ -395,47 +398,68 @@ model TicketSetups {
395398

396399
model TicketModalData {
397400
id String @id @default(auto()) @map("_id") @db.ObjectId
401+
UUID String @unique
398402
Name String
399-
Placeholder String
403+
Placeholder String?
400404
Type Int
405+
MinLength Int?
406+
MaxLength Int?
407+
Required Boolean
401408
TicketSetupId String
402409
TicketSetup TicketSetups @relation(fields: [TicketSetupId], references: [CustomId])
403410
}
404411

405-
model TicketHandlers {
406-
id String @id @default(auto()) @map("_id") @db.ObjectId
407-
DiscordRoleId String
408-
TicketPermission String?
409-
AddedDiscordPermission String[]
410-
RemovedDiscordPermission String[]
412+
model TicketPermissions {
413+
id String @id @default(auto()) @map("_id") @db.ObjectId
414+
UUID String @unique
415+
DiscordUserId String?
416+
DiscordRoleId String?
417+
HasShadowPing Boolean?
418+
IsHandler Boolean @default(false)
419+
TicketPermissions String[]
420+
AllowedDiscordPermissions BigInt?
421+
DeniedDiscordPermissions BigInt?
422+
TicketSetupId String
423+
TicketSetup TicketSetups @relation(fields: [TicketSetupId], references: [CustomId])
411424
}
412425

413426
model Tickets {
414-
id String @id @default(auto()) @map("_id") @db.ObjectId
415-
TicketId String @unique
416-
GuildId String
417-
ChannelId String?
418-
ThreadId String?
419-
IsClaimed Boolean?
420-
IsArchived Boolean?
421-
ArchiveMessageId String?
422-
UserWhoHasClaimedId String?
423-
IsLooked Boolean?
424-
TicketOwnerId String
425-
AddedMemberIds String[]
426-
Handlers String[]
427-
TranscriptChannelId String
428-
TranscriptHTML String?
429-
TicketNotes String[]
430-
TicketSetupId String
431-
TicketSetup TicketSetups @relation(fields: [TicketSetupId], references: [CustomId])
432-
TicketFeedback TicketFeedback?
427+
id String @id @default(auto()) @map("_id") @db.ObjectId
428+
TicketId String @unique
429+
CreatedAt DateTime
430+
ClosedAt DateTime?
431+
GuildId String
432+
ChannelType Int
433+
ChannelId String?
434+
ThreadId String?
435+
IsClaimed Boolean?
436+
IsArchived Boolean?
437+
ArchiveMessageId String?
438+
UserWhoHasClaimedId String?
439+
IsLooked Boolean?
440+
TicketOwnerId String
441+
AddedMemberIds String[]
442+
TranscriptChannelId String?
443+
TranscriptHTML String?
444+
TicketNotes String[]
445+
SendTranscriptToUser Boolean?
446+
OldTicketCategoryId String?
447+
AutoCloseAction String[]
448+
AutoReplyMessageTemplateId String?
449+
AutoAssignHandler String?
450+
TicketFeedbackChannelId String?
451+
WithTicketFeedback Boolean?
452+
UserDMWhenCloseMessageTemplateId String?
453+
OnlyClaimMode Boolean?
454+
TicketSetupId String
455+
TicketSetup TicketSetups @relation(fields: [TicketSetupId], references: [CustomId])
456+
TicketFeedback TicketFeedback?
433457
}
434458

435459
model TicketFeedback {
436460
id String @id @default(auto()) @map("_id") @db.ObjectId
437461
TicketId String @unique
438-
Rating Int // 1–5 oder 1–10 Skala
462+
Rating Int // 1–5
439463
Comment String?
440464
SubmittedAt DateTime @default(now())
441465
Ticket Tickets @relation(fields: [TicketId], references: [TicketId])

src/api/services/app.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,6 @@ export async function app(client: ExtendedClient) {
352352
});
353353
if (data && data.CustomId === req.params.uuid) {
354354
const guild = client.guilds.cache.get(data.GuildId as string);
355-
const role = guild?.roles.cache.get(data.Handlers[0] as string);
356355

357356
const transcripts = guild?.channels.cache.get(
358357
data.TranscriptChannelId as string

0 commit comments

Comments
 (0)