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

@@ -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
}