Implement event registration functionality: Add EventRegistration model to Prisma schema, enabling user event registrations. Enhance EventsPageSection component with registration checks, calendar view, and improved event display. Refactor event rendering logic to separate upcoming and past events, improving user experience.

This commit is contained in:
Julien Froidefond
2025-12-09 21:53:10 +01:00
parent 5ae6cde14e
commit 50a2eaf109
13 changed files with 2483 additions and 61 deletions

View File

@@ -387,6 +387,7 @@ export const ModelName = {
User: 'User',
UserPreferences: 'UserPreferences',
Event: 'Event',
EventRegistration: 'EventRegistration',
SitePreferences: 'SitePreferences'
} as const
@@ -403,7 +404,7 @@ export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runt
omit: GlobalOmitOptions
}
meta: {
modelProps: "user" | "userPreferences" | "event" | "sitePreferences"
modelProps: "user" | "userPreferences" | "event" | "eventRegistration" | "sitePreferences"
txIsolationLevel: TransactionIsolationLevel
}
model: {
@@ -629,6 +630,80 @@ export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runt
}
}
}
EventRegistration: {
payload: Prisma.$EventRegistrationPayload<ExtArgs>
fields: Prisma.EventRegistrationFieldRefs
operations: {
findUnique: {
args: Prisma.EventRegistrationFindUniqueArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventRegistrationPayload> | null
}
findUniqueOrThrow: {
args: Prisma.EventRegistrationFindUniqueOrThrowArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventRegistrationPayload>
}
findFirst: {
args: Prisma.EventRegistrationFindFirstArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventRegistrationPayload> | null
}
findFirstOrThrow: {
args: Prisma.EventRegistrationFindFirstOrThrowArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventRegistrationPayload>
}
findMany: {
args: Prisma.EventRegistrationFindManyArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventRegistrationPayload>[]
}
create: {
args: Prisma.EventRegistrationCreateArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventRegistrationPayload>
}
createMany: {
args: Prisma.EventRegistrationCreateManyArgs<ExtArgs>
result: BatchPayload
}
createManyAndReturn: {
args: Prisma.EventRegistrationCreateManyAndReturnArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventRegistrationPayload>[]
}
delete: {
args: Prisma.EventRegistrationDeleteArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventRegistrationPayload>
}
update: {
args: Prisma.EventRegistrationUpdateArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventRegistrationPayload>
}
deleteMany: {
args: Prisma.EventRegistrationDeleteManyArgs<ExtArgs>
result: BatchPayload
}
updateMany: {
args: Prisma.EventRegistrationUpdateManyArgs<ExtArgs>
result: BatchPayload
}
updateManyAndReturn: {
args: Prisma.EventRegistrationUpdateManyAndReturnArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventRegistrationPayload>[]
}
upsert: {
args: Prisma.EventRegistrationUpsertArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$EventRegistrationPayload>
}
aggregate: {
args: Prisma.EventRegistrationAggregateArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.AggregateEventRegistration>
}
groupBy: {
args: Prisma.EventRegistrationGroupByArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.EventRegistrationGroupByOutputType>[]
}
count: {
args: Prisma.EventRegistrationCountArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.EventRegistrationCountAggregateOutputType> | number
}
}
}
SitePreferences: {
payload: Prisma.$SitePreferencesPayload<ExtArgs>
fields: Prisma.SitePreferencesFieldRefs
@@ -787,6 +862,16 @@ export const EventScalarFieldEnum = {
export type EventScalarFieldEnum = (typeof EventScalarFieldEnum)[keyof typeof EventScalarFieldEnum]
export const EventRegistrationScalarFieldEnum = {
id: 'id',
userId: 'userId',
eventId: 'eventId',
createdAt: 'createdAt'
} as const
export type EventRegistrationScalarFieldEnum = (typeof EventRegistrationScalarFieldEnum)[keyof typeof EventRegistrationScalarFieldEnum]
export const SitePreferencesScalarFieldEnum = {
id: 'id',
homeBackground: 'homeBackground',
@@ -967,6 +1052,7 @@ export type GlobalOmitConfig = {
user?: Prisma.UserOmit
userPreferences?: Prisma.UserPreferencesOmit
event?: Prisma.EventOmit
eventRegistration?: Prisma.EventRegistrationOmit
sitePreferences?: Prisma.SitePreferencesOmit
}