Implement event feedback functionality: Add EventFeedback model to Prisma schema, enabling users to submit ratings and comments for events. Update EventsPageSection and AdminPanel components to support feedback management, including UI for submitting feedback and viewing existing feedbacks. Refactor registration logic to retrieve all user registrations for improved feedback handling.

This commit is contained in:
Julien Froidefond
2025-12-10 06:11:32 +01:00
parent 44be5d2e98
commit 3bd43e777e
19 changed files with 2818 additions and 33 deletions

View File

@@ -37,6 +37,11 @@ export type Event = Prisma.EventModel
*
*/
export type EventRegistration = Prisma.EventRegistrationModel
/**
* Model EventFeedback
*
*/
export type EventFeedback = Prisma.EventFeedbackModel
/**
* Model SitePreferences
*

View File

@@ -59,6 +59,11 @@ export type Event = Prisma.EventModel
*
*/
export type EventRegistration = Prisma.EventRegistrationModel
/**
* Model EventFeedback
*
*/
export type EventFeedback = Prisma.EventFeedbackModel
/**
* Model SitePreferences
*

View File

@@ -20,7 +20,7 @@ const config: runtime.GetPrismaClientConfig = {
"clientVersion": "7.1.0",
"engineVersion": "ab635e6b9d606fa5c8fb8b1a7f909c3c3c1c98ba",
"activeProvider": "sqlite",
"inlineSchema": "// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"./generated/prisma\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n}\n\nenum Role {\n USER\n ADMIN\n}\n\nenum EventType {\n ATELIER\n KATA\n PRESENTATION\n LEARNING_HOUR\n}\n\nenum CharacterClass {\n WARRIOR\n MAGE\n ROGUE\n RANGER\n PALADIN\n ENGINEER\n MERCHANT\n SCHOLAR\n BERSERKER\n NECROMANCER\n}\n\nmodel User {\n id String @id @default(cuid())\n email String @unique\n password String\n username String @unique\n role Role @default(USER)\n score Int @default(0)\n level Int @default(1)\n hp Int @default(1000)\n maxHp Int @default(1000)\n xp Int @default(0)\n maxXp Int @default(5000)\n avatar String?\n bio String?\n characterClass CharacterClass?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n preferences UserPreferences?\n eventRegistrations EventRegistration[]\n\n @@index([score])\n @@index([email])\n}\n\nmodel UserPreferences {\n id String @id @default(cuid())\n userId String @unique\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n // Background images for each page\n homeBackground String?\n eventsBackground String?\n leaderboardBackground String?\n\n // Other UI preferences can be added here\n theme String? @default(\"default\")\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel Event {\n id String @id @default(cuid())\n date DateTime\n name String\n description String\n type EventType\n room String?\n time String?\n maxPlaces Int?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n registrations EventRegistration[]\n\n @@index([date])\n}\n\nmodel EventRegistration {\n id String @id @default(cuid())\n userId String\n eventId String\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n event Event @relation(fields: [eventId], references: [id], onDelete: Cascade)\n createdAt DateTime @default(now())\n\n @@unique([userId, eventId])\n @@index([userId])\n @@index([eventId])\n}\n\nmodel SitePreferences {\n id String @id @default(\"global\")\n homeBackground String?\n eventsBackground String?\n leaderboardBackground String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n",
"inlineSchema": "// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"./generated/prisma\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n}\n\nenum Role {\n USER\n ADMIN\n}\n\nenum EventType {\n ATELIER\n KATA\n PRESENTATION\n LEARNING_HOUR\n}\n\nenum CharacterClass {\n WARRIOR\n MAGE\n ROGUE\n RANGER\n PALADIN\n ENGINEER\n MERCHANT\n SCHOLAR\n BERSERKER\n NECROMANCER\n}\n\nmodel User {\n id String @id @default(cuid())\n email String @unique\n password String\n username String @unique\n role Role @default(USER)\n score Int @default(0)\n level Int @default(1)\n hp Int @default(1000)\n maxHp Int @default(1000)\n xp Int @default(0)\n maxXp Int @default(5000)\n avatar String?\n bio String?\n characterClass CharacterClass?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n preferences UserPreferences?\n eventRegistrations EventRegistration[]\n eventFeedbacks EventFeedback[]\n\n @@index([score])\n @@index([email])\n}\n\nmodel UserPreferences {\n id String @id @default(cuid())\n userId String @unique\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n // Background images for each page\n homeBackground String?\n eventsBackground String?\n leaderboardBackground String?\n\n // Other UI preferences can be added here\n theme String? @default(\"default\")\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel Event {\n id String @id @default(cuid())\n date DateTime\n name String\n description String\n type EventType\n room String?\n time String?\n maxPlaces Int?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n registrations EventRegistration[]\n feedbacks EventFeedback[]\n\n @@index([date])\n}\n\nmodel EventRegistration {\n id String @id @default(cuid())\n userId String\n eventId String\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n event Event @relation(fields: [eventId], references: [id], onDelete: Cascade)\n createdAt DateTime @default(now())\n\n @@unique([userId, eventId])\n @@index([userId])\n @@index([eventId])\n}\n\nmodel EventFeedback {\n id String @id @default(cuid())\n userId String\n eventId String\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n event Event @relation(fields: [eventId], references: [id], onDelete: Cascade)\n rating Int // Note de 1 à 5\n comment String? // Commentaire optionnel\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([userId, eventId])\n @@index([userId])\n @@index([eventId])\n}\n\nmodel SitePreferences {\n id String @id @default(\"global\")\n homeBackground String?\n eventsBackground String?\n leaderboardBackground String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n",
"runtimeDataModel": {
"models": {},
"enums": {},
@@ -28,7 +28,7 @@ const config: runtime.GetPrismaClientConfig = {
}
}
config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"username\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"Role\"},{\"name\":\"score\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"level\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"hp\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"maxHp\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"xp\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"maxXp\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"avatar\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"bio\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"characterClass\",\"kind\":\"enum\",\"type\":\"CharacterClass\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"preferences\",\"kind\":\"object\",\"type\":\"UserPreferences\",\"relationName\":\"UserToUserPreferences\"},{\"name\":\"eventRegistrations\",\"kind\":\"object\",\"type\":\"EventRegistration\",\"relationName\":\"EventRegistrationToUser\"}],\"dbName\":null},\"UserPreferences\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserToUserPreferences\"},{\"name\":\"homeBackground\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"eventsBackground\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"leaderboardBackground\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"theme\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"Event\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"EventType\"},{\"name\":\"room\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"time\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"maxPlaces\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"registrations\",\"kind\":\"object\",\"type\":\"EventRegistration\",\"relationName\":\"EventToEventRegistration\"}],\"dbName\":null},\"EventRegistration\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"eventId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"EventRegistrationToUser\"},{\"name\":\"event\",\"kind\":\"object\",\"type\":\"Event\",\"relationName\":\"EventToEventRegistration\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"SitePreferences\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"homeBackground\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"eventsBackground\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"leaderboardBackground\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}")
config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"username\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"Role\"},{\"name\":\"score\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"level\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"hp\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"maxHp\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"xp\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"maxXp\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"avatar\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"bio\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"characterClass\",\"kind\":\"enum\",\"type\":\"CharacterClass\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"preferences\",\"kind\":\"object\",\"type\":\"UserPreferences\",\"relationName\":\"UserToUserPreferences\"},{\"name\":\"eventRegistrations\",\"kind\":\"object\",\"type\":\"EventRegistration\",\"relationName\":\"EventRegistrationToUser\"},{\"name\":\"eventFeedbacks\",\"kind\":\"object\",\"type\":\"EventFeedback\",\"relationName\":\"EventFeedbackToUser\"}],\"dbName\":null},\"UserPreferences\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserToUserPreferences\"},{\"name\":\"homeBackground\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"eventsBackground\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"leaderboardBackground\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"theme\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"Event\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"EventType\"},{\"name\":\"room\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"time\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"maxPlaces\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"registrations\",\"kind\":\"object\",\"type\":\"EventRegistration\",\"relationName\":\"EventToEventRegistration\"},{\"name\":\"feedbacks\",\"kind\":\"object\",\"type\":\"EventFeedback\",\"relationName\":\"EventToEventFeedback\"}],\"dbName\":null},\"EventRegistration\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"eventId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"EventRegistrationToUser\"},{\"name\":\"event\",\"kind\":\"object\",\"type\":\"Event\",\"relationName\":\"EventToEventRegistration\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"EventFeedback\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"eventId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"EventFeedbackToUser\"},{\"name\":\"event\",\"kind\":\"object\",\"type\":\"Event\",\"relationName\":\"EventToEventFeedback\"},{\"name\":\"rating\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"SitePreferences\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"homeBackground\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"eventsBackground\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"leaderboardBackground\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}")
async function decodeBase64AsWasm(wasmBase64: string): Promise<WebAssembly.Module> {
const { Buffer } = await import('node:buffer')
@@ -214,6 +214,16 @@ export interface PrismaClient<
*/
get eventRegistration(): Prisma.EventRegistrationDelegate<ExtArgs, { omit: OmitOpts }>;
/**
* `prisma.eventFeedback`: Exposes CRUD operations for the **EventFeedback** model.
* Example usage:
* ```ts
* // Fetch zero or more EventFeedbacks
* const eventFeedbacks = await prisma.eventFeedback.findMany()
* ```
*/
get eventFeedback(): Prisma.EventFeedbackDelegate<ExtArgs, { omit: OmitOpts }>;
/**
* `prisma.sitePreferences`: Exposes CRUD operations for the **SitePreferences** model.
* Example usage:

View File

@@ -388,6 +388,7 @@ export const ModelName = {
UserPreferences: 'UserPreferences',
Event: 'Event',
EventRegistration: 'EventRegistration',
EventFeedback: 'EventFeedback',
SitePreferences: 'SitePreferences'
} as const
@@ -404,7 +405,7 @@ export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runt
omit: GlobalOmitOptions
}
meta: {
modelProps: "user" | "userPreferences" | "event" | "eventRegistration" | "sitePreferences"
modelProps: "user" | "userPreferences" | "event" | "eventRegistration" | "eventFeedback" | "sitePreferences"
txIsolationLevel: TransactionIsolationLevel
}
model: {
@@ -704,6 +705,80 @@ export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runt
}
}
}
EventFeedback: {
payload: Prisma.$EventFeedbackPayload<ExtArgs>
fields: Prisma.EventFeedbackFieldRefs
operations: {
findUnique: {
args: Prisma.EventFeedbackFindUniqueArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventFeedbackPayload> | null
}
findUniqueOrThrow: {
args: Prisma.EventFeedbackFindUniqueOrThrowArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventFeedbackPayload>
}
findFirst: {
args: Prisma.EventFeedbackFindFirstArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventFeedbackPayload> | null
}
findFirstOrThrow: {
args: Prisma.EventFeedbackFindFirstOrThrowArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventFeedbackPayload>
}
findMany: {
args: Prisma.EventFeedbackFindManyArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventFeedbackPayload>[]
}
create: {
args: Prisma.EventFeedbackCreateArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventFeedbackPayload>
}
createMany: {
args: Prisma.EventFeedbackCreateManyArgs<ExtArgs>
result: BatchPayload
}
createManyAndReturn: {
args: Prisma.EventFeedbackCreateManyAndReturnArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventFeedbackPayload>[]
}
delete: {
args: Prisma.EventFeedbackDeleteArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventFeedbackPayload>
}
update: {
args: Prisma.EventFeedbackUpdateArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventFeedbackPayload>
}
deleteMany: {
args: Prisma.EventFeedbackDeleteManyArgs<ExtArgs>
result: BatchPayload
}
updateMany: {
args: Prisma.EventFeedbackUpdateManyArgs<ExtArgs>
result: BatchPayload
}
updateManyAndReturn: {
args: Prisma.EventFeedbackUpdateManyAndReturnArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventFeedbackPayload>[]
}
upsert: {
args: Prisma.EventFeedbackUpsertArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventFeedbackPayload>
}
aggregate: {
args: Prisma.EventFeedbackAggregateArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.AggregateEventFeedback>
}
groupBy: {
args: Prisma.EventFeedbackGroupByArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.EventFeedbackGroupByOutputType>[]
}
count: {
args: Prisma.EventFeedbackCountArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.EventFeedbackCountAggregateOutputType> | number
}
}
}
SitePreferences: {
payload: Prisma.$SitePreferencesPayload<ExtArgs>
fields: Prisma.SitePreferencesFieldRefs
@@ -876,6 +951,19 @@ export const EventRegistrationScalarFieldEnum = {
export type EventRegistrationScalarFieldEnum = (typeof EventRegistrationScalarFieldEnum)[keyof typeof EventRegistrationScalarFieldEnum]
export const EventFeedbackScalarFieldEnum = {
id: 'id',
userId: 'userId',
eventId: 'eventId',
rating: 'rating',
comment: 'comment',
createdAt: 'createdAt',
updatedAt: 'updatedAt'
} as const
export type EventFeedbackScalarFieldEnum = (typeof EventFeedbackScalarFieldEnum)[keyof typeof EventFeedbackScalarFieldEnum]
export const SitePreferencesScalarFieldEnum = {
id: 'id',
homeBackground: 'homeBackground',
@@ -1057,6 +1145,7 @@ export type GlobalOmitConfig = {
userPreferences?: Prisma.UserPreferencesOmit
event?: Prisma.EventOmit
eventRegistration?: Prisma.EventRegistrationOmit
eventFeedback?: Prisma.EventFeedbackOmit
sitePreferences?: Prisma.SitePreferencesOmit
}

View File

@@ -55,6 +55,7 @@ export const ModelName = {
UserPreferences: 'UserPreferences',
Event: 'Event',
EventRegistration: 'EventRegistration',
EventFeedback: 'EventFeedback',
SitePreferences: 'SitePreferences'
} as const
@@ -133,6 +134,19 @@ export const EventRegistrationScalarFieldEnum = {
export type EventRegistrationScalarFieldEnum = (typeof EventRegistrationScalarFieldEnum)[keyof typeof EventRegistrationScalarFieldEnum]
export const EventFeedbackScalarFieldEnum = {
id: 'id',
userId: 'userId',
eventId: 'eventId',
rating: 'rating',
comment: 'comment',
createdAt: 'createdAt',
updatedAt: 'updatedAt'
} as const
export type EventFeedbackScalarFieldEnum = (typeof EventFeedbackScalarFieldEnum)[keyof typeof EventFeedbackScalarFieldEnum]
export const SitePreferencesScalarFieldEnum = {
id: 'id',
homeBackground: 'homeBackground',

View File

@@ -12,5 +12,6 @@ export type * from './models/User'
export type * from './models/UserPreferences'
export type * from './models/Event'
export type * from './models/EventRegistration'
export type * from './models/EventFeedback'
export type * from './models/SitePreferences'
export type * from './commonInputTypes'

View File

@@ -257,6 +257,7 @@ export type EventWhereInput = {
createdAt?: Prisma.DateTimeFilter<"Event"> | Date | string
updatedAt?: Prisma.DateTimeFilter<"Event"> | Date | string
registrations?: Prisma.EventRegistrationListRelationFilter
feedbacks?: Prisma.EventFeedbackListRelationFilter
}
export type EventOrderByWithRelationInput = {
@@ -271,6 +272,7 @@ export type EventOrderByWithRelationInput = {
createdAt?: Prisma.SortOrder
updatedAt?: Prisma.SortOrder
registrations?: Prisma.EventRegistrationOrderByRelationAggregateInput
feedbacks?: Prisma.EventFeedbackOrderByRelationAggregateInput
}
export type EventWhereUniqueInput = Prisma.AtLeast<{
@@ -288,6 +290,7 @@ export type EventWhereUniqueInput = Prisma.AtLeast<{
createdAt?: Prisma.DateTimeFilter<"Event"> | Date | string
updatedAt?: Prisma.DateTimeFilter<"Event"> | Date | string
registrations?: Prisma.EventRegistrationListRelationFilter
feedbacks?: Prisma.EventFeedbackListRelationFilter
}, "id">
export type EventOrderByWithAggregationInput = {
@@ -336,6 +339,7 @@ export type EventCreateInput = {
createdAt?: Date | string
updatedAt?: Date | string
registrations?: Prisma.EventRegistrationCreateNestedManyWithoutEventInput
feedbacks?: Prisma.EventFeedbackCreateNestedManyWithoutEventInput
}
export type EventUncheckedCreateInput = {
@@ -350,6 +354,7 @@ export type EventUncheckedCreateInput = {
createdAt?: Date | string
updatedAt?: Date | string
registrations?: Prisma.EventRegistrationUncheckedCreateNestedManyWithoutEventInput
feedbacks?: Prisma.EventFeedbackUncheckedCreateNestedManyWithoutEventInput
}
export type EventUpdateInput = {
@@ -364,6 +369,7 @@ export type EventUpdateInput = {
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
registrations?: Prisma.EventRegistrationUpdateManyWithoutEventNestedInput
feedbacks?: Prisma.EventFeedbackUpdateManyWithoutEventNestedInput
}
export type EventUncheckedUpdateInput = {
@@ -378,6 +384,7 @@ export type EventUncheckedUpdateInput = {
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
registrations?: Prisma.EventRegistrationUncheckedUpdateManyWithoutEventNestedInput
feedbacks?: Prisma.EventFeedbackUncheckedUpdateManyWithoutEventNestedInput
}
export type EventCreateManyInput = {
@@ -497,6 +504,20 @@ export type EventUpdateOneRequiredWithoutRegistrationsNestedInput = {
update?: Prisma.XOR<Prisma.XOR<Prisma.EventUpdateToOneWithWhereWithoutRegistrationsInput, Prisma.EventUpdateWithoutRegistrationsInput>, Prisma.EventUncheckedUpdateWithoutRegistrationsInput>
}
export type EventCreateNestedOneWithoutFeedbacksInput = {
create?: Prisma.XOR<Prisma.EventCreateWithoutFeedbacksInput, Prisma.EventUncheckedCreateWithoutFeedbacksInput>
connectOrCreate?: Prisma.EventCreateOrConnectWithoutFeedbacksInput
connect?: Prisma.EventWhereUniqueInput
}
export type EventUpdateOneRequiredWithoutFeedbacksNestedInput = {
create?: Prisma.XOR<Prisma.EventCreateWithoutFeedbacksInput, Prisma.EventUncheckedCreateWithoutFeedbacksInput>
connectOrCreate?: Prisma.EventCreateOrConnectWithoutFeedbacksInput
upsert?: Prisma.EventUpsertWithoutFeedbacksInput
connect?: Prisma.EventWhereUniqueInput
update?: Prisma.XOR<Prisma.XOR<Prisma.EventUpdateToOneWithWhereWithoutFeedbacksInput, Prisma.EventUpdateWithoutFeedbacksInput>, Prisma.EventUncheckedUpdateWithoutFeedbacksInput>
}
export type EventCreateWithoutRegistrationsInput = {
id?: string
date: Date | string
@@ -508,6 +529,7 @@ export type EventCreateWithoutRegistrationsInput = {
maxPlaces?: number | null
createdAt?: Date | string
updatedAt?: Date | string
feedbacks?: Prisma.EventFeedbackCreateNestedManyWithoutEventInput
}
export type EventUncheckedCreateWithoutRegistrationsInput = {
@@ -521,6 +543,7 @@ export type EventUncheckedCreateWithoutRegistrationsInput = {
maxPlaces?: number | null
createdAt?: Date | string
updatedAt?: Date | string
feedbacks?: Prisma.EventFeedbackUncheckedCreateNestedManyWithoutEventInput
}
export type EventCreateOrConnectWithoutRegistrationsInput = {
@@ -550,6 +573,7 @@ export type EventUpdateWithoutRegistrationsInput = {
maxPlaces?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
feedbacks?: Prisma.EventFeedbackUpdateManyWithoutEventNestedInput
}
export type EventUncheckedUpdateWithoutRegistrationsInput = {
@@ -563,6 +587,79 @@ export type EventUncheckedUpdateWithoutRegistrationsInput = {
maxPlaces?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
feedbacks?: Prisma.EventFeedbackUncheckedUpdateManyWithoutEventNestedInput
}
export type EventCreateWithoutFeedbacksInput = {
id?: string
date: Date | string
name: string
description: string
type: $Enums.EventType
room?: string | null
time?: string | null
maxPlaces?: number | null
createdAt?: Date | string
updatedAt?: Date | string
registrations?: Prisma.EventRegistrationCreateNestedManyWithoutEventInput
}
export type EventUncheckedCreateWithoutFeedbacksInput = {
id?: string
date: Date | string
name: string
description: string
type: $Enums.EventType
room?: string | null
time?: string | null
maxPlaces?: number | null
createdAt?: Date | string
updatedAt?: Date | string
registrations?: Prisma.EventRegistrationUncheckedCreateNestedManyWithoutEventInput
}
export type EventCreateOrConnectWithoutFeedbacksInput = {
where: Prisma.EventWhereUniqueInput
create: Prisma.XOR<Prisma.EventCreateWithoutFeedbacksInput, Prisma.EventUncheckedCreateWithoutFeedbacksInput>
}
export type EventUpsertWithoutFeedbacksInput = {
update: Prisma.XOR<Prisma.EventUpdateWithoutFeedbacksInput, Prisma.EventUncheckedUpdateWithoutFeedbacksInput>
create: Prisma.XOR<Prisma.EventCreateWithoutFeedbacksInput, Prisma.EventUncheckedCreateWithoutFeedbacksInput>
where?: Prisma.EventWhereInput
}
export type EventUpdateToOneWithWhereWithoutFeedbacksInput = {
where?: Prisma.EventWhereInput
data: Prisma.XOR<Prisma.EventUpdateWithoutFeedbacksInput, Prisma.EventUncheckedUpdateWithoutFeedbacksInput>
}
export type EventUpdateWithoutFeedbacksInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string
date?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
name?: Prisma.StringFieldUpdateOperationsInput | string
description?: Prisma.StringFieldUpdateOperationsInput | string
type?: Prisma.EnumEventTypeFieldUpdateOperationsInput | $Enums.EventType
room?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
time?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
maxPlaces?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
registrations?: Prisma.EventRegistrationUpdateManyWithoutEventNestedInput
}
export type EventUncheckedUpdateWithoutFeedbacksInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string
date?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
name?: Prisma.StringFieldUpdateOperationsInput | string
description?: Prisma.StringFieldUpdateOperationsInput | string
type?: Prisma.EnumEventTypeFieldUpdateOperationsInput | $Enums.EventType
room?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
time?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
maxPlaces?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
registrations?: Prisma.EventRegistrationUncheckedUpdateManyWithoutEventNestedInput
}
@@ -572,10 +669,12 @@ export type EventUncheckedUpdateWithoutRegistrationsInput = {
export type EventCountOutputType = {
registrations: number
feedbacks: number
}
export type EventCountOutputTypeSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
registrations?: boolean | EventCountOutputTypeCountRegistrationsArgs
feedbacks?: boolean | EventCountOutputTypeCountFeedbacksArgs
}
/**
@@ -595,6 +694,13 @@ export type EventCountOutputTypeCountRegistrationsArgs<ExtArgs extends runtime.T
where?: Prisma.EventRegistrationWhereInput
}
/**
* EventCountOutputType without action
*/
export type EventCountOutputTypeCountFeedbacksArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
where?: Prisma.EventFeedbackWhereInput
}
export type EventSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
id?: boolean
@@ -608,6 +714,7 @@ export type EventSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs =
createdAt?: boolean
updatedAt?: boolean
registrations?: boolean | Prisma.Event$registrationsArgs<ExtArgs>
feedbacks?: boolean | Prisma.Event$feedbacksArgs<ExtArgs>
_count?: boolean | Prisma.EventCountOutputTypeDefaultArgs<ExtArgs>
}, ExtArgs["result"]["event"]>
@@ -653,6 +760,7 @@ export type EventSelectScalar = {
export type EventOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "date" | "name" | "description" | "type" | "room" | "time" | "maxPlaces" | "createdAt" | "updatedAt", ExtArgs["result"]["event"]>
export type EventInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
registrations?: boolean | Prisma.Event$registrationsArgs<ExtArgs>
feedbacks?: boolean | Prisma.Event$feedbacksArgs<ExtArgs>
_count?: boolean | Prisma.EventCountOutputTypeDefaultArgs<ExtArgs>
}
export type EventIncludeCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {}
@@ -662,6 +770,7 @@ export type $EventPayload<ExtArgs extends runtime.Types.Extensions.InternalArgs
name: "Event"
objects: {
registrations: Prisma.$EventRegistrationPayload<ExtArgs>[]
feedbacks: Prisma.$EventFeedbackPayload<ExtArgs>[]
}
scalars: runtime.Types.Extensions.GetPayloadResult<{
id: string
@@ -1069,6 +1178,7 @@ readonly fields: EventFieldRefs;
export interface Prisma__EventClient<T, Null = never, ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
readonly [Symbol.toStringTag]: "PrismaPromise"
registrations<T extends Prisma.Event$registrationsArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.Event$registrationsArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$EventRegistrationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
feedbacks<T extends Prisma.Event$feedbacksArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.Event$feedbacksArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$EventFeedbackPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
/**
* Attaches callbacks for the resolution and/or rejection of the Promise.
* @param onfulfilled The callback to execute when the Promise is resolved.
@@ -1517,6 +1627,30 @@ export type Event$registrationsArgs<ExtArgs extends runtime.Types.Extensions.Int
distinct?: Prisma.EventRegistrationScalarFieldEnum | Prisma.EventRegistrationScalarFieldEnum[]
}
/**
* Event.feedbacks
*/
export type Event$feedbacksArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
/**
* Select specific fields to fetch from the EventFeedback
*/
select?: Prisma.EventFeedbackSelect<ExtArgs> | null
/**
* Omit specific fields from the EventFeedback
*/
omit?: Prisma.EventFeedbackOmit<ExtArgs> | null
/**
* Choose, which related nodes to fetch as well
*/
include?: Prisma.EventFeedbackInclude<ExtArgs> | null
where?: Prisma.EventFeedbackWhereInput
orderBy?: Prisma.EventFeedbackOrderByWithRelationInput | Prisma.EventFeedbackOrderByWithRelationInput[]
cursor?: Prisma.EventFeedbackWhereUniqueInput
take?: number
skip?: number
distinct?: Prisma.EventFeedbackScalarFieldEnum | Prisma.EventFeedbackScalarFieldEnum[]
}
/**
* Event without action
*/

