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:
140
app/api/events/[id]/register/route.ts
Normal file
140
app/api/events/[id]/register/route.ts
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
import { NextResponse } from "next/server";
|
||||||
|
import { auth } from "@/lib/auth";
|
||||||
|
import { prisma } from "@/lib/prisma";
|
||||||
|
|
||||||
|
export async function POST(
|
||||||
|
request: Request,
|
||||||
|
{ params }: { params: Promise<{ id: string }> }
|
||||||
|
) {
|
||||||
|
try {
|
||||||
|
const session = await auth();
|
||||||
|
|
||||||
|
if (!session?.user?.id) {
|
||||||
|
return NextResponse.json(
|
||||||
|
{ error: "Vous devez être connecté pour vous inscrire" },
|
||||||
|
{ status: 401 }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const { id: eventId } = await params;
|
||||||
|
|
||||||
|
// Vérifier si l'événement existe
|
||||||
|
const event = await prisma.event.findUnique({
|
||||||
|
where: { id: eventId },
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!event) {
|
||||||
|
return NextResponse.json(
|
||||||
|
{ error: "Événement introuvable" },
|
||||||
|
{ status: 404 }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.status !== "UPCOMING") {
|
||||||
|
return NextResponse.json(
|
||||||
|
{ error: "Vous ne pouvez vous inscrire qu'aux événements à venir" },
|
||||||
|
{ status: 400 }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vérifier si l'utilisateur est déjà inscrit
|
||||||
|
const existingRegistration = await prisma.eventRegistration.findUnique({
|
||||||
|
where: {
|
||||||
|
userId_eventId: {
|
||||||
|
userId: session.user.id,
|
||||||
|
eventId: eventId,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
if (existingRegistration) {
|
||||||
|
return NextResponse.json(
|
||||||
|
{ error: "Vous êtes déjà inscrit à cet événement" },
|
||||||
|
{ status: 400 }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Créer l'inscription
|
||||||
|
const registration = await prisma.eventRegistration.create({
|
||||||
|
data: {
|
||||||
|
userId: session.user.id,
|
||||||
|
eventId: eventId,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
return NextResponse.json(
|
||||||
|
{ message: "Inscription réussie", registration },
|
||||||
|
{ status: 201 }
|
||||||
|
);
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Registration error:", error);
|
||||||
|
return NextResponse.json(
|
||||||
|
{ error: "Une erreur est survenue lors de l'inscription" },
|
||||||
|
{ status: 500 }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function DELETE(
|
||||||
|
request: Request,
|
||||||
|
{ params }: { params: Promise<{ id: string }> }
|
||||||
|
) {
|
||||||
|
try {
|
||||||
|
const session = await auth();
|
||||||
|
|
||||||
|
if (!session?.user?.id) {
|
||||||
|
return NextResponse.json(
|
||||||
|
{ error: "Vous devez être connecté" },
|
||||||
|
{ status: 401 }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const { id: eventId } = await params;
|
||||||
|
|
||||||
|
// Supprimer l'inscription
|
||||||
|
await prisma.eventRegistration.deleteMany({
|
||||||
|
where: {
|
||||||
|
userId: session.user.id,
|
||||||
|
eventId: eventId,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
return NextResponse.json({ message: "Inscription annulée" });
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Unregistration error:", error);
|
||||||
|
return NextResponse.json(
|
||||||
|
{ error: "Une erreur est survenue lors de l'annulation" },
|
||||||
|
{ status: 500 }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function GET(
|
||||||
|
request: Request,
|
||||||
|
{ params }: { params: Promise<{ id: string }> }
|
||||||
|
) {
|
||||||
|
try {
|
||||||
|
const session = await auth();
|
||||||
|
|
||||||
|
if (!session?.user?.id) {
|
||||||
|
return NextResponse.json({ registered: false });
|
||||||
|
}
|
||||||
|
|
||||||
|
const { id: eventId } = await params;
|
||||||
|
|
||||||
|
const registration = await prisma.eventRegistration.findUnique({
|
||||||
|
where: {
|
||||||
|
userId_eventId: {
|
||||||
|
userId: session.user.id,
|
||||||
|
eventId: eventId,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
return NextResponse.json({ registered: !!registration });
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Check registration error:", error);
|
||||||
|
return NextResponse.json({ registered: false });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,5 +1,9 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
|
import { useState, useEffect } from "react";
|
||||||
|
import { useSession } from "next-auth/react";
|
||||||
|
import { useRouter } from "next/navigation";
|
||||||
|
|
||||||
interface Event {
|
interface Event {
|
||||||
id: string;
|
id: string;
|
||||||
date: string;
|
date: string;
|
||||||
@@ -71,6 +75,365 @@ export default function EventsPageSection({
|
|||||||
events,
|
events,
|
||||||
backgroundImage,
|
backgroundImage,
|
||||||
}: EventsPageSectionProps) {
|
}: EventsPageSectionProps) {
|
||||||
|
const { data: session } = useSession();
|
||||||
|
const router = useRouter();
|
||||||
|
const [registrations, setRegistrations] = useState<Record<string, boolean>>(
|
||||||
|
{}
|
||||||
|
);
|
||||||
|
const [loading, setLoading] = useState<Record<string, boolean>>({});
|
||||||
|
const [error, setError] = useState<string>("");
|
||||||
|
const [currentMonth, setCurrentMonth] = useState(new Date());
|
||||||
|
|
||||||
|
// Séparer les événements
|
||||||
|
const upcomingEvents = events.filter(
|
||||||
|
(e) => e.status === "UPCOMING" || e.status === "LIVE"
|
||||||
|
);
|
||||||
|
const pastEvents = events.filter((e) => e.status === "PAST");
|
||||||
|
|
||||||
|
// Créer un map des événements par date pour le calendrier
|
||||||
|
const eventsByDate: Record<string, Event[]> = {};
|
||||||
|
events.forEach((event) => {
|
||||||
|
const dateKey = event.date; // YYYY-MM-DD
|
||||||
|
if (!eventsByDate[dateKey]) {
|
||||||
|
eventsByDate[dateKey] = [];
|
||||||
|
}
|
||||||
|
eventsByDate[dateKey].push(event);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Vérifier les inscriptions au chargement
|
||||||
|
useEffect(() => {
|
||||||
|
if (!session?.user?.id) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const checkRegistrations = async () => {
|
||||||
|
const upcomingOnlyEvents = events.filter((e) => e.status === "UPCOMING");
|
||||||
|
const registrationChecks = upcomingOnlyEvents.map(async (event) => {
|
||||||
|
try {
|
||||||
|
const response = await fetch(`/api/events/${event.id}/register`);
|
||||||
|
const data = await response.json();
|
||||||
|
return { eventId: event.id, registered: data.registered || false };
|
||||||
|
} catch (err) {
|
||||||
|
console.error("Error checking registration:", err);
|
||||||
|
return { eventId: event.id, registered: false };
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const results = await Promise.all(registrationChecks);
|
||||||
|
const registrationsMap: Record<string, boolean> = {};
|
||||||
|
results.forEach(({ eventId, registered }) => {
|
||||||
|
registrationsMap[eventId] = registered;
|
||||||
|
});
|
||||||
|
setRegistrations(registrationsMap);
|
||||||
|
};
|
||||||
|
|
||||||
|
checkRegistrations();
|
||||||
|
}, [session?.user?.id, events]);
|
||||||
|
|
||||||
|
// Fonctions pour le calendrier
|
||||||
|
const getDaysInMonth = (date: Date) => {
|
||||||
|
const year = date.getFullYear();
|
||||||
|
const month = date.getMonth();
|
||||||
|
return new Date(year, month + 1, 0).getDate();
|
||||||
|
};
|
||||||
|
|
||||||
|
const getFirstDayOfMonth = (date: Date) => {
|
||||||
|
const year = date.getFullYear();
|
||||||
|
const month = date.getMonth();
|
||||||
|
return new Date(year, month, 1).getDay();
|
||||||
|
};
|
||||||
|
|
||||||
|
const formatMonthYear = (date: Date) => {
|
||||||
|
return date.toLocaleDateString("fr-FR", {
|
||||||
|
month: "long",
|
||||||
|
year: "numeric",
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const renderCalendar = () => {
|
||||||
|
const daysInMonth = getDaysInMonth(currentMonth);
|
||||||
|
const firstDay = getFirstDayOfMonth(currentMonth);
|
||||||
|
const days: (number | null)[] = [];
|
||||||
|
|
||||||
|
// Ajouter des jours vides pour le début du mois
|
||||||
|
for (let i = 0; i < firstDay; i++) {
|
||||||
|
days.push(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ajouter les jours du mois
|
||||||
|
for (let day = 1; day <= daysInMonth; day++) {
|
||||||
|
days.push(day);
|
||||||
|
}
|
||||||
|
|
||||||
|
const year = currentMonth.getFullYear();
|
||||||
|
const month = currentMonth.getMonth() + 1;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="bg-black/60 border border-pixel-gold/30 rounded-lg p-4 backdrop-blur-sm max-w-2xl mx-auto">
|
||||||
|
{/* Header du calendrier */}
|
||||||
|
<div className="flex items-center justify-between mb-3">
|
||||||
|
<button
|
||||||
|
onClick={() => {
|
||||||
|
setCurrentMonth(
|
||||||
|
new Date(
|
||||||
|
currentMonth.getFullYear(),
|
||||||
|
currentMonth.getMonth() - 1
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}}
|
||||||
|
className="px-2 py-1 border border-pixel-gold/50 text-pixel-gold hover:bg-pixel-gold/10 rounded transition text-sm"
|
||||||
|
>
|
||||||
|
←
|
||||||
|
</button>
|
||||||
|
<h3 className="text-base font-bold text-white uppercase tracking-widest">
|
||||||
|
{formatMonthYear(currentMonth)}
|
||||||
|
</h3>
|
||||||
|
<button
|
||||||
|
onClick={() => {
|
||||||
|
setCurrentMonth(
|
||||||
|
new Date(
|
||||||
|
currentMonth.getFullYear(),
|
||||||
|
currentMonth.getMonth() + 1
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}}
|
||||||
|
className="px-2 py-1 border border-pixel-gold/50 text-pixel-gold hover:bg-pixel-gold/10 rounded transition text-sm"
|
||||||
|
>
|
||||||
|
→
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Jours de la semaine */}
|
||||||
|
<div className="grid grid-cols-7 gap-0.5 mb-1">
|
||||||
|
{["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"].map((day) => (
|
||||||
|
<div
|
||||||
|
key={day}
|
||||||
|
className="text-center text-[10px] text-gray-400 font-semibold py-1"
|
||||||
|
>
|
||||||
|
{day}
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Grille du calendrier */}
|
||||||
|
<div className="grid grid-cols-7 gap-0.5">
|
||||||
|
{days.map((day, index) => {
|
||||||
|
if (day === null) {
|
||||||
|
return <div key={index} className="aspect-square"></div>;
|
||||||
|
}
|
||||||
|
|
||||||
|
const dateKey = `${year}-${String(month).padStart(2, "0")}-${String(
|
||||||
|
day
|
||||||
|
).padStart(2, "0")}`;
|
||||||
|
const dayEvents = eventsByDate[dateKey] || [];
|
||||||
|
const isToday = new Date().toISOString().split("T")[0] === dateKey;
|
||||||
|
const hasEvents = dayEvents.length > 0;
|
||||||
|
|
||||||
|
// Déterminer la couleur principale selon le type d'événement
|
||||||
|
const hasUpcoming = dayEvents.some((e) => e.status === "UPCOMING");
|
||||||
|
const hasLive = dayEvents.some((e) => e.status === "LIVE");
|
||||||
|
const hasPast = dayEvents.some((e) => e.status === "PAST");
|
||||||
|
|
||||||
|
let eventBorderColor = "";
|
||||||
|
let eventBgColor = "";
|
||||||
|
if (hasLive) {
|
||||||
|
eventBorderColor = "border-red-500/80";
|
||||||
|
eventBgColor = "bg-red-500/20";
|
||||||
|
} else if (hasUpcoming) {
|
||||||
|
eventBorderColor = "border-green-500/80";
|
||||||
|
eventBgColor = "bg-green-500/20";
|
||||||
|
} else if (hasPast) {
|
||||||
|
eventBorderColor = "border-gray-500/60";
|
||||||
|
eventBgColor = "bg-gray-500/15";
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
key={index}
|
||||||
|
className={`aspect-square border rounded flex flex-col items-center justify-center relative ${
|
||||||
|
isToday
|
||||||
|
? "bg-pixel-gold/30 border-pixel-gold/70 border-2"
|
||||||
|
: hasEvents
|
||||||
|
? `${eventBgColor} ${eventBorderColor} border-2`
|
||||||
|
: "border-pixel-gold/10"
|
||||||
|
} ${
|
||||||
|
hasEvents ? "ring-2 ring-offset-1 ring-offset-black" : ""
|
||||||
|
} ${
|
||||||
|
hasLive
|
||||||
|
? "ring-red-500/50"
|
||||||
|
: hasUpcoming
|
||||||
|
? "ring-green-500/50"
|
||||||
|
: ""
|
||||||
|
}`}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className={`text-[11px] font-bold ${
|
||||||
|
isToday
|
||||||
|
? "text-pixel-gold"
|
||||||
|
: hasEvents
|
||||||
|
? "text-white"
|
||||||
|
: "text-gray-400"
|
||||||
|
}`}
|
||||||
|
>
|
||||||
|
{day}
|
||||||
|
</div>
|
||||||
|
{hasEvents && (
|
||||||
|
<div className="absolute bottom-0.5 left-0 right-0 flex justify-center gap-0.5">
|
||||||
|
{dayEvents.slice(0, 3).map((event) => (
|
||||||
|
<div
|
||||||
|
key={event.id}
|
||||||
|
className={`w-1 h-1 rounded-full ${
|
||||||
|
event.status === "UPCOMING"
|
||||||
|
? "bg-green-400"
|
||||||
|
: event.status === "LIVE"
|
||||||
|
? "bg-red-400 animate-pulse"
|
||||||
|
: "bg-gray-400"
|
||||||
|
}`}
|
||||||
|
title={event.name}
|
||||||
|
/>
|
||||||
|
))}
|
||||||
|
{dayEvents.length > 3 && (
|
||||||
|
<div className="w-1 h-1 rounded-full bg-gray-400" />
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const renderEventCard = (event: Event) => (
|
||||||
|
<div
|
||||||
|
key={event.id}
|
||||||
|
className="bg-black/60 border border-pixel-gold/30 rounded-lg overflow-hidden backdrop-blur-sm hover:border-pixel-gold/50 transition group"
|
||||||
|
>
|
||||||
|
{/* Event Header */}
|
||||||
|
<div
|
||||||
|
className={`h-2 bg-gradient-to-r ${getEventTypeColor(event.type)}`}
|
||||||
|
></div>
|
||||||
|
|
||||||
|
{/* Event Content */}
|
||||||
|
<div className="p-6">
|
||||||
|
{/* Status Badge */}
|
||||||
|
<div className="flex justify-between items-start mb-4">
|
||||||
|
{getStatusBadge(event.status)}
|
||||||
|
<span className="text-pixel-gold text-xs uppercase tracking-widest">
|
||||||
|
{getEventTypeLabel(event.type)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Date */}
|
||||||
|
<div className="text-white text-sm font-bold uppercase tracking-widest mb-3">
|
||||||
|
{event.date}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Event Name */}
|
||||||
|
<h3 className="text-xl font-bold text-white mb-3 group-hover:text-pixel-gold transition">
|
||||||
|
{event.name}
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
{/* Description */}
|
||||||
|
<p className="text-gray-400 text-sm leading-relaxed mb-4">
|
||||||
|
{event.description}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{/* Action Button */}
|
||||||
|
{event.status === "UPCOMING" && (
|
||||||
|
<>
|
||||||
|
{registrations[event.id] ? (
|
||||||
|
<button
|
||||||
|
onClick={() => handleUnregister(event.id)}
|
||||||
|
disabled={loading[event.id]}
|
||||||
|
className="w-full px-4 py-2 border border-green-500/50 bg-green-900/20 text-green-400 uppercase text-xs tracking-widest rounded hover:bg-green-900/30 transition disabled:opacity-50 disabled:cursor-not-allowed"
|
||||||
|
>
|
||||||
|
{loading[event.id] ? "Annulation..." : "Inscrit ✓"}
|
||||||
|
</button>
|
||||||
|
) : (
|
||||||
|
<button
|
||||||
|
onClick={() => handleRegister(event.id)}
|
||||||
|
disabled={loading[event.id]}
|
||||||
|
className="w-full px-4 py-2 border border-pixel-gold/50 bg-black/40 text-white uppercase text-xs tracking-widest rounded hover:bg-pixel-gold/10 hover:border-pixel-gold transition disabled:opacity-50 disabled:cursor-not-allowed"
|
||||||
|
>
|
||||||
|
{loading[event.id] ? "Inscription..." : "S'inscrire maintenant"}
|
||||||
|
</button>
|
||||||
|
)}
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
{event.status === "LIVE" && (
|
||||||
|
<button className="w-full px-4 py-2 border border-red-500/50 bg-red-900/20 text-red-400 uppercase text-xs tracking-widest rounded hover:bg-red-900/30 transition animate-pulse">
|
||||||
|
Rejoindre en direct
|
||||||
|
</button>
|
||||||
|
)}
|
||||||
|
{event.status === "PAST" && (
|
||||||
|
<button className="w-full px-4 py-2 border border-gray-600/50 bg-gray-900/20 text-gray-500 uppercase text-xs tracking-widest rounded cursor-not-allowed">
|
||||||
|
Événement terminé
|
||||||
|
</button>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
|
||||||
|
const handleRegister = async (eventId: string) => {
|
||||||
|
if (!session?.user?.id) {
|
||||||
|
router.push("/login");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
setLoading((prev) => ({ ...prev, [eventId]: true }));
|
||||||
|
setError("");
|
||||||
|
|
||||||
|
try {
|
||||||
|
const response = await fetch(`/api/events/${eventId}/register`, {
|
||||||
|
method: "POST",
|
||||||
|
});
|
||||||
|
|
||||||
|
const data = await response.json();
|
||||||
|
|
||||||
|
if (!response.ok) {
|
||||||
|
setError(data.error || "Une erreur est survenue");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
setRegistrations((prev) => ({
|
||||||
|
...prev,
|
||||||
|
[eventId]: true,
|
||||||
|
}));
|
||||||
|
} catch (err) {
|
||||||
|
setError("Une erreur est survenue");
|
||||||
|
} finally {
|
||||||
|
setLoading((prev) => ({ ...prev, [eventId]: false }));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleUnregister = async (eventId: string) => {
|
||||||
|
setLoading((prev) => ({ ...prev, [eventId]: true }));
|
||||||
|
setError("");
|
||||||
|
|
||||||
|
try {
|
||||||
|
const response = await fetch(`/api/events/${eventId}/register`, {
|
||||||
|
method: "DELETE",
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!response.ok) {
|
||||||
|
const data = await response.json();
|
||||||
|
setError(data.error || "Une erreur est survenue");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
setRegistrations((prev) => ({
|
||||||
|
...prev,
|
||||||
|
[eventId]: false,
|
||||||
|
}));
|
||||||
|
} catch (err) {
|
||||||
|
setError("Une erreur est survenue");
|
||||||
|
} finally {
|
||||||
|
setLoading((prev) => ({ ...prev, [eventId]: false }));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section className="relative w-full min-h-screen flex flex-col items-center justify-center overflow-hidden pt-24 pb-16">
|
<section className="relative w-full min-h-screen flex flex-col items-center justify-center overflow-hidden pt-24 pb-16">
|
||||||
{/* Background Image */}
|
{/* Background Image */}
|
||||||
@@ -109,65 +472,50 @@ export default function EventsPageSection({
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Events Grid */}
|
{/* Événements à venir */}
|
||||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
{upcomingEvents.length > 0 && (
|
||||||
{events.map((event) => (
|
<div className="mb-16">
|
||||||
<div
|
<h2 className="text-3xl font-bold text-white mb-8 text-center uppercase tracking-widest">
|
||||||
key={event.id}
|
<span className="bg-gradient-to-r from-green-400 to-green-600 bg-clip-text text-transparent">
|
||||||
className="bg-black/60 border border-pixel-gold/30 rounded-lg overflow-hidden backdrop-blur-sm hover:border-pixel-gold/50 transition group"
|
Événements à venir
|
||||||
>
|
|
||||||
{/* Event Header */}
|
|
||||||
<div
|
|
||||||
className={`h-2 bg-gradient-to-r ${getEventTypeColor(
|
|
||||||
event.type
|
|
||||||
)}`}
|
|
||||||
></div>
|
|
||||||
|
|
||||||
{/* Event Content */}
|
|
||||||
<div className="p-6">
|
|
||||||
{/* Status Badge */}
|
|
||||||
<div className="flex justify-between items-start mb-4">
|
|
||||||
{getStatusBadge(event.status)}
|
|
||||||
<span className="text-pixel-gold text-xs uppercase tracking-widest">
|
|
||||||
{getEventTypeLabel(event.type)}
|
|
||||||
</span>
|
</span>
|
||||||
|
</h2>
|
||||||
|
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||||
|
{upcomingEvents.map(renderEventCard)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Date */}
|
|
||||||
<div className="text-white text-sm font-bold uppercase tracking-widest mb-3">
|
|
||||||
{event.date}
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Event Name */}
|
|
||||||
<h3 className="text-xl font-bold text-white mb-3 group-hover:text-pixel-gold transition">
|
|
||||||
{event.name}
|
|
||||||
</h3>
|
|
||||||
|
|
||||||
{/* Description */}
|
|
||||||
<p className="text-gray-400 text-sm leading-relaxed mb-4">
|
|
||||||
{event.description}
|
|
||||||
</p>
|
|
||||||
|
|
||||||
{/* Action Button */}
|
|
||||||
{event.status === "UPCOMING" && (
|
|
||||||
<button className="w-full px-4 py-2 border border-pixel-gold/50 bg-black/40 text-white uppercase text-xs tracking-widest rounded hover:bg-pixel-gold/10 hover:border-pixel-gold transition">
|
|
||||||
S'inscrire maintenant
|
|
||||||
</button>
|
|
||||||
)}
|
)}
|
||||||
{event.status === "LIVE" && (
|
|
||||||
<button className="w-full px-4 py-2 border border-red-500/50 bg-red-900/20 text-red-400 uppercase text-xs tracking-widest rounded hover:bg-red-900/30 transition animate-pulse">
|
{/* Calendrier */}
|
||||||
Rejoindre en direct
|
<div className="mb-16">
|
||||||
</button>
|
<h2 className="text-2xl font-bold text-white mb-6 text-center uppercase tracking-widest">
|
||||||
|
<span className="bg-gradient-to-r from-pixel-gold via-orange-400 to-pixel-gold bg-clip-text text-transparent">
|
||||||
|
Calendrier
|
||||||
|
</span>
|
||||||
|
</h2>
|
||||||
|
{renderCalendar()}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Événements passés */}
|
||||||
|
{pastEvents.length > 0 && (
|
||||||
|
<div className="mb-16">
|
||||||
|
<h2 className="text-3xl font-bold text-white mb-8 text-center uppercase tracking-widest">
|
||||||
|
<span className="bg-gradient-to-r from-gray-400 to-gray-600 bg-clip-text text-transparent">
|
||||||
|
Événements passés
|
||||||
|
</span>
|
||||||
|
</h2>
|
||||||
|
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||||
|
{pastEvents.map(renderEventCard)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
)}
|
)}
|
||||||
{event.status === "PAST" && (
|
|
||||||
<button className="w-full px-4 py-2 border border-gray-600/50 bg-gray-900/20 text-gray-500 uppercase text-xs tracking-widest rounded cursor-not-allowed">
|
{/* Error Message */}
|
||||||
Événement terminé
|
{error && (
|
||||||
</button>
|
<div className="mt-6 text-center">
|
||||||
|
<p className="text-red-400 text-sm">{error}</p>
|
||||||
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{/* Footer Info */}
|
{/* Footer Info */}
|
||||||
<div className="mt-12 text-center">
|
<div className="mt-12 text-center">
|
||||||
|
|||||||
@@ -32,6 +32,11 @@ export type UserPreferences = Prisma.UserPreferencesModel
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export type Event = Prisma.EventModel
|
export type Event = Prisma.EventModel
|
||||||
|
/**
|
||||||
|
* Model EventRegistration
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
export type EventRegistration = Prisma.EventRegistrationModel
|
||||||
/**
|
/**
|
||||||
* Model SitePreferences
|
* Model SitePreferences
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -54,6 +54,11 @@ export type UserPreferences = Prisma.UserPreferencesModel
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export type Event = Prisma.EventModel
|
export type Event = Prisma.EventModel
|
||||||
|
/**
|
||||||
|
* Model EventRegistration
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
export type EventRegistration = Prisma.EventRegistrationModel
|
||||||
/**
|
/**
|
||||||
* Model SitePreferences
|
* Model SitePreferences
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ const config: runtime.GetPrismaClientConfig = {
|
|||||||
"clientVersion": "7.1.0",
|
"clientVersion": "7.1.0",
|
||||||
"engineVersion": "ab635e6b9d606fa5c8fb8b1a7f909c3c3c1c98ba",
|
"engineVersion": "ab635e6b9d606fa5c8fb8b1a7f909c3c3c1c98ba",
|
||||||
"activeProvider": "sqlite",
|
"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 SUMMIT\n LAUNCH\n FESTIVAL\n COMPETITION\n}\n\nenum EventStatus {\n UPCOMING\n LIVE\n PAST\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 createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n preferences UserPreferences?\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 String\n name String\n description String\n type EventType\n status EventStatus\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([status])\n @@index([date])\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 SUMMIT\n LAUNCH\n FESTIVAL\n COMPETITION\n}\n\nenum EventStatus {\n UPCOMING\n LIVE\n PAST\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 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 String\n name String\n description String\n type EventType\n status EventStatus\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n registrations EventRegistration[]\n\n @@index([status])\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",
|
||||||
"runtimeDataModel": {
|
"runtimeDataModel": {
|
||||||
"models": {},
|
"models": {},
|
||||||
"enums": {},
|
"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\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"preferences\",\"kind\":\"object\",\"type\":\"UserPreferences\",\"relationName\":\"UserToUserPreferences\"}],\"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\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"EventType\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"EventStatus\"},{\"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\":{}}")
|
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\":\"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\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"EventType\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"EventStatus\"},{\"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\":{}}")
|
||||||
|
|
||||||
async function decodeBase64AsWasm(wasmBase64: string): Promise<WebAssembly.Module> {
|
async function decodeBase64AsWasm(wasmBase64: string): Promise<WebAssembly.Module> {
|
||||||
const { Buffer } = await import('node:buffer')
|
const { Buffer } = await import('node:buffer')
|
||||||
@@ -204,6 +204,16 @@ export interface PrismaClient<
|
|||||||
*/
|
*/
|
||||||
get event(): Prisma.EventDelegate<ExtArgs, { omit: OmitOpts }>;
|
get event(): Prisma.EventDelegate<ExtArgs, { omit: OmitOpts }>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* `prisma.eventRegistration`: Exposes CRUD operations for the **EventRegistration** model.
|
||||||
|
* Example usage:
|
||||||
|
* ```ts
|
||||||
|
* // Fetch zero or more EventRegistrations
|
||||||
|
* const eventRegistrations = await prisma.eventRegistration.findMany()
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
get eventRegistration(): Prisma.EventRegistrationDelegate<ExtArgs, { omit: OmitOpts }>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* `prisma.sitePreferences`: Exposes CRUD operations for the **SitePreferences** model.
|
* `prisma.sitePreferences`: Exposes CRUD operations for the **SitePreferences** model.
|
||||||
* Example usage:
|
* Example usage:
|
||||||
|
|||||||
@@ -387,6 +387,7 @@ export const ModelName = {
|
|||||||
User: 'User',
|
User: 'User',
|
||||||
UserPreferences: 'UserPreferences',
|
UserPreferences: 'UserPreferences',
|
||||||
Event: 'Event',
|
Event: 'Event',
|
||||||
|
EventRegistration: 'EventRegistration',
|
||||||
SitePreferences: 'SitePreferences'
|
SitePreferences: 'SitePreferences'
|
||||||
} as const
|
} as const
|
||||||
|
|
||||||
@@ -403,7 +404,7 @@ export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runt
|
|||||||
omit: GlobalOmitOptions
|
omit: GlobalOmitOptions
|
||||||
}
|
}
|
||||||
meta: {
|
meta: {
|
||||||
modelProps: "user" | "userPreferences" | "event" | "sitePreferences"
|
modelProps: "user" | "userPreferences" | "event" | "eventRegistration" | "sitePreferences"
|
||||||
txIsolationLevel: TransactionIsolationLevel
|
txIsolationLevel: TransactionIsolationLevel
|
||||||
}
|
}
|
||||||
model: {
|
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: {
|
SitePreferences: {
|
||||||
payload: Prisma.$SitePreferencesPayload<ExtArgs>
|
payload: Prisma.$SitePreferencesPayload<ExtArgs>
|
||||||
fields: Prisma.SitePreferencesFieldRefs
|
fields: Prisma.SitePreferencesFieldRefs
|
||||||
@@ -787,6 +862,16 @@ export const EventScalarFieldEnum = {
|
|||||||
export type EventScalarFieldEnum = (typeof EventScalarFieldEnum)[keyof typeof 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 = {
|
export const SitePreferencesScalarFieldEnum = {
|
||||||
id: 'id',
|
id: 'id',
|
||||||
homeBackground: 'homeBackground',
|
homeBackground: 'homeBackground',
|
||||||
@@ -967,6 +1052,7 @@ export type GlobalOmitConfig = {
|
|||||||
user?: Prisma.UserOmit
|
user?: Prisma.UserOmit
|
||||||
userPreferences?: Prisma.UserPreferencesOmit
|
userPreferences?: Prisma.UserPreferencesOmit
|
||||||
event?: Prisma.EventOmit
|
event?: Prisma.EventOmit
|
||||||
|
eventRegistration?: Prisma.EventRegistrationOmit
|
||||||
sitePreferences?: Prisma.SitePreferencesOmit
|
sitePreferences?: Prisma.SitePreferencesOmit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ export const ModelName = {
|
|||||||
User: 'User',
|
User: 'User',
|
||||||
UserPreferences: 'UserPreferences',
|
UserPreferences: 'UserPreferences',
|
||||||
Event: 'Event',
|
Event: 'Event',
|
||||||
|
EventRegistration: 'EventRegistration',
|
||||||
SitePreferences: 'SitePreferences'
|
SitePreferences: 'SitePreferences'
|
||||||
} as const
|
} as const
|
||||||
|
|
||||||
@@ -118,6 +119,16 @@ export const EventScalarFieldEnum = {
|
|||||||
export type EventScalarFieldEnum = (typeof EventScalarFieldEnum)[keyof typeof 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 = {
|
export const SitePreferencesScalarFieldEnum = {
|
||||||
id: 'id',
|
id: 'id',
|
||||||
homeBackground: 'homeBackground',
|
homeBackground: 'homeBackground',
|
||||||
|
|||||||
@@ -11,5 +11,6 @@
|
|||||||
export type * from './models/User'
|
export type * from './models/User'
|
||||||
export type * from './models/UserPreferences'
|
export type * from './models/UserPreferences'
|
||||||
export type * from './models/Event'
|
export type * from './models/Event'
|
||||||
|
export type * from './models/EventRegistration'
|
||||||
export type * from './models/SitePreferences'
|
export type * from './models/SitePreferences'
|
||||||
export type * from './commonInputTypes'
|
export type * from './commonInputTypes'
|
||||||
@@ -206,6 +206,7 @@ export type EventWhereInput = {
|
|||||||
status?: Prisma.EnumEventStatusFilter<"Event"> | $Enums.EventStatus
|
status?: Prisma.EnumEventStatusFilter<"Event"> | $Enums.EventStatus
|
||||||
createdAt?: Prisma.DateTimeFilter<"Event"> | Date | string
|
createdAt?: Prisma.DateTimeFilter<"Event"> | Date | string
|
||||||
updatedAt?: Prisma.DateTimeFilter<"Event"> | Date | string
|
updatedAt?: Prisma.DateTimeFilter<"Event"> | Date | string
|
||||||
|
registrations?: Prisma.EventRegistrationListRelationFilter
|
||||||
}
|
}
|
||||||
|
|
||||||
export type EventOrderByWithRelationInput = {
|
export type EventOrderByWithRelationInput = {
|
||||||
@@ -217,6 +218,7 @@ export type EventOrderByWithRelationInput = {
|
|||||||
status?: Prisma.SortOrder
|
status?: Prisma.SortOrder
|
||||||
createdAt?: Prisma.SortOrder
|
createdAt?: Prisma.SortOrder
|
||||||
updatedAt?: Prisma.SortOrder
|
updatedAt?: Prisma.SortOrder
|
||||||
|
registrations?: Prisma.EventRegistrationOrderByRelationAggregateInput
|
||||||
}
|
}
|
||||||
|
|
||||||
export type EventWhereUniqueInput = Prisma.AtLeast<{
|
export type EventWhereUniqueInput = Prisma.AtLeast<{
|
||||||
@@ -231,6 +233,7 @@ export type EventWhereUniqueInput = Prisma.AtLeast<{
|
|||||||
status?: Prisma.EnumEventStatusFilter<"Event"> | $Enums.EventStatus
|
status?: Prisma.EnumEventStatusFilter<"Event"> | $Enums.EventStatus
|
||||||
createdAt?: Prisma.DateTimeFilter<"Event"> | Date | string
|
createdAt?: Prisma.DateTimeFilter<"Event"> | Date | string
|
||||||
updatedAt?: Prisma.DateTimeFilter<"Event"> | Date | string
|
updatedAt?: Prisma.DateTimeFilter<"Event"> | Date | string
|
||||||
|
registrations?: Prisma.EventRegistrationListRelationFilter
|
||||||
}, "id">
|
}, "id">
|
||||||
|
|
||||||
export type EventOrderByWithAggregationInput = {
|
export type EventOrderByWithAggregationInput = {
|
||||||
@@ -270,6 +273,7 @@ export type EventCreateInput = {
|
|||||||
status: $Enums.EventStatus
|
status: $Enums.EventStatus
|
||||||
createdAt?: Date | string
|
createdAt?: Date | string
|
||||||
updatedAt?: Date | string
|
updatedAt?: Date | string
|
||||||
|
registrations?: Prisma.EventRegistrationCreateNestedManyWithoutEventInput
|
||||||
}
|
}
|
||||||
|
|
||||||
export type EventUncheckedCreateInput = {
|
export type EventUncheckedCreateInput = {
|
||||||
@@ -281,6 +285,7 @@ export type EventUncheckedCreateInput = {
|
|||||||
status: $Enums.EventStatus
|
status: $Enums.EventStatus
|
||||||
createdAt?: Date | string
|
createdAt?: Date | string
|
||||||
updatedAt?: Date | string
|
updatedAt?: Date | string
|
||||||
|
registrations?: Prisma.EventRegistrationUncheckedCreateNestedManyWithoutEventInput
|
||||||
}
|
}
|
||||||
|
|
||||||
export type EventUpdateInput = {
|
export type EventUpdateInput = {
|
||||||
@@ -292,6 +297,7 @@ export type EventUpdateInput = {
|
|||||||
status?: Prisma.EnumEventStatusFieldUpdateOperationsInput | $Enums.EventStatus
|
status?: Prisma.EnumEventStatusFieldUpdateOperationsInput | $Enums.EventStatus
|
||||||
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
|
registrations?: Prisma.EventRegistrationUpdateManyWithoutEventNestedInput
|
||||||
}
|
}
|
||||||
|
|
||||||
export type EventUncheckedUpdateInput = {
|
export type EventUncheckedUpdateInput = {
|
||||||
@@ -303,6 +309,7 @@ export type EventUncheckedUpdateInput = {
|
|||||||
status?: Prisma.EnumEventStatusFieldUpdateOperationsInput | $Enums.EventStatus
|
status?: Prisma.EnumEventStatusFieldUpdateOperationsInput | $Enums.EventStatus
|
||||||
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
|
registrations?: Prisma.EventRegistrationUncheckedUpdateManyWithoutEventNestedInput
|
||||||
}
|
}
|
||||||
|
|
||||||
export type EventCreateManyInput = {
|
export type EventCreateManyInput = {
|
||||||
@@ -371,6 +378,11 @@ export type EventMinOrderByAggregateInput = {
|
|||||||
updatedAt?: Prisma.SortOrder
|
updatedAt?: Prisma.SortOrder
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export type EventScalarRelationFilter = {
|
||||||
|
is?: Prisma.EventWhereInput
|
||||||
|
isNot?: Prisma.EventWhereInput
|
||||||
|
}
|
||||||
|
|
||||||
export type EnumEventTypeFieldUpdateOperationsInput = {
|
export type EnumEventTypeFieldUpdateOperationsInput = {
|
||||||
set?: $Enums.EventType
|
set?: $Enums.EventType
|
||||||
}
|
}
|
||||||
@@ -379,6 +391,109 @@ export type EnumEventStatusFieldUpdateOperationsInput = {
|
|||||||
set?: $Enums.EventStatus
|
set?: $Enums.EventStatus
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export type EventCreateNestedOneWithoutRegistrationsInput = {
|
||||||
|
create?: Prisma.XOR<Prisma.EventCreateWithoutRegistrationsInput, Prisma.EventUncheckedCreateWithoutRegistrationsInput>
|
||||||
|
connectOrCreate?: Prisma.EventCreateOrConnectWithoutRegistrationsInput
|
||||||
|
connect?: Prisma.EventWhereUniqueInput
|
||||||
|
}
|
||||||
|
|
||||||
|
export type EventUpdateOneRequiredWithoutRegistrationsNestedInput = {
|
||||||
|
create?: Prisma.XOR<Prisma.EventCreateWithoutRegistrationsInput, Prisma.EventUncheckedCreateWithoutRegistrationsInput>
|
||||||
|
connectOrCreate?: Prisma.EventCreateOrConnectWithoutRegistrationsInput
|
||||||
|
upsert?: Prisma.EventUpsertWithoutRegistrationsInput
|
||||||
|
connect?: Prisma.EventWhereUniqueInput
|
||||||
|
update?: Prisma.XOR<Prisma.XOR<Prisma.EventUpdateToOneWithWhereWithoutRegistrationsInput, Prisma.EventUpdateWithoutRegistrationsInput>, Prisma.EventUncheckedUpdateWithoutRegistrationsInput>
|
||||||
|
}
|
||||||
|
|
||||||
|
export type EventCreateWithoutRegistrationsInput = {
|
||||||
|
id?: string
|
||||||
|
date: string
|
||||||
|
name: string
|
||||||
|
description: string
|
||||||
|
type: $Enums.EventType
|
||||||
|
status: $Enums.EventStatus
|
||||||
|
createdAt?: Date | string
|
||||||
|
updatedAt?: Date | string
|
||||||
|
}
|
||||||
|
|
||||||
|
export type EventUncheckedCreateWithoutRegistrationsInput = {
|
||||||
|
id?: string
|
||||||
|
date: string
|
||||||
|
name: string
|
||||||
|
description: string
|
||||||
|
type: $Enums.EventType
|
||||||
|
status: $Enums.EventStatus
|
||||||
|
createdAt?: Date | string
|
||||||
|
updatedAt?: Date | string
|
||||||
|
}
|
||||||
|
|
||||||
|
export type EventCreateOrConnectWithoutRegistrationsInput = {
|
||||||
|
where: Prisma.EventWhereUniqueInput
|
||||||
|
create: Prisma.XOR<Prisma.EventCreateWithoutRegistrationsInput, Prisma.EventUncheckedCreateWithoutRegistrationsInput>
|
||||||
|
}
|
||||||
|
|
||||||
|
export type EventUpsertWithoutRegistrationsInput = {
|
||||||
|
update: Prisma.XOR<Prisma.EventUpdateWithoutRegistrationsInput, Prisma.EventUncheckedUpdateWithoutRegistrationsInput>
|
||||||
|
create: Prisma.XOR<Prisma.EventCreateWithoutRegistrationsInput, Prisma.EventUncheckedCreateWithoutRegistrationsInput>
|
||||||
|
where?: Prisma.EventWhereInput
|
||||||
|
}
|
||||||
|
|
||||||
|
export type EventUpdateToOneWithWhereWithoutRegistrationsInput = {
|
||||||
|
where?: Prisma.EventWhereInput
|
||||||
|
data: Prisma.XOR<Prisma.EventUpdateWithoutRegistrationsInput, Prisma.EventUncheckedUpdateWithoutRegistrationsInput>
|
||||||
|
}
|
||||||
|
|
||||||
|
export type EventUpdateWithoutRegistrationsInput = {
|
||||||
|
id?: Prisma.StringFieldUpdateOperationsInput | string
|
||||||
|
date?: Prisma.StringFieldUpdateOperationsInput | string
|
||||||
|
name?: Prisma.StringFieldUpdateOperationsInput | string
|
||||||
|
description?: Prisma.StringFieldUpdateOperationsInput | string
|
||||||
|
type?: Prisma.EnumEventTypeFieldUpdateOperationsInput | $Enums.EventType
|
||||||
|
status?: Prisma.EnumEventStatusFieldUpdateOperationsInput | $Enums.EventStatus
|
||||||
|
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
|
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
|
}
|
||||||
|
|
||||||
|
export type EventUncheckedUpdateWithoutRegistrationsInput = {
|
||||||
|
id?: Prisma.StringFieldUpdateOperationsInput | string
|
||||||
|
date?: Prisma.StringFieldUpdateOperationsInput | string
|
||||||
|
name?: Prisma.StringFieldUpdateOperationsInput | string
|
||||||
|
description?: Prisma.StringFieldUpdateOperationsInput | string
|
||||||
|
type?: Prisma.EnumEventTypeFieldUpdateOperationsInput | $Enums.EventType
|
||||||
|
status?: Prisma.EnumEventStatusFieldUpdateOperationsInput | $Enums.EventStatus
|
||||||
|
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
|
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Count Type EventCountOutputType
|
||||||
|
*/
|
||||||
|
|
||||||
|
export type EventCountOutputType = {
|
||||||
|
registrations: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export type EventCountOutputTypeSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
||||||
|
registrations?: boolean | EventCountOutputTypeCountRegistrationsArgs
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* EventCountOutputType without action
|
||||||
|
*/
|
||||||
|
export type EventCountOutputTypeDefaultArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
||||||
|
/**
|
||||||
|
* Select specific fields to fetch from the EventCountOutputType
|
||||||
|
*/
|
||||||
|
select?: Prisma.EventCountOutputTypeSelect<ExtArgs> | null
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* EventCountOutputType without action
|
||||||
|
*/
|
||||||
|
export type EventCountOutputTypeCountRegistrationsArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
||||||
|
where?: Prisma.EventRegistrationWhereInput
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
export type EventSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
|
export type EventSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
|
||||||
@@ -390,6 +505,8 @@ export type EventSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs =
|
|||||||
status?: boolean
|
status?: boolean
|
||||||
createdAt?: boolean
|
createdAt?: boolean
|
||||||
updatedAt?: boolean
|
updatedAt?: boolean
|
||||||
|
registrations?: boolean | Prisma.Event$registrationsArgs<ExtArgs>
|
||||||
|
_count?: boolean | Prisma.EventCountOutputTypeDefaultArgs<ExtArgs>
|
||||||
}, ExtArgs["result"]["event"]>
|
}, ExtArgs["result"]["event"]>
|
||||||
|
|
||||||
export type EventSelectCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
|
export type EventSelectCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
|
||||||
@@ -426,10 +543,18 @@ 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" | "status" | "createdAt" | "updatedAt", ExtArgs["result"]["event"]>
|
export type EventOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "date" | "name" | "description" | "type" | "status" | "createdAt" | "updatedAt", ExtArgs["result"]["event"]>
|
||||||
|
export type EventInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
||||||
|
registrations?: boolean | Prisma.Event$registrationsArgs<ExtArgs>
|
||||||
|
_count?: boolean | Prisma.EventCountOutputTypeDefaultArgs<ExtArgs>
|
||||||
|
}
|
||||||
|
export type EventIncludeCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {}
|
||||||
|
export type EventIncludeUpdateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {}
|
||||||
|
|
||||||
export type $EventPayload<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
export type $EventPayload<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
||||||
name: "Event"
|
name: "Event"
|
||||||
objects: {}
|
objects: {
|
||||||
|
registrations: Prisma.$EventRegistrationPayload<ExtArgs>[]
|
||||||
|
}
|
||||||
scalars: runtime.Types.Extensions.GetPayloadResult<{
|
scalars: runtime.Types.Extensions.GetPayloadResult<{
|
||||||
id: string
|
id: string
|
||||||
date: string
|
date: string
|
||||||
@@ -833,6 +958,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> {
|
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"
|
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>
|
||||||
/**
|
/**
|
||||||
* Attaches callbacks for the resolution and/or rejection of the Promise.
|
* Attaches callbacks for the resolution and/or rejection of the Promise.
|
||||||
* @param onfulfilled The callback to execute when the Promise is resolved.
|
* @param onfulfilled The callback to execute when the Promise is resolved.
|
||||||
@@ -886,6 +1012,10 @@ export type EventFindUniqueArgs<ExtArgs extends runtime.Types.Extensions.Interna
|
|||||||
* Omit specific fields from the Event
|
* Omit specific fields from the Event
|
||||||
*/
|
*/
|
||||||
omit?: Prisma.EventOmit<ExtArgs> | null
|
omit?: Prisma.EventOmit<ExtArgs> | null
|
||||||
|
/**
|
||||||
|
* Choose, which related nodes to fetch as well
|
||||||
|
*/
|
||||||
|
include?: Prisma.EventInclude<ExtArgs> | null
|
||||||
/**
|
/**
|
||||||
* Filter, which Event to fetch.
|
* Filter, which Event to fetch.
|
||||||
*/
|
*/
|
||||||
@@ -904,6 +1034,10 @@ export type EventFindUniqueOrThrowArgs<ExtArgs extends runtime.Types.Extensions.
|
|||||||
* Omit specific fields from the Event
|
* Omit specific fields from the Event
|
||||||
*/
|
*/
|
||||||
omit?: Prisma.EventOmit<ExtArgs> | null
|
omit?: Prisma.EventOmit<ExtArgs> | null
|
||||||
|
/**
|
||||||
|
* Choose, which related nodes to fetch as well
|
||||||
|
*/
|
||||||
|
include?: Prisma.EventInclude<ExtArgs> | null
|
||||||
/**
|
/**
|
||||||
* Filter, which Event to fetch.
|
* Filter, which Event to fetch.
|
||||||
*/
|
*/
|
||||||
@@ -922,6 +1056,10 @@ export type EventFindFirstArgs<ExtArgs extends runtime.Types.Extensions.Internal
|
|||||||
* Omit specific fields from the Event
|
* Omit specific fields from the Event
|
||||||
*/
|
*/
|
||||||
omit?: Prisma.EventOmit<ExtArgs> | null
|
omit?: Prisma.EventOmit<ExtArgs> | null
|
||||||
|
/**
|
||||||
|
* Choose, which related nodes to fetch as well
|
||||||
|
*/
|
||||||
|
include?: Prisma.EventInclude<ExtArgs> | null
|
||||||
/**
|
/**
|
||||||
* Filter, which Event to fetch.
|
* Filter, which Event to fetch.
|
||||||
*/
|
*/
|
||||||
@@ -970,6 +1108,10 @@ export type EventFindFirstOrThrowArgs<ExtArgs extends runtime.Types.Extensions.I
|
|||||||
* Omit specific fields from the Event
|
* Omit specific fields from the Event
|
||||||
*/
|
*/
|
||||||
omit?: Prisma.EventOmit<ExtArgs> | null
|
omit?: Prisma.EventOmit<ExtArgs> | null
|
||||||
|
/**
|
||||||
|
* Choose, which related nodes to fetch as well
|
||||||
|
*/
|
||||||
|
include?: Prisma.EventInclude<ExtArgs> | null
|
||||||
/**
|
/**
|
||||||
* Filter, which Event to fetch.
|
* Filter, which Event to fetch.
|
||||||
*/
|
*/
|
||||||
@@ -1018,6 +1160,10 @@ export type EventFindManyArgs<ExtArgs extends runtime.Types.Extensions.InternalA
|
|||||||
* Omit specific fields from the Event
|
* Omit specific fields from the Event
|
||||||
*/
|
*/
|
||||||
omit?: Prisma.EventOmit<ExtArgs> | null
|
omit?: Prisma.EventOmit<ExtArgs> | null
|
||||||
|
/**
|
||||||
|
* Choose, which related nodes to fetch as well
|
||||||
|
*/
|
||||||
|
include?: Prisma.EventInclude<ExtArgs> | null
|
||||||
/**
|
/**
|
||||||
* Filter, which Events to fetch.
|
* Filter, which Events to fetch.
|
||||||
*/
|
*/
|
||||||
@@ -1061,6 +1207,10 @@ export type EventCreateArgs<ExtArgs extends runtime.Types.Extensions.InternalArg
|
|||||||
* Omit specific fields from the Event
|
* Omit specific fields from the Event
|
||||||
*/
|
*/
|
||||||
omit?: Prisma.EventOmit<ExtArgs> | null
|
omit?: Prisma.EventOmit<ExtArgs> | null
|
||||||
|
/**
|
||||||
|
* Choose, which related nodes to fetch as well
|
||||||
|
*/
|
||||||
|
include?: Prisma.EventInclude<ExtArgs> | null
|
||||||
/**
|
/**
|
||||||
* The data needed to create a Event.
|
* The data needed to create a Event.
|
||||||
*/
|
*/
|
||||||
@@ -1107,6 +1257,10 @@ export type EventUpdateArgs<ExtArgs extends runtime.Types.Extensions.InternalArg
|
|||||||
* Omit specific fields from the Event
|
* Omit specific fields from the Event
|
||||||
*/
|
*/
|
||||||
omit?: Prisma.EventOmit<ExtArgs> | null
|
omit?: Prisma.EventOmit<ExtArgs> | null
|
||||||
|
/**
|
||||||
|
* Choose, which related nodes to fetch as well
|
||||||
|
*/
|
||||||
|
include?: Prisma.EventInclude<ExtArgs> | null
|
||||||
/**
|
/**
|
||||||
* The data needed to update a Event.
|
* The data needed to update a Event.
|
||||||
*/
|
*/
|
||||||
@@ -1173,6 +1327,10 @@ export type EventUpsertArgs<ExtArgs extends runtime.Types.Extensions.InternalArg
|
|||||||
* Omit specific fields from the Event
|
* Omit specific fields from the Event
|
||||||
*/
|
*/
|
||||||
omit?: Prisma.EventOmit<ExtArgs> | null
|
omit?: Prisma.EventOmit<ExtArgs> | null
|
||||||
|
/**
|
||||||
|
* Choose, which related nodes to fetch as well
|
||||||
|
*/
|
||||||
|
include?: Prisma.EventInclude<ExtArgs> | null
|
||||||
/**
|
/**
|
||||||
* The filter to search for the Event to update in case it exists.
|
* The filter to search for the Event to update in case it exists.
|
||||||
*/
|
*/
|
||||||
@@ -1199,6 +1357,10 @@ export type EventDeleteArgs<ExtArgs extends runtime.Types.Extensions.InternalArg
|
|||||||
* Omit specific fields from the Event
|
* Omit specific fields from the Event
|
||||||
*/
|
*/
|
||||||
omit?: Prisma.EventOmit<ExtArgs> | null
|
omit?: Prisma.EventOmit<ExtArgs> | null
|
||||||
|
/**
|
||||||
|
* Choose, which related nodes to fetch as well
|
||||||
|
*/
|
||||||
|
include?: Prisma.EventInclude<ExtArgs> | null
|
||||||
/**
|
/**
|
||||||
* Filter which Event to delete.
|
* Filter which Event to delete.
|
||||||
*/
|
*/
|
||||||
@@ -1219,6 +1381,30 @@ export type EventDeleteManyArgs<ExtArgs extends runtime.Types.Extensions.Interna
|
|||||||
limit?: number
|
limit?: number
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Event.registrations
|
||||||
|
*/
|
||||||
|
export type Event$registrationsArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
||||||
|
/**
|
||||||
|
* Select specific fields to fetch from the EventRegistration
|
||||||
|
*/
|
||||||
|
select?: Prisma.EventRegistrationSelect<ExtArgs> | null
|
||||||
|
/**
|
||||||
|
* Omit specific fields from the EventRegistration
|
||||||
|
*/
|
||||||
|
omit?: Prisma.EventRegistrationOmit<ExtArgs> | null
|
||||||
|
/**
|
||||||
|
* Choose, which related nodes to fetch as well
|
||||||
|
*/
|
||||||
|
include?: Prisma.EventRegistrationInclude<ExtArgs> | null
|
||||||
|
where?: Prisma.EventRegistrationWhereInput
|
||||||
|
orderBy?: Prisma.EventRegistrationOrderByWithRelationInput | Prisma.EventRegistrationOrderByWithRelationInput[]
|
||||||
|
cursor?: Prisma.EventRegistrationWhereUniqueInput
|
||||||
|
take?: number
|
||||||
|
skip?: number
|
||||||
|
distinct?: Prisma.EventRegistrationScalarFieldEnum | Prisma.EventRegistrationScalarFieldEnum[]
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Event without action
|
* Event without action
|
||||||
*/
|
*/
|
||||||
@@ -1231,4 +1417,8 @@ export type EventDefaultArgs<ExtArgs extends runtime.Types.Extensions.InternalAr
|
|||||||
* Omit specific fields from the Event
|
* Omit specific fields from the Event
|
||||||
*/
|
*/
|
||||||
omit?: Prisma.EventOmit<ExtArgs> | null
|
omit?: Prisma.EventOmit<ExtArgs> | null
|
||||||
|
/**
|
||||||
|
* Choose, which related nodes to fetch as well
|
||||||
|
*/
|
||||||
|
include?: Prisma.EventInclude<ExtArgs> | null
|
||||||
}
|
}
|
||||||
|
|||||||
1421
prisma/generated/prisma/models/EventRegistration.ts
Normal file
1421
prisma/generated/prisma/models/EventRegistration.ts
Normal file
File diff suppressed because it is too large
Load Diff
@@ -309,6 +309,7 @@ export type UserWhereInput = {
|
|||||||
createdAt?: Prisma.DateTimeFilter<"User"> | Date | string
|
createdAt?: Prisma.DateTimeFilter<"User"> | Date | string
|
||||||
updatedAt?: Prisma.DateTimeFilter<"User"> | Date | string
|
updatedAt?: Prisma.DateTimeFilter<"User"> | Date | string
|
||||||
preferences?: Prisma.XOR<Prisma.UserPreferencesNullableScalarRelationFilter, Prisma.UserPreferencesWhereInput> | null
|
preferences?: Prisma.XOR<Prisma.UserPreferencesNullableScalarRelationFilter, Prisma.UserPreferencesWhereInput> | null
|
||||||
|
eventRegistrations?: Prisma.EventRegistrationListRelationFilter
|
||||||
}
|
}
|
||||||
|
|
||||||
export type UserOrderByWithRelationInput = {
|
export type UserOrderByWithRelationInput = {
|
||||||
@@ -327,6 +328,7 @@ export type UserOrderByWithRelationInput = {
|
|||||||
createdAt?: Prisma.SortOrder
|
createdAt?: Prisma.SortOrder
|
||||||
updatedAt?: Prisma.SortOrder
|
updatedAt?: Prisma.SortOrder
|
||||||
preferences?: Prisma.UserPreferencesOrderByWithRelationInput
|
preferences?: Prisma.UserPreferencesOrderByWithRelationInput
|
||||||
|
eventRegistrations?: Prisma.EventRegistrationOrderByRelationAggregateInput
|
||||||
}
|
}
|
||||||
|
|
||||||
export type UserWhereUniqueInput = Prisma.AtLeast<{
|
export type UserWhereUniqueInput = Prisma.AtLeast<{
|
||||||
@@ -348,6 +350,7 @@ export type UserWhereUniqueInput = Prisma.AtLeast<{
|
|||||||
createdAt?: Prisma.DateTimeFilter<"User"> | Date | string
|
createdAt?: Prisma.DateTimeFilter<"User"> | Date | string
|
||||||
updatedAt?: Prisma.DateTimeFilter<"User"> | Date | string
|
updatedAt?: Prisma.DateTimeFilter<"User"> | Date | string
|
||||||
preferences?: Prisma.XOR<Prisma.UserPreferencesNullableScalarRelationFilter, Prisma.UserPreferencesWhereInput> | null
|
preferences?: Prisma.XOR<Prisma.UserPreferencesNullableScalarRelationFilter, Prisma.UserPreferencesWhereInput> | null
|
||||||
|
eventRegistrations?: Prisma.EventRegistrationListRelationFilter
|
||||||
}, "id" | "email" | "username">
|
}, "id" | "email" | "username">
|
||||||
|
|
||||||
export type UserOrderByWithAggregationInput = {
|
export type UserOrderByWithAggregationInput = {
|
||||||
@@ -408,6 +411,7 @@ export type UserCreateInput = {
|
|||||||
createdAt?: Date | string
|
createdAt?: Date | string
|
||||||
updatedAt?: Date | string
|
updatedAt?: Date | string
|
||||||
preferences?: Prisma.UserPreferencesCreateNestedOneWithoutUserInput
|
preferences?: Prisma.UserPreferencesCreateNestedOneWithoutUserInput
|
||||||
|
eventRegistrations?: Prisma.EventRegistrationCreateNestedManyWithoutUserInput
|
||||||
}
|
}
|
||||||
|
|
||||||
export type UserUncheckedCreateInput = {
|
export type UserUncheckedCreateInput = {
|
||||||
@@ -426,6 +430,7 @@ export type UserUncheckedCreateInput = {
|
|||||||
createdAt?: Date | string
|
createdAt?: Date | string
|
||||||
updatedAt?: Date | string
|
updatedAt?: Date | string
|
||||||
preferences?: Prisma.UserPreferencesUncheckedCreateNestedOneWithoutUserInput
|
preferences?: Prisma.UserPreferencesUncheckedCreateNestedOneWithoutUserInput
|
||||||
|
eventRegistrations?: Prisma.EventRegistrationUncheckedCreateNestedManyWithoutUserInput
|
||||||
}
|
}
|
||||||
|
|
||||||
export type UserUpdateInput = {
|
export type UserUpdateInput = {
|
||||||
@@ -444,6 +449,7 @@ export type UserUpdateInput = {
|
|||||||
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
preferences?: Prisma.UserPreferencesUpdateOneWithoutUserNestedInput
|
preferences?: Prisma.UserPreferencesUpdateOneWithoutUserNestedInput
|
||||||
|
eventRegistrations?: Prisma.EventRegistrationUpdateManyWithoutUserNestedInput
|
||||||
}
|
}
|
||||||
|
|
||||||
export type UserUncheckedUpdateInput = {
|
export type UserUncheckedUpdateInput = {
|
||||||
@@ -462,6 +468,7 @@ export type UserUncheckedUpdateInput = {
|
|||||||
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
preferences?: Prisma.UserPreferencesUncheckedUpdateOneWithoutUserNestedInput
|
preferences?: Prisma.UserPreferencesUncheckedUpdateOneWithoutUserNestedInput
|
||||||
|
eventRegistrations?: Prisma.EventRegistrationUncheckedUpdateManyWithoutUserNestedInput
|
||||||
}
|
}
|
||||||
|
|
||||||
export type UserCreateManyInput = {
|
export type UserCreateManyInput = {
|
||||||
@@ -627,6 +634,20 @@ export type UserUpdateOneRequiredWithoutPreferencesNestedInput = {
|
|||||||
update?: Prisma.XOR<Prisma.XOR<Prisma.UserUpdateToOneWithWhereWithoutPreferencesInput, Prisma.UserUpdateWithoutPreferencesInput>, Prisma.UserUncheckedUpdateWithoutPreferencesInput>
|
update?: Prisma.XOR<Prisma.XOR<Prisma.UserUpdateToOneWithWhereWithoutPreferencesInput, Prisma.UserUpdateWithoutPreferencesInput>, Prisma.UserUncheckedUpdateWithoutPreferencesInput>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export type UserCreateNestedOneWithoutEventRegistrationsInput = {
|
||||||
|
create?: Prisma.XOR<Prisma.UserCreateWithoutEventRegistrationsInput, Prisma.UserUncheckedCreateWithoutEventRegistrationsInput>
|
||||||
|
connectOrCreate?: Prisma.UserCreateOrConnectWithoutEventRegistrationsInput
|
||||||
|
connect?: Prisma.UserWhereUniqueInput
|
||||||
|
}
|
||||||
|
|
||||||
|
export type UserUpdateOneRequiredWithoutEventRegistrationsNestedInput = {
|
||||||
|
create?: Prisma.XOR<Prisma.UserCreateWithoutEventRegistrationsInput, Prisma.UserUncheckedCreateWithoutEventRegistrationsInput>
|
||||||
|
connectOrCreate?: Prisma.UserCreateOrConnectWithoutEventRegistrationsInput
|
||||||
|
upsert?: Prisma.UserUpsertWithoutEventRegistrationsInput
|
||||||
|
connect?: Prisma.UserWhereUniqueInput
|
||||||
|
update?: Prisma.XOR<Prisma.XOR<Prisma.UserUpdateToOneWithWhereWithoutEventRegistrationsInput, Prisma.UserUpdateWithoutEventRegistrationsInput>, Prisma.UserUncheckedUpdateWithoutEventRegistrationsInput>
|
||||||
|
}
|
||||||
|
|
||||||
export type UserCreateWithoutPreferencesInput = {
|
export type UserCreateWithoutPreferencesInput = {
|
||||||
id?: string
|
id?: string
|
||||||
email: string
|
email: string
|
||||||
@@ -642,6 +663,7 @@ export type UserCreateWithoutPreferencesInput = {
|
|||||||
avatar?: string | null
|
avatar?: string | null
|
||||||
createdAt?: Date | string
|
createdAt?: Date | string
|
||||||
updatedAt?: Date | string
|
updatedAt?: Date | string
|
||||||
|
eventRegistrations?: Prisma.EventRegistrationCreateNestedManyWithoutUserInput
|
||||||
}
|
}
|
||||||
|
|
||||||
export type UserUncheckedCreateWithoutPreferencesInput = {
|
export type UserUncheckedCreateWithoutPreferencesInput = {
|
||||||
@@ -659,6 +681,7 @@ export type UserUncheckedCreateWithoutPreferencesInput = {
|
|||||||
avatar?: string | null
|
avatar?: string | null
|
||||||
createdAt?: Date | string
|
createdAt?: Date | string
|
||||||
updatedAt?: Date | string
|
updatedAt?: Date | string
|
||||||
|
eventRegistrations?: Prisma.EventRegistrationUncheckedCreateNestedManyWithoutUserInput
|
||||||
}
|
}
|
||||||
|
|
||||||
export type UserCreateOrConnectWithoutPreferencesInput = {
|
export type UserCreateOrConnectWithoutPreferencesInput = {
|
||||||
@@ -692,6 +715,7 @@ export type UserUpdateWithoutPreferencesInput = {
|
|||||||
avatar?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
avatar?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
||||||
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
|
eventRegistrations?: Prisma.EventRegistrationUpdateManyWithoutUserNestedInput
|
||||||
}
|
}
|
||||||
|
|
||||||
export type UserUncheckedUpdateWithoutPreferencesInput = {
|
export type UserUncheckedUpdateWithoutPreferencesInput = {
|
||||||
@@ -709,8 +733,126 @@ export type UserUncheckedUpdateWithoutPreferencesInput = {
|
|||||||
avatar?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
avatar?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
||||||
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
|
eventRegistrations?: Prisma.EventRegistrationUncheckedUpdateManyWithoutUserNestedInput
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export type UserCreateWithoutEventRegistrationsInput = {
|
||||||
|
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
|
||||||
|
createdAt?: Date | string
|
||||||
|
updatedAt?: Date | string
|
||||||
|
preferences?: Prisma.UserPreferencesCreateNestedOneWithoutUserInput
|
||||||
|
}
|
||||||
|
|
||||||
|
export type UserUncheckedCreateWithoutEventRegistrationsInput = {
|
||||||
|
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
|
||||||
|
createdAt?: Date | string
|
||||||
|
updatedAt?: Date | string
|
||||||
|
preferences?: Prisma.UserPreferencesUncheckedCreateNestedOneWithoutUserInput
|
||||||
|
}
|
||||||
|
|
||||||
|
export type UserCreateOrConnectWithoutEventRegistrationsInput = {
|
||||||
|
where: Prisma.UserWhereUniqueInput
|
||||||
|
create: Prisma.XOR<Prisma.UserCreateWithoutEventRegistrationsInput, Prisma.UserUncheckedCreateWithoutEventRegistrationsInput>
|
||||||
|
}
|
||||||
|
|
||||||
|
export type UserUpsertWithoutEventRegistrationsInput = {
|
||||||
|
update: Prisma.XOR<Prisma.UserUpdateWithoutEventRegistrationsInput, Prisma.UserUncheckedUpdateWithoutEventRegistrationsInput>
|
||||||
|
create: Prisma.XOR<Prisma.UserCreateWithoutEventRegistrationsInput, Prisma.UserUncheckedCreateWithoutEventRegistrationsInput>
|
||||||
|
where?: Prisma.UserWhereInput
|
||||||
|
}
|
||||||
|
|
||||||
|
export type UserUpdateToOneWithWhereWithoutEventRegistrationsInput = {
|
||||||
|
where?: Prisma.UserWhereInput
|
||||||
|
data: Prisma.XOR<Prisma.UserUpdateWithoutEventRegistrationsInput, Prisma.UserUncheckedUpdateWithoutEventRegistrationsInput>
|
||||||
|
}
|
||||||
|
|
||||||
|
export type UserUpdateWithoutEventRegistrationsInput = {
|
||||||
|
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
|
||||||
|
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
|
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
|
preferences?: Prisma.UserPreferencesUpdateOneWithoutUserNestedInput
|
||||||
|
}
|
||||||
|
|
||||||
|
export type UserUncheckedUpdateWithoutEventRegistrationsInput = {
|
||||||
|
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
|
||||||
|
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
|
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
|
preferences?: Prisma.UserPreferencesUncheckedUpdateOneWithoutUserNestedInput
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Count Type UserCountOutputType
|
||||||
|
*/
|
||||||
|
|
||||||
|
export type UserCountOutputType = {
|
||||||
|
eventRegistrations: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export type UserCountOutputTypeSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
||||||
|
eventRegistrations?: boolean | UserCountOutputTypeCountEventRegistrationsArgs
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UserCountOutputType without action
|
||||||
|
*/
|
||||||
|
export type UserCountOutputTypeDefaultArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
||||||
|
/**
|
||||||
|
* Select specific fields to fetch from the UserCountOutputType
|
||||||
|
*/
|
||||||
|
select?: Prisma.UserCountOutputTypeSelect<ExtArgs> | null
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UserCountOutputType without action
|
||||||
|
*/
|
||||||
|
export type UserCountOutputTypeCountEventRegistrationsArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
||||||
|
where?: Prisma.EventRegistrationWhereInput
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
export type UserSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
|
export type UserSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
|
||||||
@@ -729,6 +871,8 @@ export type UserSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = r
|
|||||||
createdAt?: boolean
|
createdAt?: boolean
|
||||||
updatedAt?: boolean
|
updatedAt?: boolean
|
||||||
preferences?: boolean | Prisma.User$preferencesArgs<ExtArgs>
|
preferences?: boolean | Prisma.User$preferencesArgs<ExtArgs>
|
||||||
|
eventRegistrations?: boolean | Prisma.User$eventRegistrationsArgs<ExtArgs>
|
||||||
|
_count?: boolean | Prisma.UserCountOutputTypeDefaultArgs<ExtArgs>
|
||||||
}, ExtArgs["result"]["user"]>
|
}, ExtArgs["result"]["user"]>
|
||||||
|
|
||||||
export type UserSelectCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
|
export type UserSelectCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
|
||||||
@@ -785,6 +929,8 @@ export type UserSelectScalar = {
|
|||||||
export type UserOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "email" | "password" | "username" | "role" | "score" | "level" | "hp" | "maxHp" | "xp" | "maxXp" | "avatar" | "createdAt" | "updatedAt", ExtArgs["result"]["user"]>
|
export type UserOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "email" | "password" | "username" | "role" | "score" | "level" | "hp" | "maxHp" | "xp" | "maxXp" | "avatar" | "createdAt" | "updatedAt", ExtArgs["result"]["user"]>
|
||||||
export type UserInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
export type UserInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
||||||
preferences?: boolean | Prisma.User$preferencesArgs<ExtArgs>
|
preferences?: boolean | Prisma.User$preferencesArgs<ExtArgs>
|
||||||
|
eventRegistrations?: boolean | Prisma.User$eventRegistrationsArgs<ExtArgs>
|
||||||
|
_count?: boolean | Prisma.UserCountOutputTypeDefaultArgs<ExtArgs>
|
||||||
}
|
}
|
||||||
export type UserIncludeCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {}
|
export type UserIncludeCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {}
|
||||||
export type UserIncludeUpdateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {}
|
export type UserIncludeUpdateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {}
|
||||||
@@ -793,6 +939,7 @@ export type $UserPayload<ExtArgs extends runtime.Types.Extensions.InternalArgs =
|
|||||||
name: "User"
|
name: "User"
|
||||||
objects: {
|
objects: {
|
||||||
preferences: Prisma.$UserPreferencesPayload<ExtArgs> | null
|
preferences: Prisma.$UserPreferencesPayload<ExtArgs> | null
|
||||||
|
eventRegistrations: Prisma.$EventRegistrationPayload<ExtArgs>[]
|
||||||
}
|
}
|
||||||
scalars: runtime.Types.Extensions.GetPayloadResult<{
|
scalars: runtime.Types.Extensions.GetPayloadResult<{
|
||||||
id: string
|
id: string
|
||||||
@@ -1204,6 +1351,7 @@ readonly fields: UserFieldRefs;
|
|||||||
export interface Prisma__UserClient<T, Null = never, ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
|
export interface Prisma__UserClient<T, Null = never, ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
|
||||||
readonly [Symbol.toStringTag]: "PrismaPromise"
|
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>
|
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>
|
||||||
/**
|
/**
|
||||||
* Attaches callbacks for the resolution and/or rejection of the Promise.
|
* Attaches callbacks for the resolution and/or rejection of the Promise.
|
||||||
* @param onfulfilled The callback to execute when the Promise is resolved.
|
* @param onfulfilled The callback to execute when the Promise is resolved.
|
||||||
@@ -1651,6 +1799,30 @@ export type User$preferencesArgs<ExtArgs extends runtime.Types.Extensions.Intern
|
|||||||
where?: Prisma.UserPreferencesWhereInput
|
where?: Prisma.UserPreferencesWhereInput
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* User.eventRegistrations
|
||||||
|
*/
|
||||||
|
export type User$eventRegistrationsArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
||||||
|
/**
|
||||||
|
* Select specific fields to fetch from the EventRegistration
|
||||||
|
*/
|
||||||
|
select?: Prisma.EventRegistrationSelect<ExtArgs> | null
|
||||||
|
/**
|
||||||
|
* Omit specific fields from the EventRegistration
|
||||||
|
*/
|
||||||
|
omit?: Prisma.EventRegistrationOmit<ExtArgs> | null
|
||||||
|
/**
|
||||||
|
* Choose, which related nodes to fetch as well
|
||||||
|
*/
|
||||||
|
include?: Prisma.EventRegistrationInclude<ExtArgs> | null
|
||||||
|
where?: Prisma.EventRegistrationWhereInput
|
||||||
|
orderBy?: Prisma.EventRegistrationOrderByWithRelationInput | Prisma.EventRegistrationOrderByWithRelationInput[]
|
||||||
|
cursor?: Prisma.EventRegistrationWhereUniqueInput
|
||||||
|
take?: number
|
||||||
|
skip?: number
|
||||||
|
distinct?: Prisma.EventRegistrationScalarFieldEnum | Prisma.EventRegistrationScalarFieldEnum[]
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* User without action
|
* User without action
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "EventRegistration" (
|
||||||
|
"id" TEXT NOT NULL PRIMARY KEY,
|
||||||
|
"userId" TEXT NOT NULL,
|
||||||
|
"eventId" TEXT NOT NULL,
|
||||||
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
CONSTRAINT "EventRegistration_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT "EventRegistration_eventId_fkey" FOREIGN KEY ("eventId") REFERENCES "Event" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "EventRegistration_userId_idx" ON "EventRegistration"("userId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "EventRegistration_eventId_idx" ON "EventRegistration"("eventId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE UNIQUE INDEX "EventRegistration_userId_eventId_key" ON "EventRegistration"("userId", "eventId");
|
||||||
@@ -44,6 +44,7 @@ model User {
|
|||||||
createdAt DateTime @default(now())
|
createdAt DateTime @default(now())
|
||||||
updatedAt DateTime @updatedAt
|
updatedAt DateTime @updatedAt
|
||||||
preferences UserPreferences?
|
preferences UserPreferences?
|
||||||
|
eventRegistrations EventRegistration[]
|
||||||
|
|
||||||
@@index([score])
|
@@index([score])
|
||||||
@@index([email])
|
@@index([email])
|
||||||
@@ -75,11 +76,25 @@ model Event {
|
|||||||
status EventStatus
|
status EventStatus
|
||||||
createdAt DateTime @default(now())
|
createdAt DateTime @default(now())
|
||||||
updatedAt DateTime @updatedAt
|
updatedAt DateTime @updatedAt
|
||||||
|
registrations EventRegistration[]
|
||||||
|
|
||||||
@@index([status])
|
@@index([status])
|
||||||
@@index([date])
|
@@index([date])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
model EventRegistration {
|
||||||
|
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)
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
|
||||||
|
@@unique([userId, eventId])
|
||||||
|
@@index([userId])
|
||||||
|
@@index([eventId])
|
||||||
|
}
|
||||||
|
|
||||||
model SitePreferences {
|
model SitePreferences {
|
||||||
id String @id @default("global")
|
id String @id @default("global")
|
||||||
homeBackground String?
|
homeBackground String?
|
||||||
|
|||||||
Reference in New Issue
Block a user