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:
@@ -37,6 +37,11 @@ export type Event = Prisma.EventModel
|
||||
*
|
||||
*/
|
||||
export type EventRegistration = Prisma.EventRegistrationModel
|
||||
/**
|
||||
* Model EventFeedback
|
||||
*
|
||||
*/
|
||||
export type EventFeedback = Prisma.EventFeedbackModel
|
||||
/**
|
||||
* Model SitePreferences
|
||||
*
|
||||
|
||||
@@ -59,6 +59,11 @@ export type Event = Prisma.EventModel
|
||||
*
|
||||
*/
|
||||
export type EventRegistration = Prisma.EventRegistrationModel
|
||||
/**
|
||||
* Model EventFeedback
|
||||
*
|
||||
*/
|
||||
export type EventFeedback = Prisma.EventFeedbackModel
|
||||
/**
|
||||
* Model SitePreferences
|
||||
*
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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'
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
1588
prisma/generated/prisma/models/EventFeedback.ts
Normal file
1588
prisma/generated/prisma/models/EventFeedback.ts
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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?
|
||||
|
||||
Reference in New Issue
Block a user