generator client { provider = "prisma-client" output = "../app/generated/prisma" } datasource db { provider = "postgresql" } model User { id String @id @default(cuid()) name String email String @unique password String image String? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt trips Trip[] participations TripParticipant[] } model Trip { id String @id @default(cuid()) title String description String? mountain String location String date DateTime endDate DateTime? maxParticipants Int price Int status TripStatus @default(OPEN) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt organizerId String organizer User @relation(fields: [organizerId], references: [id]) participants TripParticipant[] images TripImage[] } model TripImage { id String @id @default(cuid()) url String caption String? order Int @default(0) tripId String trip Trip @relation(fields: [tripId], references: [id], onDelete: Cascade) } model TripParticipant { id String @id @default(cuid()) status ParticipantStatus @default(PENDING) createdAt DateTime @default(now()) tripId String trip Trip @relation(fields: [tripId], references: [id]) userId String user User @relation(fields: [userId], references: [id]) @@unique([tripId, userId]) } enum TripStatus { OPEN FULL CLOSED COMPLETED } enum ParticipantStatus { PENDING CONFIRMED CANCELLED }