continue Event page

This commit is contained in:
PxlLoewe
2025-02-17 10:39:29 +01:00
parent 8928455c3a
commit 30af30bd1d
13 changed files with 242 additions and 227 deletions

View File

@@ -0,0 +1,46 @@
-- CreateEnum
CREATE TYPE "PARTICIPANT_STATUS" AS ENUM ('WAITING_FOR_ENTRY_TEST', 'ENTRY_TEST_FAILED', 'READY_FOR_EVENT', 'PARTICIPATED', 'WAITING_FOR_EXIT_TEST', 'EXIT_TEST_FAILED', 'WAITING_FOR_PERMISISONS', 'FINISHED', 'WAVED');
-- CreateTable
CREATE TABLE "Participant" (
"id" SERIAL NOT NULL,
"user_id" TEXT NOT NULL,
"status" "PARTICIPANT_STATUS" NOT NULL,
"selectedForParticipatioon" BOOLEAN NOT NULL DEFAULT false,
"statusLog" JSONB[],
"eventId" INTEGER,
CONSTRAINT "Participant_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Event" (
"id" SERIAL NOT NULL,
"name" TEXT NOT NULL,
"description" TEXT,
"discordRoleId" TEXT,
"hasPresenceEvents" BOOLEAN NOT NULL DEFAULT false,
"maxParticipants" INTEGER NOT NULL,
"starterMoodleCourseId" INTEGER,
"finisherMoodleCourseId" INTEGER,
"finished" BOOLEAN NOT NULL DEFAULT false,
"finishedBadges" TEXT[],
"requiredBadges" TEXT[],
"finishedPermissions" TEXT[],
"hidden" BOOLEAN NOT NULL DEFAULT true,
CONSTRAINT "Event_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "File" (
"id" SERIAL NOT NULL,
CONSTRAINT "File_pkey" PRIMARY KEY ("id")
);
-- AddForeignKey
ALTER TABLE "Participant" ADD CONSTRAINT "Participant_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Participant" ADD CONSTRAINT "Participant_eventId_fkey" FOREIGN KEY ("eventId") REFERENCES "Event"("id") ON DELETE SET NULL ON UPDATE CASCADE;

View File

@@ -0,0 +1,14 @@
/*
Warnings:
- You are about to drop the column `finished` on the `Event` table. All the data in the column will be lost.
- Made the column `description` on table `Event` required. This step will fail if there are existing NULL values in that column.
*/
-- AlterTable
ALTER TABLE "Event" DROP COLUMN "finished",
ALTER COLUMN "description" SET NOT NULL,
ALTER COLUMN "maxParticipants" DROP NOT NULL,
ALTER COLUMN "finishedBadges" SET DEFAULT ARRAY[]::TEXT[],
ALTER COLUMN "requiredBadges" SET DEFAULT ARRAY[]::TEXT[],
ALTER COLUMN "finishedPermissions" SET DEFAULT ARRAY[]::TEXT[];

View File

@@ -0,0 +1,47 @@
enum PARTICIPANT_STATUS {
WAITING_FOR_ENTRY_TEST
ENTRY_TEST_FAILED
READY_FOR_EVENT
PARTICIPATED
WAITING_FOR_EXIT_TEST
EXIT_TEST_FAILED
WAITING_FOR_PERMISISONS
FINISHED
WAVED
}
model Participant {
id Int @id @default(autoincrement())
userId String @map(name: "user_id")
status PARTICIPANT_STATUS
selectedForParticipatioon Boolean @default(false)
statusLog Json[]
eventId Int
// relations:
user User @relation(fields: [userId], references: [id])
Event Event? @relation(fields: [eventId], references: [id])
}
model Event {
id Int @id @default(autoincrement())
name String
description String
discordRoleId String?
hasPresenceEvents Boolean @default(false)
maxParticipants Int? @default(0)
starterMoodleCourseId Int?
finisherMoodleCourseId Int?
finishedBadges String[] @default([])
requiredBadges String[] @default([])
finishedPermissions String[] @default([])
hidden Boolean @default(true)
// relations:
participants Participant[]
}
model File {
id Int @id @default(autoincrement())
// Weitere Felder für das File-Modell
}

View File

@@ -14,6 +14,7 @@ model User {
// relations:
oauthTokens OAuthToken[]
discordAccounts DiscordAccount[]
participants Participant[]
@@map(name: "users")
}