first commit

This commit is contained in:
DerJesen
2025-11-29 12:26:58 +01:00
parent 2fae31f20f
commit fe5bbc1410
142 changed files with 19585 additions and 1 deletions

View File

@@ -0,0 +1,25 @@
-- CreateTable
CREATE TABLE "Event" (
"id" TEXT NOT NULL,
"name" TEXT NOT NULL,
"date" TEXT NOT NULL,
"location" TEXT NOT NULL,
CONSTRAINT "Event_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Ticket" (
"id" TEXT NOT NULL,
"eventId" TEXT NOT NULL,
"attendeeName" TEXT NOT NULL,
"attendeeEmail" TEXT NOT NULL,
"ticketType" TEXT NOT NULL,
"status" TEXT NOT NULL DEFAULT 'valid',
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "Ticket_pkey" PRIMARY KEY ("id")
);
-- AddForeignKey
ALTER TABLE "Ticket" ADD CONSTRAINT "Ticket_eventId_fkey" FOREIGN KEY ("eventId") REFERENCES "Event"("id") ON DELETE RESTRICT ON UPDATE CASCADE;

View File

@@ -0,0 +1,3 @@
# Please do not edit this file manually
# It should be added in your version-control system (e.g., Git)
provider = "postgresql"

30
prisma/schema.prisma Normal file
View File

@@ -0,0 +1,30 @@
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model Event {
id String @id @default(uuid())
name String
date String
location String
tickets Ticket[]
}
model Ticket {
id String @id @default(uuid())
event Event @relation(fields: [eventId], references: [id])
eventId String
attendeeName String
attendeeEmail String
ticketType String // Enforced in application logic: "Klassenbester", "1er Schüler", "Partyborner"
status String @default("valid") // "valid", "used"
createdAt DateTime @default(now())
}

27
prisma/seed.ts Normal file
View File

@@ -0,0 +1,27 @@
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
async function main() {
const event = await prisma.event.upsert({
where: { id: 'default-event' },
update: {},
create: {
id: 'default-event',
name: 'Default Event',
date: '2025-01-01',
location: 'Main Hall',
},
});
console.log({ event });
}
main()
.then(async () => {
await prisma.$disconnect();
})
.catch(async (e) => {
console.error(e);
await prisma.$disconnect();
process.exit(1);
});