File diff suppressed because it is too large Load Diff

View File

@@ -326,6 +326,7 @@ export type UserWhereInput = {
updatedAt?: Prisma.DateTimeFilter<"User"> | Date | string
preferences?: Prisma.XOR<Prisma.UserPreferencesNullableScalarRelationFilter, Prisma.UserPreferencesWhereInput> | null
eventRegistrations?: Prisma.EventRegistrationListRelationFilter
eventFeedbacks?: Prisma.EventFeedbackListRelationFilter
}
export type UserOrderByWithRelationInput = {
@@ -347,6 +348,7 @@ export type UserOrderByWithRelationInput = {
updatedAt?: Prisma.SortOrder
preferences?: Prisma.UserPreferencesOrderByWithRelationInput
eventRegistrations?: Prisma.EventRegistrationOrderByRelationAggregateInput
eventFeedbacks?: Prisma.EventFeedbackOrderByRelationAggregateInput
}
export type UserWhereUniqueInput = Prisma.AtLeast<{
@@ -371,6 +373,7 @@ export type UserWhereUniqueInput = Prisma.AtLeast<{
updatedAt?: Prisma.DateTimeFilter<"User"> | Date | string
preferences?: Prisma.XOR<Prisma.UserPreferencesNullableScalarRelationFilter, Prisma.UserPreferencesWhereInput> | null
eventRegistrations?: Prisma.EventRegistrationListRelationFilter
eventFeedbacks?: Prisma.EventFeedbackListRelationFilter
}, "id" | "email" | "username">
export type UserOrderByWithAggregationInput = {
@@ -438,6 +441,7 @@ export type UserCreateInput = {
updatedAt?: Date | string
preferences?: Prisma.UserPreferencesCreateNestedOneWithoutUserInput
eventRegistrations?: Prisma.EventRegistrationCreateNestedManyWithoutUserInput
eventFeedbacks?: Prisma.EventFeedbackCreateNestedManyWithoutUserInput
}
export type UserUncheckedCreateInput = {
@@ -459,6 +463,7 @@ export type UserUncheckedCreateInput = {
updatedAt?: Date | string
preferences?: Prisma.UserPreferencesUncheckedCreateNestedOneWithoutUserInput
eventRegistrations?: Prisma.EventRegistrationUncheckedCreateNestedManyWithoutUserInput
eventFeedbacks?: Prisma.EventFeedbackUncheckedCreateNestedManyWithoutUserInput
}
export type UserUpdateInput = {
@@ -480,6 +485,7 @@ export type UserUpdateInput = {
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
preferences?: Prisma.UserPreferencesUpdateOneWithoutUserNestedInput
eventRegistrations?: Prisma.EventRegistrationUpdateManyWithoutUserNestedInput
eventFeedbacks?: Prisma.EventFeedbackUpdateManyWithoutUserNestedInput
}
export type UserUncheckedUpdateInput = {
@@ -501,6 +507,7 @@ export type UserUncheckedUpdateInput = {
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
preferences?: Prisma.UserPreferencesUncheckedUpdateOneWithoutUserNestedInput
eventRegistrations?: Prisma.EventRegistrationUncheckedUpdateManyWithoutUserNestedInput
eventFeedbacks?: Prisma.EventFeedbackUncheckedUpdateManyWithoutUserNestedInput
}
export type UserCreateManyInput = {
@@ -696,6 +703,20 @@ export type UserUpdateOneRequiredWithoutEventRegistrationsNestedInput = {
update?: Prisma.XOR<Prisma.XOR<Prisma.UserUpdateToOneWithWhereWithoutEventRegistrationsInput, Prisma.UserUpdateWithoutEventRegistrationsInput>, Prisma.UserUncheckedUpdateWithoutEventRegistrationsInput>
}
export type UserCreateNestedOneWithoutEventFeedbacksInput = {
create?: Prisma.XOR<Prisma.UserCreateWithoutEventFeedbacksInput, Prisma.UserUncheckedCreateWithoutEventFeedbacksInput>
connectOrCreate?: Prisma.UserCreateOrConnectWithoutEventFeedbacksInput
connect?: Prisma.UserWhereUniqueInput
}
export type UserUpdateOneRequiredWithoutEventFeedbacksNestedInput = {
create?: Prisma.XOR<Prisma.UserCreateWithoutEventFeedbacksInput, Prisma.UserUncheckedCreateWithoutEventFeedbacksInput>
connectOrCreate?: Prisma.UserCreateOrConnectWithoutEventFeedbacksInput
upsert?: Prisma.UserUpsertWithoutEventFeedbacksInput
connect?: Prisma.UserWhereUniqueInput
update?: Prisma.XOR<Prisma.XOR<Prisma.UserUpdateToOneWithWhereWithoutEventFeedbacksInput, Prisma.UserUpdateWithoutEventFeedbacksInput>, Prisma.UserUncheckedUpdateWithoutEventFeedbacksInput>
}
export type UserCreateWithoutPreferencesInput = {
id?: string
email: string
@@ -714,6 +735,7 @@ export type UserCreateWithoutPreferencesInput = {
createdAt?: Date | string
updatedAt?: Date | string
eventRegistrations?: Prisma.EventRegistrationCreateNestedManyWithoutUserInput
eventFeedbacks?: Prisma.EventFeedbackCreateNestedManyWithoutUserInput
}
export type UserUncheckedCreateWithoutPreferencesInput = {
@@ -734,6 +756,7 @@ export type UserUncheckedCreateWithoutPreferencesInput = {
createdAt?: Date | string
updatedAt?: Date | string
eventRegistrations?: Prisma.EventRegistrationUncheckedCreateNestedManyWithoutUserInput
eventFeedbacks?: Prisma.EventFeedbackUncheckedCreateNestedManyWithoutUserInput
}
export type UserCreateOrConnectWithoutPreferencesInput = {
@@ -770,6 +793,7 @@ export type UserUpdateWithoutPreferencesInput = {
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
eventRegistrations?: Prisma.EventRegistrationUpdateManyWithoutUserNestedInput
eventFeedbacks?: Prisma.EventFeedbackUpdateManyWithoutUserNestedInput
}
export type UserUncheckedUpdateWithoutPreferencesInput = {
@@ -790,6 +814,7 @@ export type UserUncheckedUpdateWithoutPreferencesInput = {
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
eventRegistrations?: Prisma.EventRegistrationUncheckedUpdateManyWithoutUserNestedInput
eventFeedbacks?: Prisma.EventFeedbackUncheckedUpdateManyWithoutUserNestedInput
}
export type UserCreateWithoutEventRegistrationsInput = {
@@ -810,6 +835,7 @@ export type UserCreateWithoutEventRegistrationsInput = {
createdAt?: Date | string
updatedAt?: Date | string
preferences?: Prisma.UserPreferencesCreateNestedOneWithoutUserInput
eventFeedbacks?: Prisma.EventFeedbackCreateNestedManyWithoutUserInput
}
export type UserUncheckedCreateWithoutEventRegistrationsInput = {
@@ -830,6 +856,7 @@ export type UserUncheckedCreateWithoutEventRegistrationsInput = {
createdAt?: Date | string
updatedAt?: Date | string
preferences?: Prisma.UserPreferencesUncheckedCreateNestedOneWithoutUserInput
eventFeedbacks?: Prisma.EventFeedbackUncheckedCreateNestedManyWithoutUserInput
}
export type UserCreateOrConnectWithoutEventRegistrationsInput = {
@@ -866,6 +893,7 @@ export type UserUpdateWithoutEventRegistrationsInput = {
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
preferences?: Prisma.UserPreferencesUpdateOneWithoutUserNestedInput
eventFeedbacks?: Prisma.EventFeedbackUpdateManyWithoutUserNestedInput
}
export type UserUncheckedUpdateWithoutEventRegistrationsInput = {
@@ -886,6 +914,107 @@ export type UserUncheckedUpdateWithoutEventRegistrationsInput = {
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
preferences?: Prisma.UserPreferencesUncheckedUpdateOneWithoutUserNestedInput
eventFeedbacks?: Prisma.EventFeedbackUncheckedUpdateManyWithoutUserNestedInput
}
export type UserCreateWithoutEventFeedbacksInput = {
id?: string
email: string
password: string
username: string
role?: $Enums.Role
score?: number
level?: number
hp?: number
maxHp?: number
xp?: number
maxXp?: number
avatar?: string | null
bio?: string | null
characterClass?: $Enums.CharacterClass | null
createdAt?: Date | string
updatedAt?: Date | string
preferences?: Prisma.UserPreferencesCreateNestedOneWithoutUserInput
eventRegistrations?: Prisma.EventRegistrationCreateNestedManyWithoutUserInput
}
export type UserUncheckedCreateWithoutEventFeedbacksInput = {
id?: string
email: string
password: string
username: string
role?: $Enums.Role
score?: number
level?: number
hp?: number
maxHp?: number
xp?: number
maxXp?: number
avatar?: string | null
bio?: string | null
characterClass?: $Enums.CharacterClass | null
createdAt?: Date | string
updatedAt?: Date | string
preferences?: Prisma.UserPreferencesUncheckedCreateNestedOneWithoutUserInput
eventRegistrations?: Prisma.EventRegistrationUncheckedCreateNestedManyWithoutUserInput
}
export type UserCreateOrConnectWithoutEventFeedbacksInput = {
where: Prisma.UserWhereUniqueInput
create: Prisma.XOR<Prisma.UserCreateWithoutEventFeedbacksInput, Prisma.UserUncheckedCreateWithoutEventFeedbacksInput>
}
export type UserUpsertWithoutEventFeedbacksInput = {
update: Prisma.XOR<Prisma.UserUpdateWithoutEventFeedbacksInput, Prisma.UserUncheckedUpdateWithoutEventFeedbacksInput>
create: Prisma.XOR<Prisma.UserCreateWithoutEventFeedbacksInput, Prisma.UserUncheckedCreateWithoutEventFeedbacksInput>
where?: Prisma.UserWhereInput
}
export type UserUpdateToOneWithWhereWithoutEventFeedbacksInput = {
where?: Prisma.UserWhereInput
data: Prisma.XOR<Prisma.UserUpdateWithoutEventFeedbacksInput, Prisma.UserUncheckedUpdateWithoutEventFeedbacksInput>
}
export type UserUpdateWithoutEventFeedbacksInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string
email?: Prisma.StringFieldUpdateOperationsInput | string
password?: Prisma.StringFieldUpdateOperationsInput | string
username?: Prisma.StringFieldUpdateOperationsInput | string
role?: Prisma.EnumRoleFieldUpdateOperationsInput | $Enums.Role
score?: Prisma.IntFieldUpdateOperationsInput | number
level?: Prisma.IntFieldUpdateOperationsInput | number
hp?: Prisma.IntFieldUpdateOperationsInput | number
maxHp?: Prisma.IntFieldUpdateOperationsInput | number
xp?: Prisma.IntFieldUpdateOperationsInput | number
maxXp?: Prisma.IntFieldUpdateOperationsInput | number
avatar?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
bio?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
characterClass?: Prisma.NullableEnumCharacterClassFieldUpdateOperationsInput | $Enums.CharacterClass | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
preferences?: Prisma.UserPreferencesUpdateOneWithoutUserNestedInput
eventRegistrations?: Prisma.EventRegistrationUpdateManyWithoutUserNestedInput
}
export type UserUncheckedUpdateWithoutEventFeedbacksInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string
email?: Prisma.StringFieldUpdateOperationsInput | string
password?: Prisma.StringFieldUpdateOperationsInput | string
username?: Prisma.StringFieldUpdateOperationsInput | string
role?: Prisma.EnumRoleFieldUpdateOperationsInput | $Enums.Role
score?: Prisma.IntFieldUpdateOperationsInput | number
level?: Prisma.IntFieldUpdateOperationsInput | number
hp?: Prisma.IntFieldUpdateOperationsInput | number
maxHp?: Prisma.IntFieldUpdateOperationsInput | number
xp?: Prisma.IntFieldUpdateOperationsInput | number
maxXp?: Prisma.IntFieldUpdateOperationsInput | number
avatar?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
bio?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
characterClass?: Prisma.NullableEnumCharacterClassFieldUpdateOperationsInput | $Enums.CharacterClass | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
preferences?: Prisma.UserPreferencesUncheckedUpdateOneWithoutUserNestedInput
eventRegistrations?: Prisma.EventRegistrationUncheckedUpdateManyWithoutUserNestedInput
}
@@ -895,10 +1024,12 @@ export type UserUncheckedUpdateWithoutEventRegistrationsInput = {
export type UserCountOutputType = {
eventRegistrations: number
eventFeedbacks: number
}
export type UserCountOutputTypeSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
eventRegistrations?: boolean | UserCountOutputTypeCountEventRegistrationsArgs
eventFeedbacks?: boolean | UserCountOutputTypeCountEventFeedbacksArgs
}
/**
@@ -918,6 +1049,13 @@ export type UserCountOutputTypeCountEventRegistrationsArgs<ExtArgs extends runti
where?: Prisma.EventRegistrationWhereInput
}
/**
* UserCountOutputType without action
*/
export type UserCountOutputTypeCountEventFeedbacksArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
where?: Prisma.EventFeedbackWhereInput
}
export type UserSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
id?: boolean
@@ -938,6 +1076,7 @@ export type UserSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = r
updatedAt?: boolean
preferences?: boolean | Prisma.User$preferencesArgs<ExtArgs>
eventRegistrations?: boolean | Prisma.User$eventRegistrationsArgs<ExtArgs>
eventFeedbacks?: boolean | Prisma.User$eventFeedbacksArgs<ExtArgs>
_count?: boolean | Prisma.UserCountOutputTypeDefaultArgs<ExtArgs>
}, ExtArgs["result"]["user"]>
@@ -1002,6 +1141,7 @@ export type UserOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = run
export type UserInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
preferences?: boolean | Prisma.User$preferencesArgs<ExtArgs>
eventRegistrations?: boolean | Prisma.User$eventRegistrationsArgs<ExtArgs>
eventFeedbacks?: boolean | Prisma.User$eventFeedbacksArgs<ExtArgs>
_count?: boolean | Prisma.UserCountOutputTypeDefaultArgs<ExtArgs>
}
export type UserIncludeCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {}
@@ -1012,6 +1152,7 @@ export type $UserPayload<ExtArgs extends runtime.Types.Extensions.InternalArgs =
objects: {
preferences: Prisma.$UserPreferencesPayload<ExtArgs> | null
eventRegistrations: Prisma.$EventRegistrationPayload<ExtArgs>[]
eventFeedbacks: Prisma.$EventFeedbackPayload<ExtArgs>[]
}
scalars: runtime.Types.Extensions.GetPayloadResult<{
id: string
@@ -1426,6 +1567,7 @@ export interface Prisma__UserClient<T, Null = never, ExtArgs extends runtime.Typ
readonly [Symbol.toStringTag]: "PrismaPromise"
preferences<T extends Prisma.User$preferencesArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.User$preferencesArgs<ExtArgs>>): Prisma.Prisma__UserPreferencesClient<runtime.Types.Result.GetResult<Prisma.$UserPreferencesPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
eventRegistrations<T extends Prisma.User$eventRegistrationsArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.User$eventRegistrationsArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$EventRegistrationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
eventFeedbacks<T extends Prisma.User$eventFeedbacksArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.User$eventFeedbacksArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$EventFeedbackPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
/**
* Attaches callbacks for the resolution and/or rejection of the Promise.
* @param onfulfilled The callback to execute when the Promise is resolved.
@@ -1899,6 +2041,30 @@ export type User$eventRegistrationsArgs<ExtArgs extends runtime.Types.Extensions
distinct?: Prisma.EventRegistrationScalarFieldEnum | Prisma.EventRegistrationScalarFieldEnum[]
}
/**
* User.eventFeedbacks
*/
export type User$eventFeedbacksArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
/**
* Select specific fields to fetch from the EventFeedback
*/
select?: Prisma.EventFeedbackSelect<ExtArgs> | null
/**
* Omit specific fields from the EventFeedback
*/
omit?: Prisma.EventFeedbackOmit<ExtArgs> | null
/**
* Choose, which related nodes to fetch as well
*/
include?: Prisma.EventFeedbackInclude<ExtArgs> | null
where?: Prisma.EventFeedbackWhereInput
orderBy?: Prisma.EventFeedbackOrderByWithRelationInput | Prisma.EventFeedbackOrderByWithRelationInput[]
cursor?: Prisma.EventFeedbackWhereUniqueInput
take?: number
skip?: number
distinct?: Prisma.EventFeedbackScalarFieldEnum | Prisma.EventFeedbackScalarFieldEnum[]
}
/**
* User without action
*/

View File

@@ -0,0 +1,22 @@
-- CreateTable
CREATE TABLE "EventFeedback" (
"id" TEXT NOT NULL PRIMARY KEY,
"userId" TEXT NOT NULL,
"eventId" TEXT NOT NULL,
"rating" INTEGER NOT NULL,
"comment" TEXT,
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" DATETIME NOT NULL,
CONSTRAINT "EventFeedback_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT "EventFeedback_eventId_fkey" FOREIGN KEY ("eventId") REFERENCES "Event" ("id") ON DELETE CASCADE ON UPDATE CASCADE
);
-- CreateIndex
CREATE UNIQUE INDEX "EventFeedback_userId_eventId_key" ON "EventFeedback"("userId", "eventId");
-- CreateIndex
CREATE INDEX "EventFeedback_userId_idx" ON "EventFeedback"("userId");
-- CreateIndex
CREATE INDEX "EventFeedback_eventId_idx" ON "EventFeedback"("eventId");

View File

@@ -54,6 +54,7 @@ model User {
updatedAt DateTime @updatedAt
preferences UserPreferences?
eventRegistrations EventRegistration[]
eventFeedbacks EventFeedback[]
@@index([score])
@@index([email])
@@ -88,6 +89,7 @@ model Event {
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
registrations EventRegistration[]
feedbacks EventFeedback[]
@@index([date])
}
@@ -105,6 +107,22 @@ model EventRegistration {
@@index([eventId])
}
model EventFeedback {
id String @id @default(cuid())
userId String
eventId String
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
event Event @relation(fields: [eventId], references: [id], onDelete: Cascade)
rating Int // Note de 1 à 5
comment String? // Commentaire optionnel
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@unique([userId, eventId])
@@index([userId])
@@index([eventId])
}
model SitePreferences {
id String @id @default("global")
homeBackground String?