diff --git a/app/generated/prisma/browser.ts b/app/generated/prisma/browser.ts index bb40f02..eae585e 100644 --- a/app/generated/prisma/browser.ts +++ b/app/generated/prisma/browser.ts @@ -22,6 +22,12 @@ export * from './enums'; * */ export type User = Prisma.UserModel +/** + * Model UserProfile + * Profil sosial publik. Berisi info yang user pilih untuk dibagikan ke peserta lain + * (bio, kota, minat). Tidak menyimpan data sensitif — KYC tetap di OrganizerVerification. + */ +export type UserProfile = Prisma.UserProfileModel /** * Model Account * Tabel link akun OAuth pihak ketiga (Google, dst). Diisi oleh PrismaAdapter NextAuth. diff --git a/app/generated/prisma/client.ts b/app/generated/prisma/client.ts index 0a0dfa6..19ee8dc 100644 --- a/app/generated/prisma/client.ts +++ b/app/generated/prisma/client.ts @@ -46,6 +46,12 @@ export { Prisma } * */ export type User = Prisma.UserModel +/** + * Model UserProfile + * Profil sosial publik. Berisi info yang user pilih untuk dibagikan ke peserta lain + * (bio, kota, minat). Tidak menyimpan data sensitif — KYC tetap di OrganizerVerification. + */ +export type UserProfile = Prisma.UserProfileModel /** * Model Account * Tabel link akun OAuth pihak ketiga (Google, dst). Diisi oleh PrismaAdapter NextAuth. diff --git a/app/generated/prisma/internal/class.ts b/app/generated/prisma/internal/class.ts index 93ad4d1..f31d44d 100644 --- a/app/generated/prisma/internal/class.ts +++ b/app/generated/prisma/internal/class.ts @@ -20,7 +20,7 @@ const config: runtime.GetPrismaClientConfig = { "clientVersion": "7.8.0", "engineVersion": "3c6e192761c0362d496ed980de936e2f3cebcd3a", "activeProvider": "postgresql", - "inlineSchema": "generator client {\n provider = \"prisma-client\"\n output = \"../app/generated/prisma\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n}\n\nmodel User {\n id String @id @default(cuid())\n name String\n email String @unique\n /// Hash bcrypt. Null untuk user yang sign-in via OAuth (mis. Google).\n password String?\n image String?\n /// Diisi PrismaAdapter NextAuth saat email diverifikasi provider OAuth (Google selalu sudah verified).\n emailVerified DateTime?\n /// Apakah user telah menyetujui Syarat & Ketentuan dan Kebijakan Privasi\n acceptedTermsAndPrivacy Boolean @default(false)\n /// Waktu user menyetujui Syarat & Ketentuan dan Kebijakan Privasi\n acceptedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n accounts Account[]\n trips Trip[]\n participations TripParticipant[]\n tripReviews TripReview[]\n\n organizerVerification OrganizerVerification? @relation(\"OrganizerVerificationOwner\")\n reviewedVerifications OrganizerVerification[] @relation(\"OrganizerVerificationReviewer\")\n}\n\n/// Tabel link akun OAuth pihak ketiga (Google, dst). Diisi oleh PrismaAdapter NextAuth.\n/// Session tidak pakai DB — kita pakai JWT, jadi Session/VerificationToken tidak perlu.\nmodel Account {\n id String @id @default(cuid())\n userId String\n type String\n provider String\n providerAccountId String\n refresh_token String?\n access_token String?\n expires_at Int?\n token_type String?\n scope String?\n id_token String?\n session_state String?\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([provider, providerAccountId])\n}\n\nmodel OrganizerVerification {\n id String @id @default(cuid())\n userId String @unique\n user User @relation(\"OrganizerVerificationOwner\", fields: [userId], references: [id], onDelete: Cascade)\n\n /// Nama lengkap sesuai KTP\n fullName String\n /// NIK terenkripsi (AES-256-GCM, base64). Plaintext tidak disimpan.\n nikEncrypted String\n /// HMAC-SHA256(NIK + pepper) untuk uniqueness lookup tanpa membuka plaintext.\n nikHash String @unique\n birthDate DateTime\n address String\n\n /// Storage key foto KTP (mis. `ktp/.jpg`). File disimpan terenkripsi di luar /public.\n ktpImageKey String\n /// Storage key selfie memegang KTP.\n selfieKey String\n\n bankName String\n bankAccountNumber String\n bankAccountName String\n\n status VerificationStatus @default(PENDING)\n rejectionReason String?\n reviewedAt DateTime?\n reviewedById String?\n reviewedBy User? @relation(\"OrganizerVerificationReviewer\", fields: [reviewedById], references: [id])\n verifiedAt DateTime?\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nenum VerificationStatus {\n PENDING\n APPROVED\n REJECTED\n}\n\nmodel Trip {\n id String @id @default(cuid())\n title String\n description String?\n /// Kategori aktivitas.\n category ActivityCategory @default(HIKING)\n /// Destinasi/subjek aktivitas — interpretasinya tergantung kategori (gunung untuk HIKING, spot untuk DIVING, venue untuk CONCERT, tema untuk WORKSHOP, dst).\n destination String\n location String\n /// Titik kumpul / meeting point (teks bebas)\n meetingPoint String?\n /// Itinerary hari per hari (teks bebas, bullet OK)\n itinerary String?\n /// Yang termasuk harga (teks bebas)\n whatsIncluded String?\n /// Yang tidak termasuk (teks bebas)\n whatsExcluded String?\n date DateTime\n endDate DateTime?\n maxParticipants Int\n price Int\n status TripStatus @default(OPEN)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n organizerId String\n organizer User @relation(fields: [organizerId], references: [id])\n\n participants TripParticipant[]\n images TripImage[]\n reviews TripReview[]\n\n @@index([category, status, date])\n}\n\nmodel TripReview {\n id String @id @default(cuid())\n rating Int\n comment String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n tripId String\n trip Trip @relation(fields: [tripId], references: [id], onDelete: Cascade)\n\n userId String\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([tripId, userId])\n}\n\nmodel TripImage {\n id String @id @default(cuid())\n url String\n caption String?\n order Int @default(0)\n\n tripId String\n trip Trip @relation(fields: [tripId], references: [id], onDelete: Cascade)\n}\n\nmodel TripParticipant {\n id String @id @default(cuid())\n status ParticipantStatus @default(PENDING)\n createdAt DateTime @default(now())\n /// Peserta menekan \"Saya sudah bayar\" (pembayaran manual)\n markedPaidAt DateTime?\n /// Organizer mengonfirmasi uang sudah masuk\n paymentConfirmedAt DateTime?\n\n tripId String\n trip Trip @relation(fields: [tripId], references: [id])\n\n userId String\n user User @relation(fields: [userId], references: [id])\n\n @@unique([tripId, userId])\n}\n\nenum TripStatus {\n OPEN\n FULL\n CLOSED\n COMPLETED\n}\n\nenum ActivityCategory {\n HIKING\n CAMPING\n SNORKELING\n DIVING\n ISLAND_HOPPING\n CITY_TRIP\n CULINARY\n CONCERT\n WORKSHOP\n RETREAT\n}\n\nenum ParticipantStatus {\n PENDING\n CONFIRMED\n CANCELLED\n}\n", + "inlineSchema": "generator client {\n provider = \"prisma-client\"\n output = \"../app/generated/prisma\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n}\n\nmodel User {\n id String @id @default(cuid())\n name String\n email String @unique\n /// Hash bcrypt. Null untuk user yang sign-in via OAuth (mis. Google).\n password String?\n image String?\n /// Diisi PrismaAdapter NextAuth saat email diverifikasi provider OAuth (Google selalu sudah verified).\n emailVerified DateTime?\n /// Apakah user telah menyetujui Syarat & Ketentuan dan Kebijakan Privasi\n acceptedTermsAndPrivacy Boolean @default(false)\n /// Waktu user menyetujui Syarat & Ketentuan dan Kebijakan Privasi\n acceptedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n accounts Account[]\n trips Trip[]\n participations TripParticipant[]\n tripReviews TripReview[]\n\n organizerVerification OrganizerVerification? @relation(\"OrganizerVerificationOwner\")\n reviewedVerifications OrganizerVerification[] @relation(\"OrganizerVerificationReviewer\")\n\n profile UserProfile?\n}\n\n/// Profil sosial publik. Berisi info yang user pilih untuk dibagikan ke peserta lain\n/// (bio, kota, minat). Tidak menyimpan data sensitif — KYC tetap di OrganizerVerification.\nmodel UserProfile {\n id String @id @default(cuid())\n userId String @unique\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n /// Bio singkat, teks bebas\n bio String?\n /// Kota domisili (teks bebas, mis. \"Bandung\", \"Jakarta Selatan\")\n city String?\n /// Tag minat aktivitas (mis. [\"hiking\", \"fotografi\", \"yoga\"])\n interests String[] @default([])\n /// Username Instagram (tanpa @, opsional)\n instagram String?\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\n/// Tabel link akun OAuth pihak ketiga (Google, dst). Diisi oleh PrismaAdapter NextAuth.\n/// Session tidak pakai DB — kita pakai JWT, jadi Session/VerificationToken tidak perlu.\nmodel Account {\n id String @id @default(cuid())\n userId String\n type String\n provider String\n providerAccountId String\n refresh_token String?\n access_token String?\n expires_at Int?\n token_type String?\n scope String?\n id_token String?\n session_state String?\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([provider, providerAccountId])\n}\n\nmodel OrganizerVerification {\n id String @id @default(cuid())\n userId String @unique\n user User @relation(\"OrganizerVerificationOwner\", fields: [userId], references: [id], onDelete: Cascade)\n\n /// Nama lengkap sesuai KTP\n fullName String\n /// NIK terenkripsi (AES-256-GCM, base64). Plaintext tidak disimpan.\n nikEncrypted String\n /// HMAC-SHA256(NIK + pepper) untuk uniqueness lookup tanpa membuka plaintext.\n nikHash String @unique\n birthDate DateTime\n address String\n\n /// Storage key foto KTP (mis. `ktp/.jpg`). File disimpan terenkripsi di luar /public.\n ktpImageKey String\n /// Storage key selfie memegang KTP.\n selfieKey String\n\n bankName String\n bankAccountNumber String\n bankAccountName String\n\n status VerificationStatus @default(PENDING)\n rejectionReason String?\n reviewedAt DateTime?\n reviewedById String?\n reviewedBy User? @relation(\"OrganizerVerificationReviewer\", fields: [reviewedById], references: [id])\n verifiedAt DateTime?\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nenum VerificationStatus {\n PENDING\n APPROVED\n REJECTED\n}\n\nmodel Trip {\n id String @id @default(cuid())\n title String\n description String?\n /// Kategori aktivitas.\n category ActivityCategory @default(HIKING)\n /// Destinasi/subjek aktivitas — interpretasinya tergantung kategori (gunung untuk HIKING, spot untuk DIVING, venue untuk CONCERT, tema untuk WORKSHOP, dst).\n destination String\n location String\n /// Titik kumpul / meeting point (teks bebas)\n meetingPoint String?\n /// Itinerary hari per hari (teks bebas, bullet OK)\n itinerary String?\n /// Yang termasuk harga (teks bebas)\n whatsIncluded String?\n /// Yang tidak termasuk (teks bebas)\n whatsExcluded String?\n date DateTime\n endDate DateTime?\n maxParticipants Int\n price Int\n status TripStatus @default(OPEN)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n organizerId String\n organizer User @relation(fields: [organizerId], references: [id])\n\n participants TripParticipant[]\n images TripImage[]\n reviews TripReview[]\n\n @@index([category, status, date])\n}\n\nmodel TripReview {\n id String @id @default(cuid())\n rating Int\n comment String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n tripId String\n trip Trip @relation(fields: [tripId], references: [id], onDelete: Cascade)\n\n userId String\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([tripId, userId])\n}\n\nmodel TripImage {\n id String @id @default(cuid())\n url String\n caption String?\n order Int @default(0)\n\n tripId String\n trip Trip @relation(fields: [tripId], references: [id], onDelete: Cascade)\n}\n\nmodel TripParticipant {\n id String @id @default(cuid())\n status ParticipantStatus @default(PENDING)\n createdAt DateTime @default(now())\n /// Peserta menekan \"Saya sudah bayar\" (pembayaran manual)\n markedPaidAt DateTime?\n /// Organizer mengonfirmasi uang sudah masuk\n paymentConfirmedAt DateTime?\n\n tripId String\n trip Trip @relation(fields: [tripId], references: [id])\n\n userId String\n user User @relation(fields: [userId], references: [id])\n\n @@unique([tripId, userId])\n}\n\nenum TripStatus {\n OPEN\n FULL\n CLOSED\n COMPLETED\n}\n\nenum ActivityCategory {\n HIKING\n CAMPING\n SNORKELING\n DIVING\n ISLAND_HOPPING\n CITY_TRIP\n CULINARY\n CONCERT\n WORKSHOP\n RETREAT\n}\n\nenum ParticipantStatus {\n PENDING\n CONFIRMED\n CANCELLED\n}\n", "runtimeDataModel": { "models": {}, "enums": {}, @@ -32,10 +32,10 @@ const config: runtime.GetPrismaClientConfig = { } } -config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"image\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"emailVerified\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"acceptedTermsAndPrivacy\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"acceptedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToUser\"},{\"name\":\"trips\",\"kind\":\"object\",\"type\":\"Trip\",\"relationName\":\"TripToUser\"},{\"name\":\"participations\",\"kind\":\"object\",\"type\":\"TripParticipant\",\"relationName\":\"TripParticipantToUser\"},{\"name\":\"tripReviews\",\"kind\":\"object\",\"type\":\"TripReview\",\"relationName\":\"TripReviewToUser\"},{\"name\":\"organizerVerification\",\"kind\":\"object\",\"type\":\"OrganizerVerification\",\"relationName\":\"OrganizerVerificationOwner\"},{\"name\":\"reviewedVerifications\",\"kind\":\"object\",\"type\":\"OrganizerVerification\",\"relationName\":\"OrganizerVerificationReviewer\"}],\"dbName\":null},\"Account\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"providerAccountId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"access_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"token_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"id_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"session_state\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AccountToUser\"}],\"dbName\":null},\"OrganizerVerification\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"OrganizerVerificationOwner\"},{\"name\":\"fullName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"nikEncrypted\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"nikHash\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"birthDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ktpImageKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"selfieKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"bankName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"bankAccountNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"bankAccountName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"VerificationStatus\"},{\"name\":\"rejectionReason\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"reviewedById\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewedBy\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"OrganizerVerificationReviewer\"},{\"name\":\"verifiedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"Trip\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category\",\"kind\":\"enum\",\"type\":\"ActivityCategory\"},{\"name\":\"destination\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"meetingPoint\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"itinerary\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"whatsIncluded\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"whatsExcluded\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"endDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"maxParticipants\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"price\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"TripStatus\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organizerId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organizer\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"TripToUser\"},{\"name\":\"participants\",\"kind\":\"object\",\"type\":\"TripParticipant\",\"relationName\":\"TripToTripParticipant\"},{\"name\":\"images\",\"kind\":\"object\",\"type\":\"TripImage\",\"relationName\":\"TripToTripImage\"},{\"name\":\"reviews\",\"kind\":\"object\",\"type\":\"TripReview\",\"relationName\":\"TripToTripReview\"}],\"dbName\":null},\"TripReview\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"rating\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"tripId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"trip\",\"kind\":\"object\",\"type\":\"Trip\",\"relationName\":\"TripToTripReview\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"TripReviewToUser\"}],\"dbName\":null},\"TripImage\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"caption\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"order\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"tripId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"trip\",\"kind\":\"object\",\"type\":\"Trip\",\"relationName\":\"TripToTripImage\"}],\"dbName\":null},\"TripParticipant\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ParticipantStatus\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"markedPaidAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"paymentConfirmedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"tripId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"trip\",\"kind\":\"object\",\"type\":\"Trip\",\"relationName\":\"TripToTripParticipant\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"TripParticipantToUser\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}") +config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"image\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"emailVerified\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"acceptedTermsAndPrivacy\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"acceptedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToUser\"},{\"name\":\"trips\",\"kind\":\"object\",\"type\":\"Trip\",\"relationName\":\"TripToUser\"},{\"name\":\"participations\",\"kind\":\"object\",\"type\":\"TripParticipant\",\"relationName\":\"TripParticipantToUser\"},{\"name\":\"tripReviews\",\"kind\":\"object\",\"type\":\"TripReview\",\"relationName\":\"TripReviewToUser\"},{\"name\":\"organizerVerification\",\"kind\":\"object\",\"type\":\"OrganizerVerification\",\"relationName\":\"OrganizerVerificationOwner\"},{\"name\":\"reviewedVerifications\",\"kind\":\"object\",\"type\":\"OrganizerVerification\",\"relationName\":\"OrganizerVerificationReviewer\"},{\"name\":\"profile\",\"kind\":\"object\",\"type\":\"UserProfile\",\"relationName\":\"UserToUserProfile\"}],\"dbName\":null},\"UserProfile\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserToUserProfile\"},{\"name\":\"bio\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"city\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interests\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"instagram\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"Account\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"providerAccountId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"access_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"token_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"id_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"session_state\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AccountToUser\"}],\"dbName\":null},\"OrganizerVerification\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"OrganizerVerificationOwner\"},{\"name\":\"fullName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"nikEncrypted\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"nikHash\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"birthDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ktpImageKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"selfieKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"bankName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"bankAccountNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"bankAccountName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"VerificationStatus\"},{\"name\":\"rejectionReason\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"reviewedById\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewedBy\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"OrganizerVerificationReviewer\"},{\"name\":\"verifiedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"Trip\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category\",\"kind\":\"enum\",\"type\":\"ActivityCategory\"},{\"name\":\"destination\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"meetingPoint\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"itinerary\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"whatsIncluded\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"whatsExcluded\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"endDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"maxParticipants\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"price\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"TripStatus\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organizerId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organizer\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"TripToUser\"},{\"name\":\"participants\",\"kind\":\"object\",\"type\":\"TripParticipant\",\"relationName\":\"TripToTripParticipant\"},{\"name\":\"images\",\"kind\":\"object\",\"type\":\"TripImage\",\"relationName\":\"TripToTripImage\"},{\"name\":\"reviews\",\"kind\":\"object\",\"type\":\"TripReview\",\"relationName\":\"TripToTripReview\"}],\"dbName\":null},\"TripReview\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"rating\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"tripId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"trip\",\"kind\":\"object\",\"type\":\"Trip\",\"relationName\":\"TripToTripReview\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"TripReviewToUser\"}],\"dbName\":null},\"TripImage\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"caption\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"order\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"tripId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"trip\",\"kind\":\"object\",\"type\":\"Trip\",\"relationName\":\"TripToTripImage\"}],\"dbName\":null},\"TripParticipant\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ParticipantStatus\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"markedPaidAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"paymentConfirmedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"tripId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"trip\",\"kind\":\"object\",\"type\":\"Trip\",\"relationName\":\"TripToTripParticipant\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"TripParticipantToUser\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}") config.parameterizationSchema = { - strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"user\",\"accounts\",\"organizer\",\"trip\",\"participants\",\"images\",\"reviews\",\"_count\",\"trips\",\"participations\",\"tripReviews\",\"reviewedBy\",\"organizerVerification\",\"reviewedVerifications\",\"User.findUnique\",\"User.findUniqueOrThrow\",\"User.findFirst\",\"User.findFirstOrThrow\",\"User.findMany\",\"data\",\"User.createOne\",\"User.createMany\",\"User.createManyAndReturn\",\"User.updateOne\",\"User.updateMany\",\"User.updateManyAndReturn\",\"create\",\"update\",\"User.upsertOne\",\"User.deleteOne\",\"User.deleteMany\",\"having\",\"_min\",\"_max\",\"User.groupBy\",\"User.aggregate\",\"Account.findUnique\",\"Account.findUniqueOrThrow\",\"Account.findFirst\",\"Account.findFirstOrThrow\",\"Account.findMany\",\"Account.createOne\",\"Account.createMany\",\"Account.createManyAndReturn\",\"Account.updateOne\",\"Account.updateMany\",\"Account.updateManyAndReturn\",\"Account.upsertOne\",\"Account.deleteOne\",\"Account.deleteMany\",\"_avg\",\"_sum\",\"Account.groupBy\",\"Account.aggregate\",\"OrganizerVerification.findUnique\",\"OrganizerVerification.findUniqueOrThrow\",\"OrganizerVerification.findFirst\",\"OrganizerVerification.findFirstOrThrow\",\"OrganizerVerification.findMany\",\"OrganizerVerification.createOne\",\"OrganizerVerification.createMany\",\"OrganizerVerification.createManyAndReturn\",\"OrganizerVerification.updateOne\",\"OrganizerVerification.updateMany\",\"OrganizerVerification.updateManyAndReturn\",\"OrganizerVerification.upsertOne\",\"OrganizerVerification.deleteOne\",\"OrganizerVerification.deleteMany\",\"OrganizerVerification.groupBy\",\"OrganizerVerification.aggregate\",\"Trip.findUnique\",\"Trip.findUniqueOrThrow\",\"Trip.findFirst\",\"Trip.findFirstOrThrow\",\"Trip.findMany\",\"Trip.createOne\",\"Trip.createMany\",\"Trip.createManyAndReturn\",\"Trip.updateOne\",\"Trip.updateMany\",\"Trip.updateManyAndReturn\",\"Trip.upsertOne\",\"Trip.deleteOne\",\"Trip.deleteMany\",\"Trip.groupBy\",\"Trip.aggregate\",\"TripReview.findUnique\",\"TripReview.findUniqueOrThrow\",\"TripReview.findFirst\",\"TripReview.findFirstOrThrow\",\"TripReview.findMany\",\"TripReview.createOne\",\"TripReview.createMany\",\"TripReview.createManyAndReturn\",\"TripReview.updateOne\",\"TripReview.updateMany\",\"TripReview.updateManyAndReturn\",\"TripReview.upsertOne\",\"TripReview.deleteOne\",\"TripReview.deleteMany\",\"TripReview.groupBy\",\"TripReview.aggregate\",\"TripImage.findUnique\",\"TripImage.findUniqueOrThrow\",\"TripImage.findFirst\",\"TripImage.findFirstOrThrow\",\"TripImage.findMany\",\"TripImage.createOne\",\"TripImage.createMany\",\"TripImage.createManyAndReturn\",\"TripImage.updateOne\",\"TripImage.updateMany\",\"TripImage.updateManyAndReturn\",\"TripImage.upsertOne\",\"TripImage.deleteOne\",\"TripImage.deleteMany\",\"TripImage.groupBy\",\"TripImage.aggregate\",\"TripParticipant.findUnique\",\"TripParticipant.findUniqueOrThrow\",\"TripParticipant.findFirst\",\"TripParticipant.findFirstOrThrow\",\"TripParticipant.findMany\",\"TripParticipant.createOne\",\"TripParticipant.createMany\",\"TripParticipant.createManyAndReturn\",\"TripParticipant.updateOne\",\"TripParticipant.updateMany\",\"TripParticipant.updateManyAndReturn\",\"TripParticipant.upsertOne\",\"TripParticipant.deleteOne\",\"TripParticipant.deleteMany\",\"TripParticipant.groupBy\",\"TripParticipant.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"ParticipantStatus\",\"status\",\"createdAt\",\"markedPaidAt\",\"paymentConfirmedAt\",\"tripId\",\"userId\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"contains\",\"startsWith\",\"endsWith\",\"url\",\"caption\",\"order\",\"rating\",\"comment\",\"updatedAt\",\"title\",\"description\",\"ActivityCategory\",\"category\",\"destination\",\"location\",\"meetingPoint\",\"itinerary\",\"whatsIncluded\",\"whatsExcluded\",\"date\",\"endDate\",\"maxParticipants\",\"price\",\"TripStatus\",\"organizerId\",\"fullName\",\"nikEncrypted\",\"nikHash\",\"birthDate\",\"address\",\"ktpImageKey\",\"selfieKey\",\"bankName\",\"bankAccountNumber\",\"bankAccountName\",\"VerificationStatus\",\"rejectionReason\",\"reviewedAt\",\"reviewedById\",\"verifiedAt\",\"type\",\"provider\",\"providerAccountId\",\"refresh_token\",\"access_token\",\"expires_at\",\"token_type\",\"scope\",\"id_token\",\"session_state\",\"name\",\"email\",\"password\",\"image\",\"emailVerified\",\"acceptedTermsAndPrivacy\",\"acceptedAt\",\"every\",\"some\",\"none\",\"tripId_userId\",\"provider_providerAccountId\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"), - graph: "9gNDcBMEAAD4AQAgCwAA-QEAIAwAAPoBACANAAD7AQAgDwAA_AEAIBAAAP0BACCJAQAA9gEAMIoBAAAeABCLAQAA9gEAMIwBAQAAAAGPAUAA8AEAIaQBQADwAQAhzgEBAO8BACHPAQEAAAAB0AEBAPIBACHRAQEA8gEAIdIBQADzAQAh0wEgAPcBACHUAUAA8wEAIQEAAAABACAQAwAA9AEAIIkBAACLAgAwigEAAAMAEIsBAACLAgAwjAEBAO8BACGTAQEA7wEAIcQBAQDvAQAhxQEBAO8BACHGAQEA7wEAIccBAQDyAQAhyAEBAPIBACHJAQIAjAIAIcoBAQDyAQAhywEBAPIBACHMAQEA8gEAIc0BAQDyAQAhCAMAAL8DACDHAQAAjQIAIMgBAACNAgAgyQEAAI0CACDKAQAAjQIAIMsBAACNAgAgzAEAAI0CACDNAQAAjQIAIBEDAAD0AQAgiQEAAIsCADCKAQAAAwAQiwEAAIsCADCMAQEAAAABkwEBAO8BACHEAQEA7wEAIcUBAQDvAQAhxgEBAO8BACHHAQEA8gEAIcgBAQDyAQAhyQECAIwCACHKAQEA8gEAIcsBAQDyAQAhzAEBAPIBACHNAQEA8gEAIdkBAACKAgAgAwAAAAMAIAEAAAQAMAIAAAUAIBkFAAD0AQAgBwAA-gEAIAgAAIkCACAJAAD7AQAgiQEAAIYCADCKAQAABwAQiwEAAIYCADCMAQEA7wEAIY4BAACIArQBIo8BQADwAQAhpAFAAPABACGlAQEA7wEAIaYBAQDyAQAhqAEAAIcCqAEiqQEBAO8BACGqAQEA7wEAIasBAQDyAQAhrAEBAPIBACGtAQEA8gEAIa4BAQDyAQAhrwFAAPABACGwAUAA8wEAIbEBAgCAAgAhsgECAIACACG0AQEA7wEAIQoFAAC_AwAgBwAAuwMAIAgAAMEDACAJAAC8AwAgpgEAAI0CACCrAQAAjQIAIKwBAACNAgAgrQEAAI0CACCuAQAAjQIAILABAACNAgAgGQUAAPQBACAHAAD6AQAgCAAAiQIAIAkAAPsBACCJAQAAhgIAMIoBAAAHABCLAQAAhgIAMIwBAQAAAAGOAQAAiAK0ASKPAUAA8AEAIaQBQADwAQAhpQEBAO8BACGmAQEA8gEAIagBAACHAqgBIqkBAQDvAQAhqgEBAO8BACGrAQEA8gEAIawBAQDyAQAhrQEBAPIBACGuAQEA8gEAIa8BQADwAQAhsAFAAPMBACGxAQIAgAIAIbIBAgCAAgAhtAEBAO8BACEDAAAABwAgAQAACAAwAgAACQAgDAMAAPQBACAGAACBAgAgiQEAAIQCADCKAQAACwAQiwEAAIQCADCMAQEA7wEAIY4BAACFAo4BIo8BQADwAQAhkAFAAPMBACGRAUAA8wEAIZIBAQDvAQAhkwEBAO8BACEEAwAAvwMAIAYAAMADACCQAQAAjQIAIJEBAACNAgAgDQMAAPQBACAGAACBAgAgiQEAAIQCADCKAQAACwAQiwEAAIQCADCMAQEAAAABjgEAAIUCjgEijwFAAPABACGQAUAA8wEAIZEBQADzAQAhkgEBAO8BACGTAQEA7wEAIdgBAACDAgAgAwAAAAsAIAEAAAwAMAIAAA0AIAkGAACBAgAgiQEAAIICADCKAQAADwAQiwEAAIICADCMAQEA7wEAIZIBAQDvAQAhnwEBAO8BACGgAQEA8gEAIaEBAgCAAgAhAgYAAMADACCgAQAAjQIAIAkGAACBAgAgiQEAAIICADCKAQAADwAQiwEAAIICADCMAQEAAAABkgEBAO8BACGfAQEA7wEAIaABAQDyAQAhoQECAIACACEDAAAADwAgAQAAEAAwAgAAEQAgDAMAAPQBACAGAACBAgAgiQEAAP8BADCKAQAAEwAQiwEAAP8BADCMAQEA7wEAIY8BQADwAQAhkgEBAO8BACGTAQEA7wEAIaIBAgCAAgAhowEBAPIBACGkAUAA8AEAIQMDAAC_AwAgBgAAwAMAIKMBAACNAgAgDQMAAPQBACAGAACBAgAgiQEAAP8BADCKAQAAEwAQiwEAAP8BADCMAQEAAAABjwFAAPABACGSAQEA7wEAIZMBAQDvAQAhogECAIACACGjAQEA8gEAIaQBQADwAQAh2AEAAP4BACADAAAAEwAgAQAAFAAwAgAAFQAgAQAAAAsAIAEAAAAPACABAAAAEwAgAwAAAAsAIAEAAAwAMAIAAA0AIAMAAAATACABAAAUADACAAAVACAYAwAA9AEAIA4AAPUBACCJAQAA7gEAMIoBAAAcABCLAQAA7gEAMIwBAQDvAQAhjgEAAPEBwAEijwFAAPABACGTAQEA7wEAIaQBQADwAQAhtQEBAO8BACG2AQEA7wEAIbcBAQDvAQAhuAFAAPABACG5AQEA7wEAIboBAQDvAQAhuwEBAO8BACG8AQEA7wEAIb0BAQDvAQAhvgEBAO8BACHAAQEA8gEAIcEBQADzAQAhwgEBAPIBACHDAUAA8wEAIQEAAAAcACATBAAA-AEAIAsAAPkBACAMAAD6AQAgDQAA-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_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_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-QEAIAwAAPoBACANAAD7AQAgDwAA_AEAIBAAAP0BACCJAQAA9gEAMIoBAAAeABCLAQAA9gEAMIwBAQDvAQAhjwFAAPABACGkAUAA8AEAIc4BAQDvAQAhzwEBAO8BACHQAQEA8gEAIdEBAQDyAQAh0gFAAPMBACHTASAA9wEAIdQBQADzAQAh2gEAAB4AINsBAAAeACAVBAAA-AEAIAsAAPkBACAMAAD6AQAgDQAA-wEAIA8AAPwBACAQAAD9AQAgiQEAAPYBADCKAQAAHgAQiwEAAPYBADCMAQEA7wEAIY8BQADwAQAhpAFAAPABACHOAQEA7wEAIc8BAQDvAQAh0AEBAPIBACHRAQEA8gEAIdIBQADzAQAh0wEgAPcBACHUAUAA8wEAIdoBAAAeACDbAQAAHgAgEwQAAPgBACALAAD5AQAgDAAA-gEAIA0AAPsBACAPAAD8AQAgEAAA_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-AgAgFgAAvwIAIAqJAQAAvQIAMIoBAAC-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_QIAMNwBAAD5AgAw3QEAAPoCADDeAQAA-wIAIN8BAAD8AgAw4AEAAPwCADDhAQAA_AIAMOIBAAD8AgAw4wEAAP4CADDkAQAA_wIAMBMDAADkAgAgjAEBAAAAAY4BAAAAwAECjwFAAAAAAZMBAQAAAAGkAUAAAAABtQEBAAAAAbYBAQAAAAG3AQEAAAABuAFAAAAAAbkBAQAAAAG6AQEAAAABuwEBAAAAAbwBAQAAAAG9AQEAAAABvgEBAAAAAcABAQAAAAHBAUAAAAABwwFAAAAAAQIAAAAhACAdAACDAwAgAwAAACEAIB0AAIMDACAeAACCAwAgARYAAMYDADAYAwAA9AEAIA4AAPUBACCJAQAA7gEAMIoBAAAcABCLAQAA7gEAMIwBAQAAAAGOAQAA8QHAASKPAUAA8AEAIZMBAQAAAAGkAUAA8AEAIbUBAQDvAQAhtgEBAO8BACG3AQEAAAABuAFAAPABACG5AQEA7wEAIboBAQDvAQAhuwEBAO8BACG8AQEA7wEAIb0BAQDvAQAhvgEBAO8BACHAAQEA8gEAIcEBQADzAQAhwgEBAPIBACHDAUAA8wEAIQIAAAAhACAWAACCAwAgAgAAAIADACAWAACBAwAgFokBAAD_AgAwigEAAIADABCLAQAA_wIAMIwBAQDvAQAhjgEAAPEBwAEijwFAAPABACGTAQEA7wEAIaQBQADwAQAhtQEBAO8BACG2AQEA7wEAIbcBAQDvAQAhuAFAAPABACG5AQEA7wEAIboBAQDvAQAhuwEBAO8BACG8AQEA7wEAIb0BAQDvAQAhvgEBAO8BACHAAQEA8gEAIcEBQADzAQAhwgEBAPIBACHDAUAA8wEAIRaJAQAA_wIAMIoBAACAAwAQiwEAAP8CADCMAQEA7wEAIY4BAADxAcABIo8BQADwAQAhkwEBAO8BACGkAUAA8AEAIbUBAQDvAQAhtgEBAO8BACG3AQEA7wEAIbgBQADwAQAhuQEBAO8BACG6AQEA7wEAIbsBAQDvAQAhvAEBAO8BACG9AQEA7wEAIb4BAQDvAQAhwAEBAPIBACHBAUAA8wEAIcIBAQDyAQAhwwFAAPMBACESjAEBAJECACGOAQAA4QLAASKPAUAAkwIAIZMBAQCRAgAhpAFAAJMCACG1AQEAkQIAIbYBAQCRAgAhtwEBAJECACG4AUAAkwIAIbkBAQCRAgAhugEBAJECACG7AQEAkQIAIbwBAQCRAgAhvQEBAJECACG-AQEAkQIAIcABAQCeAgAhwQFAAJQCACHDAUAAlAIAIRMDAADiAgAgjAEBAJECACGOAQAA4QLAASKPAUAAkwIAIZMBAQCRAgAhpAFAAJMCACG1AQEAkQIAIbYBAQCRAgAhtwEBAJECACG4AUAAkwIAIbkBAQCRAgAhugEBAJECACG7AQEAkQIAIbwBAQCRAgAhvQEBAJECACG-AQEAkQIAIcABAQCeAgAhwQFAAJQCACHDAUAAlAIAIRMDAADkAgAgjAEBAAAAAY4BAAAAwAECjwFAAAAAAZMBAQAAAAGkAUAAAAABtQEBAAAAAbYBAQAAAAG3AQEAAAABuAFAAAAAAbkBAQAAAAG6AQEAAAABuwEBAAAAAbwBAQAAAAG9AQEAAAABvgEBAAAAAcABAQAAAAHBAUAAAAABwwFAAAAAARMOAADlAgAgjAEBAAAAAY4BAAAAwAECjwFAAAAAAaQBQAAAAAG1AQEAAAABtgEBAAAAAbcBAQAAAAG4AUAAAAABuQEBAAAAAboBAQAAAAG7AQEAAAABvAEBAAAAAb0BAQAAAAG-AQEAAAABwAEBAAAAAcEBQAAAAAHCAQEAAAABwwFAAAAAAQIAAAAhACAdAACEAwAgAwAAABwAIB0AAIQDACAeAACIAwAgFQAAABwAIA4AAOMCACAWAACIAwAgjAEBAJECACGOAQAA4QLAASKPAUAAkwIAIaQBQACTAgAhtQEBAJECACG2AQEAkQIAIbcBAQCRAgAhuAFAAJMCACG5AQEAkQIAIboBAQCRAgAhuwEBAJECACG8AQEAkQIAIb0BAQCRAgAhvgEBAJECACHAAQEAngIAIcEBQACUAgAhwgEBAJ4CACHDAUAAlAIAIRMOAADjAgAgjAEBAJECACGOAQAA4QLAASKPAUAAkwIAIaQBQACTAgAhtQEBAJECACG2AQEAkQIAIbcBAQCRAgAhuAFAAJMCACG5AQEAkQIAIboBAQCRAgAhuwEBAJECACG8AQEAkQIAIb0BAQCRAgAhvgEBAJECACHAAQEAngIAIcEBQACUAgAhwgEBAJ4CACHDAUAAlAIAIQcGAACpAgAgjAEBAAAAAY8BQAAAAAGSAQEAAAABogECAAAAAaMBAQAAAAGkAUAAAAABAgAAABUAIB0AAJEDACADAAAAFQAgHQAAkQMAIB4AAJADACABFgAAxQMAMAIAAAAVACAWAACQAwAgAgAAAL4CACAWAACPAwAgBowBAQCRAgAhjwFAAJMCACGSAQEAkQIAIaIBAgCfAgAhowEBAJ4CACGkAUAAkwIAIQcGAACnAgAgjAEBAJECACGPAUAAkwIAIZIBAQCRAgAhogECAJ8CACGjAQEAngIAIaQBQACTAgAhBwYAAKkCACCMAQEAAAABjwFAAAAAAZIBAQAAAAGiAQIAAAABowEBAAAAAaQBQAAAAAEHBgAAlwIAIIwBAQAAAAGOAQAAAI4BAo8BQAAAAAGQAUAAAAABkQFAAAAAAZIBAQAAAAECAAAADQAgHQAAmgMAIAMAAAANACAdAACaAwAgHgAAmQMAIAEWAADEAwAwAgAAAA0AIBYAAJkDACACAAAA1gIAIBYAAJgDACAGjAEBAJECACGOAQAAkgKOASKPAUAAkwIAIZABQACUAgAhkQFAAJQCACGSAQEAkQIAIQcGAACVAgAgjAEBAJECACGOAQAAkgKOASKPAUAAkwIAIZABQACUAgAhkQFAAJQCACGSAQEAkQIAIQcGAACX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_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-Aig_AilAAipBAitCAixEAi1GCi5HEi9JAjBLCjFMEzJNAjNOAjRPCjdSFDhTGjlUCDpVCDtWCDxXCD1YCD5aCD9cCkBdG0FgCEJiCkNjHERlCEVmCEZnCkdqHUhrIUlsA0ptA0tuA0xvA01wA05yA090ClB1IlF3A1J5ClN6I1R7A1V8A1Z9CleAASRYgQEqWYIBBlqDAQZbhAEGXIUBBl2GAQZeiAEGX4oBCmCLASthjQEGYo8BCmOQASxkkQEGZZIBBmaTAQpnlgEtaJcBM2mYAQVqmQEFa5oBBWybAQVtnAEFbp4BBW-gAQpwoQE0caMBBXKlAQpzpgE1dKcBBXWoAQV2qQEKd6wBNnitATx5rgEEeq8BBHuwAQR8sQEEfbIBBH60AQR_tgEKgAG3AT2BAbkBBIIBuwEKgwG8AT6EAb0BBIUBvgEEhgG_AQqHAcIBP4gBwwFD" + strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"user\",\"accounts\",\"organizer\",\"trip\",\"participants\",\"images\",\"reviews\",\"_count\",\"trips\",\"participations\",\"tripReviews\",\"reviewedBy\",\"organizerVerification\",\"reviewedVerifications\",\"profile\",\"User.findUnique\",\"User.findUniqueOrThrow\",\"User.findFirst\",\"User.findFirstOrThrow\",\"User.findMany\",\"data\",\"User.createOne\",\"User.createMany\",\"User.createManyAndReturn\",\"User.updateOne\",\"User.updateMany\",\"User.updateManyAndReturn\",\"create\",\"update\",\"User.upsertOne\",\"User.deleteOne\",\"User.deleteMany\",\"having\",\"_min\",\"_max\",\"User.groupBy\",\"User.aggregate\",\"UserProfile.findUnique\",\"UserProfile.findUniqueOrThrow\",\"UserProfile.findFirst\",\"UserProfile.findFirstOrThrow\",\"UserProfile.findMany\",\"UserProfile.createOne\",\"UserProfile.createMany\",\"UserProfile.createManyAndReturn\",\"UserProfile.updateOne\",\"UserProfile.updateMany\",\"UserProfile.updateManyAndReturn\",\"UserProfile.upsertOne\",\"UserProfile.deleteOne\",\"UserProfile.deleteMany\",\"UserProfile.groupBy\",\"UserProfile.aggregate\",\"Account.findUnique\",\"Account.findUniqueOrThrow\",\"Account.findFirst\",\"Account.findFirstOrThrow\",\"Account.findMany\",\"Account.createOne\",\"Account.createMany\",\"Account.createManyAndReturn\",\"Account.updateOne\",\"Account.updateMany\",\"Account.updateManyAndReturn\",\"Account.upsertOne\",\"Account.deleteOne\",\"Account.deleteMany\",\"_avg\",\"_sum\",\"Account.groupBy\",\"Account.aggregate\",\"OrganizerVerification.findUnique\",\"OrganizerVerification.findUniqueOrThrow\",\"OrganizerVerification.findFirst\",\"OrganizerVerification.findFirstOrThrow\",\"OrganizerVerification.findMany\",\"OrganizerVerification.createOne\",\"OrganizerVerification.createMany\",\"OrganizerVerification.createManyAndReturn\",\"OrganizerVerification.updateOne\",\"OrganizerVerification.updateMany\",\"OrganizerVerification.updateManyAndReturn\",\"OrganizerVerification.upsertOne\",\"OrganizerVerification.deleteOne\",\"OrganizerVerification.deleteMany\",\"OrganizerVerification.groupBy\",\"OrganizerVerification.aggregate\",\"Trip.findUnique\",\"Trip.findUniqueOrThrow\",\"Trip.findFirst\",\"Trip.findFirstOrThrow\",\"Trip.findMany\",\"Trip.createOne\",\"Trip.createMany\",\"Trip.createManyAndReturn\",\"Trip.updateOne\",\"Trip.updateMany\",\"Trip.updateManyAndReturn\",\"Trip.upsertOne\",\"Trip.deleteOne\",\"Trip.deleteMany\",\"Trip.groupBy\",\"Trip.aggregate\",\"TripReview.findUnique\",\"TripReview.findUniqueOrThrow\",\"TripReview.findFirst\",\"TripReview.findFirstOrThrow\",\"TripReview.findMany\",\"TripReview.createOne\",\"TripReview.createMany\",\"TripReview.createManyAndReturn\",\"TripReview.updateOne\",\"TripReview.updateMany\",\"TripReview.updateManyAndReturn\",\"TripReview.upsertOne\",\"TripReview.deleteOne\",\"TripReview.deleteMany\",\"TripReview.groupBy\",\"TripReview.aggregate\",\"TripImage.findUnique\",\"TripImage.findUniqueOrThrow\",\"TripImage.findFirst\",\"TripImage.findFirstOrThrow\",\"TripImage.findMany\",\"TripImage.createOne\",\"TripImage.createMany\",\"TripImage.createManyAndReturn\",\"TripImage.updateOne\",\"TripImage.updateMany\",\"TripImage.updateManyAndReturn\",\"TripImage.upsertOne\",\"TripImage.deleteOne\",\"TripImage.deleteMany\",\"TripImage.groupBy\",\"TripImage.aggregate\",\"TripParticipant.findUnique\",\"TripParticipant.findUniqueOrThrow\",\"TripParticipant.findFirst\",\"TripParticipant.findFirstOrThrow\",\"TripParticipant.findMany\",\"TripParticipant.createOne\",\"TripParticipant.createMany\",\"TripParticipant.createManyAndReturn\",\"TripParticipant.updateOne\",\"TripParticipant.updateMany\",\"TripParticipant.updateManyAndReturn\",\"TripParticipant.upsertOne\",\"TripParticipant.deleteOne\",\"TripParticipant.deleteMany\",\"TripParticipant.groupBy\",\"TripParticipant.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"ParticipantStatus\",\"status\",\"createdAt\",\"markedPaidAt\",\"paymentConfirmedAt\",\"tripId\",\"userId\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"contains\",\"startsWith\",\"endsWith\",\"url\",\"caption\",\"order\",\"rating\",\"comment\",\"updatedAt\",\"title\",\"description\",\"ActivityCategory\",\"category\",\"destination\",\"location\",\"meetingPoint\",\"itinerary\",\"whatsIncluded\",\"whatsExcluded\",\"date\",\"endDate\",\"maxParticipants\",\"price\",\"TripStatus\",\"organizerId\",\"fullName\",\"nikEncrypted\",\"nikHash\",\"birthDate\",\"address\",\"ktpImageKey\",\"selfieKey\",\"bankName\",\"bankAccountNumber\",\"bankAccountName\",\"VerificationStatus\",\"rejectionReason\",\"reviewedAt\",\"reviewedById\",\"verifiedAt\",\"type\",\"provider\",\"providerAccountId\",\"refresh_token\",\"access_token\",\"expires_at\",\"token_type\",\"scope\",\"id_token\",\"session_state\",\"bio\",\"city\",\"interests\",\"instagram\",\"has\",\"hasEvery\",\"hasSome\",\"name\",\"email\",\"password\",\"image\",\"emailVerified\",\"acceptedTermsAndPrivacy\",\"acceptedAt\",\"every\",\"some\",\"none\",\"tripId_userId\",\"provider_providerAccountId\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"push\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"), + graph: "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_wLRASKgAUAAsQIAIaQBAQCvAgAhtQFAALECACHGAQEArwIAIccBAQCvAgAhyAEBAK8CACHJAUAAsQIAIcoBAQCvAgAhywEBAK8CACHMAQEArwIAIc0BAQCvAgAhzgEBAK8CACHPAQEArwIAIdEBAQC8AgAh0gFAALICACHTAQEAvAIAIdQBQACyAgAhAgAAACEAIBcAAHkAIBOdAQEArwIAIZ8BAAD_AtEBIqABQACxAgAhpAEBAK8CACG1AUAAsQIAIcYBAQCvAgAhxwEBAK8CACHIAQEArwIAIckBQACxAgAhygEBAK8CACHLAQEArwIAIcwBAQCvAgAhzQEBAK8CACHOAQEArwIAIc8BAQCvAgAh0QEBALwCACHSAUAAsgIAIdMBAQC8AgAh1AFAALICACECAAAAHAAgFwAAewAgAgAAABwAIBcAAHsAIAEAAAAeACADAAAAIQAgHgAAcwAgHwAAeQAgAQAAACEAIAEAAAAcACAHCgAA_AIAICQAAP4CACAlAAD9AgAg0QEAAKsCACDSAQAAqwIAINMBAACrAgAg1AEAAKsCACAWmgEAAPwBADCbAQAAgwEAEJwBAAD8AQAwnQEBAN8BACGfAQAA_QHRASKgAUAA4QEAIaQBAQDfAQAhtQFAAOEBACHGAQEA3wEAIccBAQDfAQAhyAEBAN8BACHJAUAA4QEAIcoBAQDfAQAhywEBAN8BACHMAQEA3wEAIc0BAQDfAQAhzgEBAN8BACHPAQEA3wEAIdEBAQDuAQAh0gFAAOIBACHTAQEA7gEAIdQBQADiAQAhAwAAABwAIAEAAIIBADAjAACDAQAgAwAAABwAIAEAACAAMAIAACEAIAEAAAAJACABAAAACQAgAwAAAAcAIAEAAAgAMAIAAAkAIAMAAAAHACABAAAIADACAAAJACADAAAABwAgAQAACAAwAgAACQAgFgUAAPgCACAHAAD5AgAgCAAA-gIAIAkAAPsCACCdAQEAAAABnwEAAADFAQKgAUAAAAABtQFAAAAAAbYBAQAAAAG3AQEAAAABuQEAAAC5AQK6AQEAAAABuwEBAAAAAbwBAQAAAAG9AQEAAAABvgEBAAAAAb8BAQAAAAHAAUAAAAABwQFAAAAAAcIBAgAAAAHDAQIAAAABxQEBAAAAAQEXAACLAQAgEp0BAQAAAAGfAQAAAMUBAqABQAAAAAG1AUAAAAABtgEBAAAAAbcBAQAAAAG5AQAAALkBAroBAQAAAAG7AQEAAAABvAEBAAAAAb0BAQAAAAG-AQEAAAABvwEBAAAAAcABQAAAAAHBAUAAAAABwgECAAAAAcMBAgAAAAHFAQEAAAABARcAAI0BADABFwAAjQEAMBYFAADQAgAgBwAA0QIAIAgAANICACAJAADTAgAgnQEBAK8CACGfAQAAzwLFASKgAUAAsQIAIbUBQACxAgAhtgEBAK8CACG3AQEAvAIAIbkBAADOArkBIroBAQCvAgAhuwEBAK8CACG8AQEAvAIAIb0BAQC8AgAhvgEBALwCACG_AQEAvAIAIcABQACxAgAhwQFAALICACHCAQIAvQIAIcMBAgC9AgAhxQEBAK8CACECAAAACQAgFwAAkAEAIBKdAQEArwIAIZ8BAADPAsUBIqABQACxAgAhtQFAALECACG2AQEArwIAIbcBAQC8AgAhuQEAAM4CuQEiugEBAK8CACG7AQEArwIAIbwBAQC8AgAhvQEBALwCACG-AQEAvAIAIb8BAQC8AgAhwAFAALECACHBAUAAsgIAIcIBAgC9AgAhwwECAL0CACHFAQEArwIAIQIAAAAHACAXAACSAQAgAgAAAAcAIBcAAJIBACADAAAACQAgHgAAiwEAIB8AAJABACABAAAACQAgAQAAAAcAIAsKAADJAgAgJAAAzAIAICUAAMsCACBGAADKAgAgRwAAzQIAILcBAACrAgAgvAEAAKsCACC9AQAAqwIAIL4BAACrAgAgvwEAAKsCACDBAQAAqwIAIBWaAQAA9QEAMJsBAACZAQAQnAEAAPUBADCdAQEA3wEAIZ8BAAD3AcUBIqABQADhAQAhtQFAAOEBACG2AQEA3wEAIbcBAQDuAQAhuQEAAPYBuQEiugEBAN8BACG7AQEA3wEAIbwBAQDuAQAhvQEBAO4BACG-AQEA7gEAIb8BAQDuAQAhwAFAAOEBACHBAUAA4gEAIcIBAgDvAQAhwwECAO8BACHFAQEA3wEAIQMAAAAHACABAACYAQAwIwAAmQEAIAMAAAAHACABAAAIADACAAAJACABAAAAFQAgAQAAABUAIAMAAAATACABAAAUADACAAAVACADAAAAEwAgAQAAFAAwAgAAFQAgAwAAABMAIAEAABQAMAIAABUAIAkDAADIAgAgBgAAxwIAIJ0BAQAAAAGgAUAAAAABowEBAAAAAaQBAQAAAAGzAQIAAAABtAEBAAAAAbUBQAAAAAEBFwAAoQEAIAedAQEAAAABoAFAAAAAAaMBAQAAAAGkAQEAAAABswECAAAAAbQBAQAAAAG1AUAAAAABARcAAKMBADABFwAAowEAMAkDAADGAgAgBgAAxQIAIJ0BAQCvAgAhoAFAALECACGjAQEArwIAIaQBAQCvAgAhswECAL0CACG0AQEAvAIAIbUBQACxAgAhAgAAABUAIBcAAKYBACAHnQEBAK8CACGgAUAAsQIAIaMBAQCvAgAhpAEBAK8CACGzAQIAvQIAIbQBAQC8AgAhtQFAALECACECAAAAEwAgFwAAqAEAIAIAAAATACAXAACoAQAgAwAAABUAIB4AAKEBACAfAACmAQAgAQAAABUAIAEAAAATACAGCgAAwAIAICQAAMMCACAlAADCAgAgRgAAwQIAIEcAAMQCACC0AQAAqwIAIAqaAQAA9AEAMJsBAACvAQAQnAEAAPQBADCdAQEA3wEAIaABQADhAQAhowEBAN8BACGkAQEA3wEAIbMBAgDvAQAhtAEBAO4BACG1AUAA4QEAIQMAAAATACABAACuAQAwIwAArwEAIAMAAAATACABAAAUADACAAAVACABAAAAEQAgAQAAABEAIAMAAAAPACABAAAQADACAAARACADAAAADwAgAQAAEAAwAgAAEQAgAwAAAA8AIAEAABAAMAIAABEAIAYGAAC_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_AEAMJsBAACDAQAQnAEAAPwBADCdAQEA3wEAIZ8BAAD9AdEBIqABQADhAQAhpAEBAN8BACG1AUAA4QEAIcYBAQDfAQAhxwEBAN8BACHIAQEA3wEAIckBQADhAQAhygEBAN8BACHLAQEA3wEAIcwBAQDfAQAhzQEBAN8BACHOAQEA3wEAIc8BAQDfAQAh0QEBAO4BACHSAUAA4gEAIdMBAQDuAQAh1AFAAOIBACEHCgAA5wEAICQAAP8BACAlAAD_AQAgpQEAAADRAQKmAQAAANEBCKcBAAAA0QEIrAEAAP4B0QEiBwoAAOcBACAkAAD_AQAgJQAA_wEAIKUBAAAA0QECpgEAAADRAQinAQAAANEBCKwBAAD-AdEBIgSlAQAAANEBAqYBAAAA0QEIpwEAAADRAQisAQAA_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_AQEAhwIAIcABQACIAgAhwQFAAJECACHCAQIAngIAIcMBAgCeAgAhxQEBAI4CACEEpQEAAAC5AQKmAQAAALkBCKcBAAAAuQEIrAEAAPsBuQEiBKUBAAAAxQECpgEAAADFAQinAQAAAMUBCKwBAAD5AcUBIgPtAQAADwAg7gEAAA8AIO8BAAAPACAC1gEBAAAAAdcBAQAAAAEQAwAAiQIAIJoBAACpAgAwmwEAAAMAEJwBAACpAgAwnQEBAI4CACGkAQEAjgIAIdUBAQCOAgAh1gEBAI4CACHXAQEAjgIAIdgBAQCHAgAh2QEBAIcCACHaAQIAqgIAIdsBAQCHAgAh3AEBAIcCACHdAQEAhwIAId4BAQCHAgAhCKUBAgAAAAGmAQIAAAAFpwECAAAABagBAgAAAAGpAQIAAAABqgECAAAAAasBAgAAAAGsAQIA5AEAIQAAAAAB9wEBAAAAAQH3AQAAAJ8BAgH3AUAAAAABAfcBQAAAAAEFHgAAoQQAIB8AAKcEACD0AQAAogQAIPUBAACmBAAg-gEAAAkAIAUeAACfBAAgHwAApAQAIPQBAACgBAAg9QEAAKMEACD6AQAAAQAgAx4AAKEEACD0AQAAogQAIPoBAAAJACADHgAAnwQAIPQBAACgBAAg-gEAAAEAIAAAAAAAAfcBAQAAAAEF9wECAAAAAf4BAgAAAAH_AQIAAAABgAICAAAAAYECAgAAAAEFHgAAmgQAIB8AAJ0EACD0AQAAmwQAIPUBAACcBAAg-gEAAAkAIAMeAACaBAAg9AEAAJsEACD6AQAACQAgAAAAAAAFHgAAkgQAIB8AAJgEACD0AQAAkwQAIPUBAACXBAAg-gEAAAkAIAUeAACQBAAgHwAAlQQAIPQBAACRBAAg9QEAAJQEACD6AQAAAQAgAx4AAJIEACD0AQAAkwQAIPoBAAAJACADHgAAkAQAIPQBAACRBAAg-gEAAAEAIAAAAAAAAfcBAAAAuQECAfcBAAAAxQECBR4AAIgEACAfAACOBAAg9AEAAIkEACD1AQAAjQQAIPoBAAABACALHgAA7AIAMB8AAPECADD0AQAA7QIAMPUBAADuAgAw9gEAAO8CACD3AQAA8AIAMPgBAADwAgAw-QEAAPACADD6AQAA8AIAMPsBAADyAgAw_AEAAPMCADALHgAA4AIAMB8AAOUCADD0AQAA4QIAMPUBAADiAgAw9gEAAOMCACD3AQAA5AIAMPgBAADkAgAw-QEAAOQCADD6AQAA5AIAMPsBAADmAgAw_AEAAOcCADALHgAA1AIAMB8AANkCADD0AQAA1QIAMPUBAADWAgAw9gEAANcCACD3AQAA2AIAMPgBAADYAgAw-QEAANgCADD6AQAA2AIAMPsBAADaAgAw_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-gEAAAEAIAceAAD-AwAgHwAAgwQAIPQBAAD_AwAg9QEAAIIEACD4AQAAHgAg-QEAAB4AIPoBAAABACADHgAAgAQAIPQBAACBBAAg-gEAAAEAIAMeAAD-AwAg9AEAAP8DACD6AQAAAQAgAAAAAAAF9wECAAAAAf4BAgAAAAH_AQIAAAABgAICAAAAAYECAgAAAAEFHgAA-QMAIB8AAPwDACD0AQAA-gMAIPUBAAD7AwAg-gEAAAEAIAMeAAD5AwAg9AEAAPoDACD6AQAAAQAgAAAAAvcBAQAAAAT9AQEAAAAFBR4AAPQDACAfAAD3AwAg9AEAAPUDACD1AQAA9gMAIPoBAAABACAB9wEBAAAABAMeAAD0AwAg9AEAAPUDACD6AQAAAQAgCwQAAOYDACALAADnAwAgDAAA6AMAIA0AAOkDACAPAADqAwAgEAAA6wMAIBEAAOwDACDoAQAAqwIAIOkBAACrAgAg6gEAAKsCACDsAQAAqwIAIAAAAAH3ASAAAAABCx4AANMDADAfAADYAwAw9AEAANQDADD1AQAA1QMAMPYBAADWAwAg9wEAANcDADD4AQAA1wMAMPkBAADXAwAw-gEAANcDADD7AQAA2QMAMPwBAADaAwAwCx4AAMcDADAfAADMAwAw9AEAAMgDADD1AQAAyQMAMPYBAADKAwAg9wEAAMsDADD4AQAAywMAMPkBAADLAwAw-gEAAMsDADD7AQAAzQMAMPwBAADOAwAwCx4AAL4DADAfAADCAwAw9AEAAL8DADD1AQAAwAMAMPYBAADBAwAg9wEAAPACADD4AQAA8AIAMPkBAADwAgAw-gEAAPACADD7AQAAwwMAMPwBAADzAgAwCx4AALUDADAfAAC5AwAw9AEAALYDADD1AQAAtwMAMPYBAAC4AwAg9wEAANgCADD4AQAA2AIAMPkBAADYAgAw-gEAANgCADD7AQAAugMAMPwBAADbAgAwBx4AALADACAfAACzAwAg9AEAALEDACD1AQAAsgMAIPgBAAAcACD5AQAAHAAg-gEAACEAIAseAACkAwAwHwAAqQMAMPQBAAClAwAw9QEAAKYDADD2AQAApwMAIPcBAACoAwAw-AEAAKgDADD5AQAAqAMAMPoBAACoAwAw-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_AQEAAAABwAFAAAAAAcEBQAAAAAHCAQIAAAABwwECAAAAAQIAAAAJACAeAADSAwAgAwAAAAkAIB4AANIDACAfAADRAwAgARcAAPADADAZBQAAiQIAIAcAAJcCACAIAACnAgAgCQAAmAIAIJoBAACkAgAwmwEAAAcAEJwBAACkAgAwnQEBAAAAAZ8BAACmAsUBIqABQACIAgAhtQFAAIgCACG2AQEAjgIAIbcBAQCHAgAhuQEAAKUCuQEiugEBAI4CACG7AQEAjgIAIbwBAQCHAgAhvQEBAIcCACG-AQEAhwIAIb8BAQCHAgAhwAFAAIgCACHBAUAAkQIAIcIBAgCeAgAhwwECAJ4CACHFAQEAjgIAIQIAAAAJACAXAADRAwAgAgAAAM8DACAXAADQAwAgFZoBAADOAwAwmwEAAM8DABCcAQAAzgMAMJ0BAQCOAgAhnwEAAKYCxQEioAFAAIgCACG1AUAAiAIAIbYBAQCOAgAhtwEBAIcCACG5AQAApQK5ASK6AQEAjgIAIbsBAQCOAgAhvAEBAIcCACG9AQEAhwIAIb4BAQCHAgAhvwEBAIcCACHAAUAAiAIAIcEBQACRAgAhwgECAJ4CACHDAQIAngIAIcUBAQCOAgAhFZoBAADOAwAwmwEAAM8DABCcAQAAzgMAMJ0BAQCOAgAhnwEAAKYCxQEioAFAAIgCACG1AUAAiAIAIbYBAQCOAgAhtwEBAIcCACG5AQAApQK5ASK6AQEAjgIAIbsBAQCOAgAhvAEBAIcCACG9AQEAhwIAIb4BAQCHAgAhvwEBAIcCACHAAUAAiAIAIcEBQACRAgAhwgECAJ4CACHDAQIAngIAIcUBAQCOAgAhEZ0BAQCvAgAhnwEAAM8CxQEioAFAALECACG1AUAAsQIAIbYBAQCvAgAhtwEBALwCACG5AQAAzgK5ASK6AQEArwIAIbsBAQCvAgAhvAEBALwCACG9AQEAvAIAIb4BAQC8AgAhvwEBALwCACHAAUAAsQIAIcEBQACyAgAhwgECAL0CACHDAQIAvQIAIRQHAADRAgAgCAAA0gIAIAkAANMCACCdAQEArwIAIZ8BAADPAsUBIqABQACxAgAhtQFAALECACG2AQEArwIAIbcBAQC8AgAhuQEAAM4CuQEiugEBAK8CACG7AQEArwIAIbwBAQC8AgAhvQEBALwCACG-AQEAvAIAIb8BAQC8AgAhwAFAALECACHBAUAAsgIAIcIBAgC9AgAhwwECAL0CACEUBwAA-QIAIAgAAPoCACAJAAD7AgAgnQEBAAAAAZ8BAAAAxQECoAFAAAAAAbUBQAAAAAG2AQEAAAABtwEBAAAAAbkBAAAAuQECugEBAAAAAbsBAQAAAAG8AQEAAAABvQEBAAAAAb4BAQAAAAG_AQEAAAABwAFAAAAAAcEBQAAAAAHCAQIAAAABwwECAAAAAQudAQEAAAAB1QEBAAAAAdYBAQAAAAHXAQEAAAAB2AEBAAAAAdkBAQAAAAHaAQIAAAAB2wEBAAAAAdwBAQAAAAHdAQEAAAAB3gEBAAAAAQIAAAAFACAeAADeAwAgAwAAAAUAIB4AAN4DACAfAADdAwAgARcAAO8DADARAwAAiQIAIJoBAACpAgAwmwEAAAMAEJwBAACpAgAwnQEBAAAAAaQBAQCOAgAh1QEBAI4CACHWAQEAjgIAIdcBAQCOAgAh2AEBAIcCACHZAQEAhwIAIdoBAgCqAgAh2wEBAIcCACHcAQEAhwIAId0BAQCHAgAh3gEBAIcCACHxAQAAqAIAIAIAAAAFACAXAADdAwAgAgAAANsDACAXAADcAwAgD5oBAADaAwAwmwEAANsDABCcAQAA2gMAMJ0BAQCOAgAhpAEBAI4CACHVAQEAjgIAIdYBAQCOAgAh1wEBAI4CACHYAQEAhwIAIdkBAQCHAgAh2gECAKoCACHbAQEAhwIAIdwBAQCHAgAh3QEBAIcCACHeAQEAhwIAIQ-aAQAA2gMAMJsBAADbAwAQnAEAANoDADCdAQEAjgIAIaQBAQCOAgAh1QEBAI4CACHWAQEAjgIAIdcBAQCOAgAh2AEBAIcCACHZAQEAhwIAIdoBAgCqAgAh2wEBAIcCACHcAQEAhwIAId0BAQCHAgAh3gEBAIcCACELnQEBAK8CACHVAQEArwIAIdYBAQCvAgAh1wEBAK8CACHYAQEAvAIAIdkBAQC8AgAh2gECAIkDACHbAQEAvAIAIdwBAQC8AgAh3QEBALwCACHeAQEAvAIAIQudAQEArwIAIdUBAQCvAgAh1gEBAK8CACHXAQEArwIAIdgBAQC8AgAh2QEBALwCACHaAQIAiQMAIdsBAQC8AgAh3AEBALwCACHdAQEAvAIAId4BAQC8AgAhC50BAQAAAAHVAQEAAAAB1gEBAAAAAdcBAQAAAAHYAQEAAAAB2QEBAAAAAdoBAgAAAAHbAQEAAAAB3AEBAAAAAd0BAQAAAAHeAQEAAAABBB4AANMDADD0AQAA1AMAMPYBAADWAwAg-gEAANcDADAEHgAAxwMAMPQBAADIAwAw9gEAAMoDACD6AQAAywMAMAQeAAC-AwAw9AEAAL8DADD2AQAAwQMAIPoBAADwAgAwBB4AALUDADD0AQAAtgMAMPYBAAC4AwAg-gEAANgCADADHgAAsAMAIPQBAACxAwAg-gEAACEAIAQeAACkAwAw9AEAAKUDADD2AQAApwMAIPoBAACoAwAwAx4AAJ8DACD0AQAAoAMAIPoBAABAACAAAAAABgMAAJMDACAOAACTAwAg0QEAAKsCACDSAQAAqwIAINMBAACrAgAg1AEAAKsCACAABAMAAJMDACDfAQAAqwIAIOABAACrAgAg4gEAAKsCACAKBQAAkwMAIAcAAOgDACAIAADuAwAgCQAA6QMAILcBAACrAgAgvAEAAKsCACC9AQAAqwIAIL4BAACrAgAgvwEAAKsCACDBAQAAqwIAIAALnQEBAAAAAdUBAQAAAAHWAQEAAAAB1wEBAAAAAdgBAQAAAAHZAQEAAAAB2gECAAAAAdsBAQAAAAHcAQEAAAAB3QEBAAAAAd4BAQAAAAERnQEBAAAAAZ8BAAAAxQECoAFAAAAAAbUBQAAAAAG2AQEAAAABtwEBAAAAAbkBAAAAuQECugEBAAAAAbsBAQAAAAG8AQEAAAABvQEBAAAAAb4BAQAAAAG_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_AQEAvAIAIcABQACxAgAhwQFAALICACHCAQIAvQIAIcMBAgC9AgAhxQEBAK8CACEVBQAA0AIAIAcAANECACAIAADSAgAgnQEBAK8CACGfAQAAzwLFASKgAUAAsQIAIbUBQACxAgAhtgEBAK8CACG3AQEAvAIAIbkBAADOArkBIroBAQCvAgAhuwEBAK8CACG8AQEAvAIAIb0BAQC8AgAhvgEBALwCACG_AQEAvAIAIcABQACxAgAhwQFAALICACHCAQIAvQIAIcMBAgC9AgAhxQEBAK8CACEVBQAA-AIAIAcAAPkCACAJAAD7AgAgnQEBAAAAAZ8BAAAAxQECoAFAAAAAAbUBQAAAAAG2AQEAAAABtwEBAAAAAbkBAAAAuQECugEBAAAAAbsBAQAAAAG8AQEAAAABvQEBAAAAAb4BAQAAAAG_AQEAAAABwAFAAAAAAcEBQAAAAAHCAQIAAAABwwECAAAAAcUBAQAAAAECAAAACQAgHgAAmgQAIAMAAAAHACAeAACaBAAgHwAAngQAIBcAAAAHACAFAADQAgAgBwAA0QIAIAkAANMCACAXAACeBAAgnQEBAK8CACGfAQAAzwLFASKgAUAAsQIAIbUBQACxAgAhtgEBAK8CACG3AQEAvAIAIbkBAADOArkBIroBAQCvAgAhuwEBAK8CACG8AQEAvAIAIb0BAQC8AgAhvgEBALwCACG_AQEAvAIAIcABQACxAgAhwQFAALICACHCAQIAvQIAIcMBAgC9AgAhxQEBAK8CACEVBQAA0AIAIAcAANECACAJAADTAgAgnQEBAK8CACGfAQAAzwLFASKgAUAAsQIAIbUBQACxAgAhtgEBAK8CACG3AQEAvAIAIbkBAADOArkBIroBAQCvAgAhuwEBAK8CACG8AQEAvAIAIb0BAQC8AgAhvgEBALwCACG_AQEAvAIAIcABQACxAgAhwQFAALICACHCAQIAvQIAIcMBAgC9AgAhxQEBAK8CACEQBAAA3wMAIAsAAOADACANAADiAwAgDwAA4wMAIBAAAOQDACARAADlAwAgnQEBAAAAAaABQAAAAAG1AUAAAAAB5gEBAAAAAecBAQAAAAHoAQEAAAAB6QEBAAAAAeoBQAAAAAHrASAAAAAB7AFAAAAAAQIAAAABACAeAACfBAAgFQUAAPgCACAIAAD6AgAgCQAA-wIAIJ0BAQAAAAGfAQAAAMUBAqABQAAAAAG1AUAAAAABtgEBAAAAAbcBAQAAAAG5AQAAALkBAroBAQAAAAG7AQEAAAABvAEBAAAAAb0BAQAAAAG-AQEAAAABvwEBAAAAAcABQAAAAAHBAUAAAAABwgECAAAAAcMBAgAAAAHFAQEAAAABAgAAAAkAIB4AAKEEACADAAAAHgAgHgAAnwQAIB8AAKUEACASAAAAHgAgBAAAmAMAIAsAAJkDACANAACbAwAgDwAAnAMAIBAAAJ0DACARAACeAwAgFwAApQQAIJ0BAQCvAgAhoAFAALECACG1AUAAsQIAIeYBAQCvAgAh5wEBAK8CACHoAQEAvAIAIekBAQC8AgAh6gFAALICACHrASAAlwMAIewBQACyAgAhEAQAAJgDACALAACZAwAgDQAAmwMAIA8AAJwDACAQAACdAwAgEQAAngMAIJ0BAQCvAgAhoAFAALECACG1AUAAsQIAIeYBAQCvAgAh5wEBAK8CACHoAQEAvAIAIekBAQC8AgAh6gFAALICACHrASAAlwMAIewBQACyAgAhAwAAAAcAIB4AAKEEACAfAACoBAAgFwAAAAcAIAUAANACACAIAADSAgAgCQAA0wIAIBcAAKgEACCdAQEArwIAIZ8BAADPAsUBIqABQACxAgAhtQFAALECACG2AQEArwIAIbcBAQC8AgAhuQEAAM4CuQEiugEBAK8CACG7AQEArwIAIbwBAQC8AgAhvQEBALwCACG-AQEAvAIAIb8BAQC8AgAhwAFAALECACHBAUAAsgIAIcIBAgC9AgAhwwECAL0CACHFAQEArwIAIRUFAADQAgAgCAAA0gIAIAkAANMCACCdAQEArwIAIZ8BAADPAsUBIqABQACxAgAhtQFAALECACG2AQEArwIAIbcBAQC8AgAhuQEAAM4CuQEiugEBAK8CACG7AQEArwIAIbwBAQC8AgAhvQEBALwCACG-AQEAvAIAIb8BAQC8AgAhwAFAALECACHBAUAAsgIAIcIBAgC9AgAhwwECAL0CACHFAQEArwIAIQgEBgIKAAoLCgMMGgQNGwYPHQgQIggRJAkBAwABBQUAAQcOBAgSBQkWBgoABwIDAAEGAAMBBgADAgMAAQYAAwMHFwAIGAAJGQACAwABDh8BAQMAAQUEJQALJgAMJwANKAAQKQAAAAADCgAPJAAQJQARAAAAAwoADyQAECUAEQEDAAEBAwABAwoAFiQAFyUAGAAAAAMKABYkABclABgBAwABAQMAAQUKAB0kACAlACFGAB5HAB8AAAAAAAUKAB0kACAlACFGAB5HAB8CAwABDngBAgMAAQ5-AQMKACYkACclACgAAAADCgAmJAAnJQAoAQUAAQEFAAEFCgAtJAAwJQAxRgAuRwAvAAAAAAAFCgAtJAAwJQAxRgAuRwAvAgMAAQYAAwIDAAEGAAMFCgA2JAA5JQA6RgA3RwA4AAAAAAAFCgA2JAA5JQA6RgA3RwA4AQYAAwEGAAMFCgA_JABCJQBDRgBARwBBAAAAAAAFCgA_JABCJQBDRgBARwBBAgMAAQYAAwIDAAEGAAMDCgBIJABJJQBKAAAAAwoASCQASSUAShICARMqARQsARUtARYuARgwARkyCxozDBs1ARw3Cx04DSA5ASE6ASI7CyY-Dic_EihBCSlCCSpECStFCSxGCS1ICS5KCy9LEzBNCTFPCzJQFDNRCTRSCTVTCzZWFTdXGThYAjlZAjpaAjtbAjxcAj1eAj5gCz9hGkBjAkFlC0JmG0NnAkRoAkVpC0hsHEltIkpuCEtvCExwCE1xCE5yCE90CFB2C1F3I1J6CFN8C1R9JFV_CFaAAQhXgQELWIQBJVmFASlahgEDW4cBA1yIAQNdiQEDXooBA1-MAQNgjgELYY8BKmKRAQNjkwELZJQBK2WVAQNmlgEDZ5cBC2iaASxpmwEyapwBBmudAQZsngEGbZ8BBm6gAQZvogEGcKQBC3GlATNypwEGc6kBC3SqATR1qwEGdqwBBnetAQt4sAE1ebEBO3qyAQV7swEFfLQBBX21AQV-tgEFf7gBBYABugELgQG7ATyCAb0BBYMBvwELhAHAAT2FAcEBBYYBwgEFhwHDAQuIAcYBPokBxwFEigHIAQSLAckBBIwBygEEjQHLAQSOAcwBBI8BzgEEkAHQAQuRAdEBRZIB0wEEkwHVAQuUAdYBRpUB1wEElgHYAQSXAdkBC5gB3AFHmQHdAUs" } async function decodeBase64AsWasm(wasmBase64: string): Promise { @@ -198,6 +198,16 @@ export interface PrismaClient< */ get user(): Prisma.UserDelegate; + /** + * `prisma.userProfile`: Exposes CRUD operations for the **UserProfile** model. + * Example usage: + * ```ts + * // Fetch zero or more UserProfiles + * const userProfiles = await prisma.userProfile.findMany() + * ``` + */ + get userProfile(): Prisma.UserProfileDelegate; + /** * `prisma.account`: Exposes CRUD operations for the **Account** model. * Example usage: diff --git a/app/generated/prisma/internal/prismaNamespace.ts b/app/generated/prisma/internal/prismaNamespace.ts index 3576354..5344089 100644 --- a/app/generated/prisma/internal/prismaNamespace.ts +++ b/app/generated/prisma/internal/prismaNamespace.ts @@ -385,6 +385,7 @@ type FieldRefInputType = Model extends never ? never : FieldRe export const ModelName = { User: 'User', + UserProfile: 'UserProfile', Account: 'Account', OrganizerVerification: 'OrganizerVerification', Trip: 'Trip', @@ -406,7 +407,7 @@ export type TypeMap + fields: Prisma.UserProfileFieldRefs + operations: { + findUnique: { + args: Prisma.UserProfileFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.UserProfileFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.UserProfileFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.UserProfileFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.UserProfileFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.UserProfileCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.UserProfileCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.UserProfileCreateManyAndReturnArgs + result: runtime.Types.Utils.PayloadToResult[] + } + delete: { + args: Prisma.UserProfileDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.UserProfileUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.UserProfileDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.UserProfileUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.UserProfileUpdateManyAndReturnArgs + result: runtime.Types.Utils.PayloadToResult[] + } + upsert: { + args: Prisma.UserProfileUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.UserProfileAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.UserProfileGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.UserProfileCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } Account: { payload: Prisma.$AccountPayload fields: Prisma.AccountFieldRefs @@ -983,6 +1058,20 @@ export const UserScalarFieldEnum = { export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum] +export const UserProfileScalarFieldEnum = { + id: 'id', + userId: 'userId', + bio: 'bio', + city: 'city', + interests: 'interests', + instagram: 'instagram', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type UserProfileScalarFieldEnum = (typeof UserProfileScalarFieldEnum)[keyof typeof UserProfileScalarFieldEnum] + + export const AccountScalarFieldEnum = { id: 'id', userId: 'userId', @@ -1346,6 +1435,7 @@ export type PrismaClientOptions = ({ } export type GlobalOmitConfig = { user?: Prisma.UserOmit + userProfile?: Prisma.UserProfileOmit account?: Prisma.AccountOmit organizerVerification?: Prisma.OrganizerVerificationOmit trip?: Prisma.TripOmit diff --git a/app/generated/prisma/internal/prismaNamespaceBrowser.ts b/app/generated/prisma/internal/prismaNamespaceBrowser.ts index fa4c22f..7e7c088 100644 --- a/app/generated/prisma/internal/prismaNamespaceBrowser.ts +++ b/app/generated/prisma/internal/prismaNamespaceBrowser.ts @@ -52,6 +52,7 @@ export const AnyNull = runtime.AnyNull export const ModelName = { User: 'User', + UserProfile: 'UserProfile', Account: 'Account', OrganizerVerification: 'OrganizerVerification', Trip: 'Trip', @@ -92,6 +93,20 @@ export const UserScalarFieldEnum = { export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum] +export const UserProfileScalarFieldEnum = { + id: 'id', + userId: 'userId', + bio: 'bio', + city: 'city', + interests: 'interests', + instagram: 'instagram', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type UserProfileScalarFieldEnum = (typeof UserProfileScalarFieldEnum)[keyof typeof UserProfileScalarFieldEnum] + + export const AccountScalarFieldEnum = { id: 'id', userId: 'userId', diff --git a/app/generated/prisma/models.ts b/app/generated/prisma/models.ts index 24a7fdc..b631513 100644 --- a/app/generated/prisma/models.ts +++ b/app/generated/prisma/models.ts @@ -9,6 +9,7 @@ * 🟢 You can import this file directly. */ export type * from './models/User' +export type * from './models/UserProfile' export type * from './models/Account' export type * from './models/OrganizerVerification' export type * from './models/Trip' diff --git a/app/generated/prisma/models/User.ts b/app/generated/prisma/models/User.ts index bd5b0c5..484f04f 100644 --- a/app/generated/prisma/models/User.ts +++ b/app/generated/prisma/models/User.ts @@ -228,6 +228,7 @@ export type UserWhereInput = { tripReviews?: Prisma.TripReviewListRelationFilter organizerVerification?: Prisma.XOR | null reviewedVerifications?: Prisma.OrganizerVerificationListRelationFilter + profile?: Prisma.XOR | null } export type UserOrderByWithRelationInput = { @@ -247,6 +248,7 @@ export type UserOrderByWithRelationInput = { tripReviews?: Prisma.TripReviewOrderByRelationAggregateInput organizerVerification?: Prisma.OrganizerVerificationOrderByWithRelationInput reviewedVerifications?: Prisma.OrganizerVerificationOrderByRelationAggregateInput + profile?: Prisma.UserProfileOrderByWithRelationInput } export type UserWhereUniqueInput = Prisma.AtLeast<{ @@ -269,6 +271,7 @@ export type UserWhereUniqueInput = Prisma.AtLeast<{ tripReviews?: Prisma.TripReviewListRelationFilter organizerVerification?: Prisma.XOR | null reviewedVerifications?: Prisma.OrganizerVerificationListRelationFilter + profile?: Prisma.XOR | null }, "id" | "email"> export type UserOrderByWithAggregationInput = { @@ -320,6 +323,7 @@ export type UserCreateInput = { tripReviews?: Prisma.TripReviewCreateNestedManyWithoutUserInput organizerVerification?: Prisma.OrganizerVerificationCreateNestedOneWithoutUserInput reviewedVerifications?: Prisma.OrganizerVerificationCreateNestedManyWithoutReviewedByInput + profile?: Prisma.UserProfileCreateNestedOneWithoutUserInput } export type UserUncheckedCreateInput = { @@ -339,6 +343,7 @@ export type UserUncheckedCreateInput = { tripReviews?: Prisma.TripReviewUncheckedCreateNestedManyWithoutUserInput organizerVerification?: Prisma.OrganizerVerificationUncheckedCreateNestedOneWithoutUserInput reviewedVerifications?: Prisma.OrganizerVerificationUncheckedCreateNestedManyWithoutReviewedByInput + profile?: Prisma.UserProfileUncheckedCreateNestedOneWithoutUserInput } export type UserUpdateInput = { @@ -358,6 +363,7 @@ export type UserUpdateInput = { tripReviews?: Prisma.TripReviewUpdateManyWithoutUserNestedInput organizerVerification?: Prisma.OrganizerVerificationUpdateOneWithoutUserNestedInput reviewedVerifications?: Prisma.OrganizerVerificationUpdateManyWithoutReviewedByNestedInput + profile?: Prisma.UserProfileUpdateOneWithoutUserNestedInput } export type UserUncheckedUpdateInput = { @@ -377,6 +383,7 @@ export type UserUncheckedUpdateInput = { tripReviews?: Prisma.TripReviewUncheckedUpdateManyWithoutUserNestedInput organizerVerification?: Prisma.OrganizerVerificationUncheckedUpdateOneWithoutUserNestedInput reviewedVerifications?: Prisma.OrganizerVerificationUncheckedUpdateManyWithoutReviewedByNestedInput + profile?: Prisma.UserProfileUncheckedUpdateOneWithoutUserNestedInput } export type UserCreateManyInput = { @@ -487,6 +494,20 @@ export type DateTimeFieldUpdateOperationsInput = { set?: Date | string } +export type UserCreateNestedOneWithoutProfileInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserCreateOrConnectWithoutProfileInput + connect?: Prisma.UserWhereUniqueInput +} + +export type UserUpdateOneRequiredWithoutProfileNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserCreateOrConnectWithoutProfileInput + upsert?: Prisma.UserUpsertWithoutProfileInput + connect?: Prisma.UserWhereUniqueInput + update?: Prisma.XOR, Prisma.UserUncheckedUpdateWithoutProfileInput> +} + export type UserCreateNestedOneWithoutAccountsInput = { create?: Prisma.XOR connectOrCreate?: Prisma.UserCreateOrConnectWithoutAccountsInput @@ -573,6 +594,98 @@ export type UserUpdateOneRequiredWithoutParticipationsNestedInput = { update?: Prisma.XOR, Prisma.UserUncheckedUpdateWithoutParticipationsInput> } +export type UserCreateWithoutProfileInput = { + id?: string + name: string + email: string + password?: string | null + image?: string | null + emailVerified?: Date | string | null + acceptedTermsAndPrivacy?: boolean + acceptedAt?: Date | string | null + createdAt?: Date | string + updatedAt?: Date | string + accounts?: Prisma.AccountCreateNestedManyWithoutUserInput + trips?: Prisma.TripCreateNestedManyWithoutOrganizerInput + participations?: Prisma.TripParticipantCreateNestedManyWithoutUserInput + tripReviews?: Prisma.TripReviewCreateNestedManyWithoutUserInput + organizerVerification?: Prisma.OrganizerVerificationCreateNestedOneWithoutUserInput + reviewedVerifications?: Prisma.OrganizerVerificationCreateNestedManyWithoutReviewedByInput +} + +export type UserUncheckedCreateWithoutProfileInput = { + id?: string + name: string + email: string + password?: string | null + image?: string | null + emailVerified?: Date | string | null + acceptedTermsAndPrivacy?: boolean + acceptedAt?: Date | string | null + createdAt?: Date | string + updatedAt?: Date | string + accounts?: Prisma.AccountUncheckedCreateNestedManyWithoutUserInput + trips?: Prisma.TripUncheckedCreateNestedManyWithoutOrganizerInput + participations?: Prisma.TripParticipantUncheckedCreateNestedManyWithoutUserInput + tripReviews?: Prisma.TripReviewUncheckedCreateNestedManyWithoutUserInput + organizerVerification?: Prisma.OrganizerVerificationUncheckedCreateNestedOneWithoutUserInput + reviewedVerifications?: Prisma.OrganizerVerificationUncheckedCreateNestedManyWithoutReviewedByInput +} + +export type UserCreateOrConnectWithoutProfileInput = { + where: Prisma.UserWhereUniqueInput + create: Prisma.XOR +} + +export type UserUpsertWithoutProfileInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.UserWhereInput +} + +export type UserUpdateToOneWithWhereWithoutProfileInput = { + where?: Prisma.UserWhereInput + data: Prisma.XOR +} + +export type UserUpdateWithoutProfileInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + email?: Prisma.StringFieldUpdateOperationsInput | string + password?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + image?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + emailVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + acceptedTermsAndPrivacy?: Prisma.BoolFieldUpdateOperationsInput | boolean + acceptedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + accounts?: Prisma.AccountUpdateManyWithoutUserNestedInput + trips?: Prisma.TripUpdateManyWithoutOrganizerNestedInput + participations?: Prisma.TripParticipantUpdateManyWithoutUserNestedInput + tripReviews?: Prisma.TripReviewUpdateManyWithoutUserNestedInput + organizerVerification?: Prisma.OrganizerVerificationUpdateOneWithoutUserNestedInput + reviewedVerifications?: Prisma.OrganizerVerificationUpdateManyWithoutReviewedByNestedInput +} + +export type UserUncheckedUpdateWithoutProfileInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + email?: Prisma.StringFieldUpdateOperationsInput | string + password?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + image?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + emailVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + acceptedTermsAndPrivacy?: Prisma.BoolFieldUpdateOperationsInput | boolean + acceptedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + accounts?: Prisma.AccountUncheckedUpdateManyWithoutUserNestedInput + trips?: Prisma.TripUncheckedUpdateManyWithoutOrganizerNestedInput + participations?: Prisma.TripParticipantUncheckedUpdateManyWithoutUserNestedInput + tripReviews?: Prisma.TripReviewUncheckedUpdateManyWithoutUserNestedInput + organizerVerification?: Prisma.OrganizerVerificationUncheckedUpdateOneWithoutUserNestedInput + reviewedVerifications?: Prisma.OrganizerVerificationUncheckedUpdateManyWithoutReviewedByNestedInput +} + export type UserCreateWithoutAccountsInput = { id?: string name: string @@ -589,6 +702,7 @@ export type UserCreateWithoutAccountsInput = { tripReviews?: Prisma.TripReviewCreateNestedManyWithoutUserInput organizerVerification?: Prisma.OrganizerVerificationCreateNestedOneWithoutUserInput reviewedVerifications?: Prisma.OrganizerVerificationCreateNestedManyWithoutReviewedByInput + profile?: Prisma.UserProfileCreateNestedOneWithoutUserInput } export type UserUncheckedCreateWithoutAccountsInput = { @@ -607,6 +721,7 @@ export type UserUncheckedCreateWithoutAccountsInput = { tripReviews?: Prisma.TripReviewUncheckedCreateNestedManyWithoutUserInput organizerVerification?: Prisma.OrganizerVerificationUncheckedCreateNestedOneWithoutUserInput reviewedVerifications?: Prisma.OrganizerVerificationUncheckedCreateNestedManyWithoutReviewedByInput + profile?: Prisma.UserProfileUncheckedCreateNestedOneWithoutUserInput } export type UserCreateOrConnectWithoutAccountsInput = { @@ -641,6 +756,7 @@ export type UserUpdateWithoutAccountsInput = { tripReviews?: Prisma.TripReviewUpdateManyWithoutUserNestedInput organizerVerification?: Prisma.OrganizerVerificationUpdateOneWithoutUserNestedInput reviewedVerifications?: Prisma.OrganizerVerificationUpdateManyWithoutReviewedByNestedInput + profile?: Prisma.UserProfileUpdateOneWithoutUserNestedInput } export type UserUncheckedUpdateWithoutAccountsInput = { @@ -659,6 +775,7 @@ export type UserUncheckedUpdateWithoutAccountsInput = { tripReviews?: Prisma.TripReviewUncheckedUpdateManyWithoutUserNestedInput organizerVerification?: Prisma.OrganizerVerificationUncheckedUpdateOneWithoutUserNestedInput reviewedVerifications?: Prisma.OrganizerVerificationUncheckedUpdateManyWithoutReviewedByNestedInput + profile?: Prisma.UserProfileUncheckedUpdateOneWithoutUserNestedInput } export type UserCreateWithoutOrganizerVerificationInput = { @@ -677,6 +794,7 @@ export type UserCreateWithoutOrganizerVerificationInput = { participations?: Prisma.TripParticipantCreateNestedManyWithoutUserInput tripReviews?: Prisma.TripReviewCreateNestedManyWithoutUserInput reviewedVerifications?: Prisma.OrganizerVerificationCreateNestedManyWithoutReviewedByInput + profile?: Prisma.UserProfileCreateNestedOneWithoutUserInput } export type UserUncheckedCreateWithoutOrganizerVerificationInput = { @@ -695,6 +813,7 @@ export type UserUncheckedCreateWithoutOrganizerVerificationInput = { participations?: Prisma.TripParticipantUncheckedCreateNestedManyWithoutUserInput tripReviews?: Prisma.TripReviewUncheckedCreateNestedManyWithoutUserInput reviewedVerifications?: Prisma.OrganizerVerificationUncheckedCreateNestedManyWithoutReviewedByInput + profile?: Prisma.UserProfileUncheckedCreateNestedOneWithoutUserInput } export type UserCreateOrConnectWithoutOrganizerVerificationInput = { @@ -718,6 +837,7 @@ export type UserCreateWithoutReviewedVerificationsInput = { participations?: Prisma.TripParticipantCreateNestedManyWithoutUserInput tripReviews?: Prisma.TripReviewCreateNestedManyWithoutUserInput organizerVerification?: Prisma.OrganizerVerificationCreateNestedOneWithoutUserInput + profile?: Prisma.UserProfileCreateNestedOneWithoutUserInput } export type UserUncheckedCreateWithoutReviewedVerificationsInput = { @@ -736,6 +856,7 @@ export type UserUncheckedCreateWithoutReviewedVerificationsInput = { participations?: Prisma.TripParticipantUncheckedCreateNestedManyWithoutUserInput tripReviews?: Prisma.TripReviewUncheckedCreateNestedManyWithoutUserInput organizerVerification?: Prisma.OrganizerVerificationUncheckedCreateNestedOneWithoutUserInput + profile?: Prisma.UserProfileUncheckedCreateNestedOneWithoutUserInput } export type UserCreateOrConnectWithoutReviewedVerificationsInput = { @@ -770,6 +891,7 @@ export type UserUpdateWithoutOrganizerVerificationInput = { participations?: Prisma.TripParticipantUpdateManyWithoutUserNestedInput tripReviews?: Prisma.TripReviewUpdateManyWithoutUserNestedInput reviewedVerifications?: Prisma.OrganizerVerificationUpdateManyWithoutReviewedByNestedInput + profile?: Prisma.UserProfileUpdateOneWithoutUserNestedInput } export type UserUncheckedUpdateWithoutOrganizerVerificationInput = { @@ -788,6 +910,7 @@ export type UserUncheckedUpdateWithoutOrganizerVerificationInput = { participations?: Prisma.TripParticipantUncheckedUpdateManyWithoutUserNestedInput tripReviews?: Prisma.TripReviewUncheckedUpdateManyWithoutUserNestedInput reviewedVerifications?: Prisma.OrganizerVerificationUncheckedUpdateManyWithoutReviewedByNestedInput + profile?: Prisma.UserProfileUncheckedUpdateOneWithoutUserNestedInput } export type UserUpsertWithoutReviewedVerificationsInput = { @@ -817,6 +940,7 @@ export type UserUpdateWithoutReviewedVerificationsInput = { participations?: Prisma.TripParticipantUpdateManyWithoutUserNestedInput tripReviews?: Prisma.TripReviewUpdateManyWithoutUserNestedInput organizerVerification?: Prisma.OrganizerVerificationUpdateOneWithoutUserNestedInput + profile?: Prisma.UserProfileUpdateOneWithoutUserNestedInput } export type UserUncheckedUpdateWithoutReviewedVerificationsInput = { @@ -835,6 +959,7 @@ export type UserUncheckedUpdateWithoutReviewedVerificationsInput = { participations?: Prisma.TripParticipantUncheckedUpdateManyWithoutUserNestedInput tripReviews?: Prisma.TripReviewUncheckedUpdateManyWithoutUserNestedInput organizerVerification?: Prisma.OrganizerVerificationUncheckedUpdateOneWithoutUserNestedInput + profile?: Prisma.UserProfileUncheckedUpdateOneWithoutUserNestedInput } export type UserCreateWithoutTripsInput = { @@ -853,6 +978,7 @@ export type UserCreateWithoutTripsInput = { tripReviews?: Prisma.TripReviewCreateNestedManyWithoutUserInput organizerVerification?: Prisma.OrganizerVerificationCreateNestedOneWithoutUserInput reviewedVerifications?: Prisma.OrganizerVerificationCreateNestedManyWithoutReviewedByInput + profile?: Prisma.UserProfileCreateNestedOneWithoutUserInput } export type UserUncheckedCreateWithoutTripsInput = { @@ -871,6 +997,7 @@ export type UserUncheckedCreateWithoutTripsInput = { tripReviews?: Prisma.TripReviewUncheckedCreateNestedManyWithoutUserInput organizerVerification?: Prisma.OrganizerVerificationUncheckedCreateNestedOneWithoutUserInput reviewedVerifications?: Prisma.OrganizerVerificationUncheckedCreateNestedManyWithoutReviewedByInput + profile?: Prisma.UserProfileUncheckedCreateNestedOneWithoutUserInput } export type UserCreateOrConnectWithoutTripsInput = { @@ -905,6 +1032,7 @@ export type UserUpdateWithoutTripsInput = { tripReviews?: Prisma.TripReviewUpdateManyWithoutUserNestedInput organizerVerification?: Prisma.OrganizerVerificationUpdateOneWithoutUserNestedInput reviewedVerifications?: Prisma.OrganizerVerificationUpdateManyWithoutReviewedByNestedInput + profile?: Prisma.UserProfileUpdateOneWithoutUserNestedInput } export type UserUncheckedUpdateWithoutTripsInput = { @@ -923,6 +1051,7 @@ export type UserUncheckedUpdateWithoutTripsInput = { tripReviews?: Prisma.TripReviewUncheckedUpdateManyWithoutUserNestedInput organizerVerification?: Prisma.OrganizerVerificationUncheckedUpdateOneWithoutUserNestedInput reviewedVerifications?: Prisma.OrganizerVerificationUncheckedUpdateManyWithoutReviewedByNestedInput + profile?: Prisma.UserProfileUncheckedUpdateOneWithoutUserNestedInput } export type UserCreateWithoutTripReviewsInput = { @@ -941,6 +1070,7 @@ export type UserCreateWithoutTripReviewsInput = { participations?: Prisma.TripParticipantCreateNestedManyWithoutUserInput organizerVerification?: Prisma.OrganizerVerificationCreateNestedOneWithoutUserInput reviewedVerifications?: Prisma.OrganizerVerificationCreateNestedManyWithoutReviewedByInput + profile?: Prisma.UserProfileCreateNestedOneWithoutUserInput } export type UserUncheckedCreateWithoutTripReviewsInput = { @@ -959,6 +1089,7 @@ export type UserUncheckedCreateWithoutTripReviewsInput = { participations?: Prisma.TripParticipantUncheckedCreateNestedManyWithoutUserInput organizerVerification?: Prisma.OrganizerVerificationUncheckedCreateNestedOneWithoutUserInput reviewedVerifications?: Prisma.OrganizerVerificationUncheckedCreateNestedManyWithoutReviewedByInput + profile?: Prisma.UserProfileUncheckedCreateNestedOneWithoutUserInput } export type UserCreateOrConnectWithoutTripReviewsInput = { @@ -993,6 +1124,7 @@ export type UserUpdateWithoutTripReviewsInput = { participations?: Prisma.TripParticipantUpdateManyWithoutUserNestedInput organizerVerification?: Prisma.OrganizerVerificationUpdateOneWithoutUserNestedInput reviewedVerifications?: Prisma.OrganizerVerificationUpdateManyWithoutReviewedByNestedInput + profile?: Prisma.UserProfileUpdateOneWithoutUserNestedInput } export type UserUncheckedUpdateWithoutTripReviewsInput = { @@ -1011,6 +1143,7 @@ export type UserUncheckedUpdateWithoutTripReviewsInput = { participations?: Prisma.TripParticipantUncheckedUpdateManyWithoutUserNestedInput organizerVerification?: Prisma.OrganizerVerificationUncheckedUpdateOneWithoutUserNestedInput reviewedVerifications?: Prisma.OrganizerVerificationUncheckedUpdateManyWithoutReviewedByNestedInput + profile?: Prisma.UserProfileUncheckedUpdateOneWithoutUserNestedInput } export type UserCreateWithoutParticipationsInput = { @@ -1029,6 +1162,7 @@ export type UserCreateWithoutParticipationsInput = { tripReviews?: Prisma.TripReviewCreateNestedManyWithoutUserInput organizerVerification?: Prisma.OrganizerVerificationCreateNestedOneWithoutUserInput reviewedVerifications?: Prisma.OrganizerVerificationCreateNestedManyWithoutReviewedByInput + profile?: Prisma.UserProfileCreateNestedOneWithoutUserInput } export type UserUncheckedCreateWithoutParticipationsInput = { @@ -1047,6 +1181,7 @@ export type UserUncheckedCreateWithoutParticipationsInput = { tripReviews?: Prisma.TripReviewUncheckedCreateNestedManyWithoutUserInput organizerVerification?: Prisma.OrganizerVerificationUncheckedCreateNestedOneWithoutUserInput reviewedVerifications?: Prisma.OrganizerVerificationUncheckedCreateNestedManyWithoutReviewedByInput + profile?: Prisma.UserProfileUncheckedCreateNestedOneWithoutUserInput } export type UserCreateOrConnectWithoutParticipationsInput = { @@ -1081,6 +1216,7 @@ export type UserUpdateWithoutParticipationsInput = { tripReviews?: Prisma.TripReviewUpdateManyWithoutUserNestedInput organizerVerification?: Prisma.OrganizerVerificationUpdateOneWithoutUserNestedInput reviewedVerifications?: Prisma.OrganizerVerificationUpdateManyWithoutReviewedByNestedInput + profile?: Prisma.UserProfileUpdateOneWithoutUserNestedInput } export type UserUncheckedUpdateWithoutParticipationsInput = { @@ -1099,6 +1235,7 @@ export type UserUncheckedUpdateWithoutParticipationsInput = { tripReviews?: Prisma.TripReviewUncheckedUpdateManyWithoutUserNestedInput organizerVerification?: Prisma.OrganizerVerificationUncheckedUpdateOneWithoutUserNestedInput reviewedVerifications?: Prisma.OrganizerVerificationUncheckedUpdateManyWithoutReviewedByNestedInput + profile?: Prisma.UserProfileUncheckedUpdateOneWithoutUserNestedInput } @@ -1185,6 +1322,7 @@ export type UserSelect organizerVerification?: boolean | Prisma.User$organizerVerificationArgs reviewedVerifications?: boolean | Prisma.User$reviewedVerificationsArgs + profile?: boolean | Prisma.User$profileArgs _count?: boolean | Prisma.UserCountOutputTypeDefaultArgs }, ExtArgs["result"]["user"]> @@ -1235,6 +1373,7 @@ export type UserInclude organizerVerification?: boolean | Prisma.User$organizerVerificationArgs reviewedVerifications?: boolean | Prisma.User$reviewedVerificationsArgs + profile?: boolean | Prisma.User$profileArgs _count?: boolean | Prisma.UserCountOutputTypeDefaultArgs } export type UserIncludeCreateManyAndReturn = {} @@ -1249,6 +1388,7 @@ export type $UserPayload[] organizerVerification: Prisma.$OrganizerVerificationPayload | null reviewedVerifications: Prisma.$OrganizerVerificationPayload[] + profile: Prisma.$UserProfilePayload | null } scalars: runtime.Types.Extensions.GetPayloadResult<{ id: string @@ -1673,6 +1813,7 @@ export interface Prisma__UserClient = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> organizerVerification = {}>(args?: Prisma.Subset>): Prisma.Prisma__OrganizerVerificationClient, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> reviewedVerifications = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + profile = {}>(args?: Prisma.Subset>): Prisma.Prisma__UserProfileClient, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. @@ -2243,6 +2384,25 @@ export type User$reviewedVerificationsArgs = { + /** + * Select specific fields to fetch from the UserProfile + */ + select?: Prisma.UserProfileSelect | null + /** + * Omit specific fields from the UserProfile + */ + omit?: Prisma.UserProfileOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserProfileInclude | null + where?: Prisma.UserProfileWhereInput +} + /** * User without action */ diff --git a/app/generated/prisma/models/UserProfile.ts b/app/generated/prisma/models/UserProfile.ts new file mode 100644 index 0000000..be26b8c --- /dev/null +++ b/app/generated/prisma/models/UserProfile.ts @@ -0,0 +1,1415 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `UserProfile` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/client" +import type * as $Enums from "../enums" +import type * as Prisma from "../internal/prismaNamespace" + +/** + * Model UserProfile + * Profil sosial publik. Berisi info yang user pilih untuk dibagikan ke peserta lain + * (bio, kota, minat). Tidak menyimpan data sensitif — KYC tetap di OrganizerVerification. + */ +export type UserProfileModel = runtime.Types.Result.DefaultSelection + +export type AggregateUserProfile = { + _count: UserProfileCountAggregateOutputType | null + _min: UserProfileMinAggregateOutputType | null + _max: UserProfileMaxAggregateOutputType | null +} + +export type UserProfileMinAggregateOutputType = { + id: string | null + userId: string | null + bio: string | null + city: string | null + instagram: string | null + createdAt: Date | null + updatedAt: Date | null +} + +export type UserProfileMaxAggregateOutputType = { + id: string | null + userId: string | null + bio: string | null + city: string | null + instagram: string | null + createdAt: Date | null + updatedAt: Date | null +} + +export type UserProfileCountAggregateOutputType = { + id: number + userId: number + bio: number + city: number + interests: number + instagram: number + createdAt: number + updatedAt: number + _all: number +} + + +export type UserProfileMinAggregateInputType = { + id?: true + userId?: true + bio?: true + city?: true + instagram?: true + createdAt?: true + updatedAt?: true +} + +export type UserProfileMaxAggregateInputType = { + id?: true + userId?: true + bio?: true + city?: true + instagram?: true + createdAt?: true + updatedAt?: true +} + +export type UserProfileCountAggregateInputType = { + id?: true + userId?: true + bio?: true + city?: true + interests?: true + instagram?: true + createdAt?: true + updatedAt?: true + _all?: true +} + +export type UserProfileAggregateArgs = { + /** + * Filter which UserProfile to aggregate. + */ + where?: Prisma.UserProfileWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of UserProfiles to fetch. + */ + orderBy?: Prisma.UserProfileOrderByWithRelationInput | Prisma.UserProfileOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.UserProfileWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` UserProfiles from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` UserProfiles. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned UserProfiles + **/ + _count?: true | UserProfileCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: UserProfileMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: UserProfileMaxAggregateInputType +} + +export type GetUserProfileAggregateType = { + [P in keyof T & keyof AggregateUserProfile]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type UserProfileGroupByArgs = { + where?: Prisma.UserProfileWhereInput + orderBy?: Prisma.UserProfileOrderByWithAggregationInput | Prisma.UserProfileOrderByWithAggregationInput[] + by: Prisma.UserProfileScalarFieldEnum[] | Prisma.UserProfileScalarFieldEnum + having?: Prisma.UserProfileScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: UserProfileCountAggregateInputType | true + _min?: UserProfileMinAggregateInputType + _max?: UserProfileMaxAggregateInputType +} + +export type UserProfileGroupByOutputType = { + id: string + userId: string + bio: string | null + city: string | null + interests: string[] + instagram: string | null + createdAt: Date + updatedAt: Date + _count: UserProfileCountAggregateOutputType | null + _min: UserProfileMinAggregateOutputType | null + _max: UserProfileMaxAggregateOutputType | null +} + +export type GetUserProfileGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof UserProfileGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type UserProfileWhereInput = { + AND?: Prisma.UserProfileWhereInput | Prisma.UserProfileWhereInput[] + OR?: Prisma.UserProfileWhereInput[] + NOT?: Prisma.UserProfileWhereInput | Prisma.UserProfileWhereInput[] + id?: Prisma.StringFilter<"UserProfile"> | string + userId?: Prisma.StringFilter<"UserProfile"> | string + bio?: Prisma.StringNullableFilter<"UserProfile"> | string | null + city?: Prisma.StringNullableFilter<"UserProfile"> | string | null + interests?: Prisma.StringNullableListFilter<"UserProfile"> + instagram?: Prisma.StringNullableFilter<"UserProfile"> | string | null + createdAt?: Prisma.DateTimeFilter<"UserProfile"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"UserProfile"> | Date | string + user?: Prisma.XOR +} + +export type UserProfileOrderByWithRelationInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + bio?: Prisma.SortOrderInput | Prisma.SortOrder + city?: Prisma.SortOrderInput | Prisma.SortOrder + interests?: Prisma.SortOrder + instagram?: Prisma.SortOrderInput | Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + user?: Prisma.UserOrderByWithRelationInput +} + +export type UserProfileWhereUniqueInput = Prisma.AtLeast<{ + id?: string + userId?: string + AND?: Prisma.UserProfileWhereInput | Prisma.UserProfileWhereInput[] + OR?: Prisma.UserProfileWhereInput[] + NOT?: Prisma.UserProfileWhereInput | Prisma.UserProfileWhereInput[] + bio?: Prisma.StringNullableFilter<"UserProfile"> | string | null + city?: Prisma.StringNullableFilter<"UserProfile"> | string | null + interests?: Prisma.StringNullableListFilter<"UserProfile"> + instagram?: Prisma.StringNullableFilter<"UserProfile"> | string | null + createdAt?: Prisma.DateTimeFilter<"UserProfile"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"UserProfile"> | Date | string + user?: Prisma.XOR +}, "id" | "userId"> + +export type UserProfileOrderByWithAggregationInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + bio?: Prisma.SortOrderInput | Prisma.SortOrder + city?: Prisma.SortOrderInput | Prisma.SortOrder + interests?: Prisma.SortOrder + instagram?: Prisma.SortOrderInput | Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + _count?: Prisma.UserProfileCountOrderByAggregateInput + _max?: Prisma.UserProfileMaxOrderByAggregateInput + _min?: Prisma.UserProfileMinOrderByAggregateInput +} + +export type UserProfileScalarWhereWithAggregatesInput = { + AND?: Prisma.UserProfileScalarWhereWithAggregatesInput | Prisma.UserProfileScalarWhereWithAggregatesInput[] + OR?: Prisma.UserProfileScalarWhereWithAggregatesInput[] + NOT?: Prisma.UserProfileScalarWhereWithAggregatesInput | Prisma.UserProfileScalarWhereWithAggregatesInput[] + id?: Prisma.StringWithAggregatesFilter<"UserProfile"> | string + userId?: Prisma.StringWithAggregatesFilter<"UserProfile"> | string + bio?: Prisma.StringNullableWithAggregatesFilter<"UserProfile"> | string | null + city?: Prisma.StringNullableWithAggregatesFilter<"UserProfile"> | string | null + interests?: Prisma.StringNullableListFilter<"UserProfile"> + instagram?: Prisma.StringNullableWithAggregatesFilter<"UserProfile"> | string | null + createdAt?: Prisma.DateTimeWithAggregatesFilter<"UserProfile"> | Date | string + updatedAt?: Prisma.DateTimeWithAggregatesFilter<"UserProfile"> | Date | string +} + +export type UserProfileCreateInput = { + id?: string + bio?: string | null + city?: string | null + interests?: Prisma.UserProfileCreateinterestsInput | string[] + instagram?: string | null + createdAt?: Date | string + updatedAt?: Date | string + user: Prisma.UserCreateNestedOneWithoutProfileInput +} + +export type UserProfileUncheckedCreateInput = { + id?: string + userId: string + bio?: string | null + city?: string | null + interests?: Prisma.UserProfileCreateinterestsInput | string[] + instagram?: string | null + createdAt?: Date | string + updatedAt?: Date | string +} + +export type UserProfileUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + bio?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + city?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + interests?: Prisma.UserProfileUpdateinterestsInput | string[] + instagram?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + user?: Prisma.UserUpdateOneRequiredWithoutProfileNestedInput +} + +export type UserProfileUncheckedUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + userId?: Prisma.StringFieldUpdateOperationsInput | string + bio?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + city?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + interests?: Prisma.UserProfileUpdateinterestsInput | string[] + instagram?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type UserProfileCreateManyInput = { + id?: string + userId: string + bio?: string | null + city?: string | null + interests?: Prisma.UserProfileCreateinterestsInput | string[] + instagram?: string | null + createdAt?: Date | string + updatedAt?: Date | string +} + +export type UserProfileUpdateManyMutationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + bio?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + city?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + interests?: Prisma.UserProfileUpdateinterestsInput | string[] + instagram?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type UserProfileUncheckedUpdateManyInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + userId?: Prisma.StringFieldUpdateOperationsInput | string + bio?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + city?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + interests?: Prisma.UserProfileUpdateinterestsInput | string[] + instagram?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type UserProfileNullableScalarRelationFilter = { + is?: Prisma.UserProfileWhereInput | null + isNot?: Prisma.UserProfileWhereInput | null +} + +export type StringNullableListFilter<$PrismaModel = never> = { + equals?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null + has?: string | Prisma.StringFieldRefInput<$PrismaModel> | null + hasEvery?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> + hasSome?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> + isEmpty?: boolean +} + +export type UserProfileCountOrderByAggregateInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + bio?: Prisma.SortOrder + city?: Prisma.SortOrder + interests?: Prisma.SortOrder + instagram?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type UserProfileMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + bio?: Prisma.SortOrder + city?: Prisma.SortOrder + instagram?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type UserProfileMinOrderByAggregateInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + bio?: Prisma.SortOrder + city?: Prisma.SortOrder + instagram?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type UserProfileCreateNestedOneWithoutUserInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserProfileCreateOrConnectWithoutUserInput + connect?: Prisma.UserProfileWhereUniqueInput +} + +export type UserProfileUncheckedCreateNestedOneWithoutUserInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserProfileCreateOrConnectWithoutUserInput + connect?: Prisma.UserProfileWhereUniqueInput +} + +export type UserProfileUpdateOneWithoutUserNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserProfileCreateOrConnectWithoutUserInput + upsert?: Prisma.UserProfileUpsertWithoutUserInput + disconnect?: Prisma.UserProfileWhereInput | boolean + delete?: Prisma.UserProfileWhereInput | boolean + connect?: Prisma.UserProfileWhereUniqueInput + update?: Prisma.XOR, Prisma.UserProfileUncheckedUpdateWithoutUserInput> +} + +export type UserProfileUncheckedUpdateOneWithoutUserNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserProfileCreateOrConnectWithoutUserInput + upsert?: Prisma.UserProfileUpsertWithoutUserInput + disconnect?: Prisma.UserProfileWhereInput | boolean + delete?: Prisma.UserProfileWhereInput | boolean + connect?: Prisma.UserProfileWhereUniqueInput + update?: Prisma.XOR, Prisma.UserProfileUncheckedUpdateWithoutUserInput> +} + +export type UserProfileCreateinterestsInput = { + set: string[] +} + +export type UserProfileUpdateinterestsInput = { + set?: string[] + push?: string | string[] +} + +export type UserProfileCreateWithoutUserInput = { + id?: string + bio?: string | null + city?: string | null + interests?: Prisma.UserProfileCreateinterestsInput | string[] + instagram?: string | null + createdAt?: Date | string + updatedAt?: Date | string +} + +export type UserProfileUncheckedCreateWithoutUserInput = { + id?: string + bio?: string | null + city?: string | null + interests?: Prisma.UserProfileCreateinterestsInput | string[] + instagram?: string | null + createdAt?: Date | string + updatedAt?: Date | string +} + +export type UserProfileCreateOrConnectWithoutUserInput = { + where: Prisma.UserProfileWhereUniqueInput + create: Prisma.XOR +} + +export type UserProfileUpsertWithoutUserInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.UserProfileWhereInput +} + +export type UserProfileUpdateToOneWithWhereWithoutUserInput = { + where?: Prisma.UserProfileWhereInput + data: Prisma.XOR +} + +export type UserProfileUpdateWithoutUserInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + bio?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + city?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + interests?: Prisma.UserProfileUpdateinterestsInput | string[] + instagram?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type UserProfileUncheckedUpdateWithoutUserInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + bio?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + city?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + interests?: Prisma.UserProfileUpdateinterestsInput | string[] + instagram?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + + + +export type UserProfileSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + userId?: boolean + bio?: boolean + city?: boolean + interests?: boolean + instagram?: boolean + createdAt?: boolean + updatedAt?: boolean + user?: boolean | Prisma.UserDefaultArgs +}, ExtArgs["result"]["userProfile"]> + +export type UserProfileSelectCreateManyAndReturn = runtime.Types.Extensions.GetSelect<{ + id?: boolean + userId?: boolean + bio?: boolean + city?: boolean + interests?: boolean + instagram?: boolean + createdAt?: boolean + updatedAt?: boolean + user?: boolean | Prisma.UserDefaultArgs +}, ExtArgs["result"]["userProfile"]> + +export type UserProfileSelectUpdateManyAndReturn = runtime.Types.Extensions.GetSelect<{ + id?: boolean + userId?: boolean + bio?: boolean + city?: boolean + interests?: boolean + instagram?: boolean + createdAt?: boolean + updatedAt?: boolean + user?: boolean | Prisma.UserDefaultArgs +}, ExtArgs["result"]["userProfile"]> + +export type UserProfileSelectScalar = { + id?: boolean + userId?: boolean + bio?: boolean + city?: boolean + interests?: boolean + instagram?: boolean + createdAt?: boolean + updatedAt?: boolean +} + +export type UserProfileOmit = runtime.Types.Extensions.GetOmit<"id" | "userId" | "bio" | "city" | "interests" | "instagram" | "createdAt" | "updatedAt", ExtArgs["result"]["userProfile"]> +export type UserProfileInclude = { + user?: boolean | Prisma.UserDefaultArgs +} +export type UserProfileIncludeCreateManyAndReturn = { + user?: boolean | Prisma.UserDefaultArgs +} +export type UserProfileIncludeUpdateManyAndReturn = { + user?: boolean | Prisma.UserDefaultArgs +} + +export type $UserProfilePayload = { + name: "UserProfile" + objects: { + user: Prisma.$UserPayload + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: string + userId: string + /** + * Bio singkat, teks bebas + */ + bio: string | null + /** + * Kota domisili (teks bebas, mis. "Bandung", "Jakarta Selatan") + */ + city: string | null + /** + * Tag minat aktivitas (mis. ["hiking", "fotografi", "yoga"]) + */ + interests: string[] + /** + * Username Instagram (tanpa @, opsional) + */ + instagram: string | null + createdAt: Date + updatedAt: Date + }, ExtArgs["result"]["userProfile"]> + composites: {} +} + +export type UserProfileGetPayload = runtime.Types.Result.GetResult + +export type UserProfileCountArgs = + Omit & { + select?: UserProfileCountAggregateInputType | true + } + +export interface UserProfileDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['UserProfile'], meta: { name: 'UserProfile' } } + /** + * Find zero or one UserProfile that matches the filter. + * @param {UserProfileFindUniqueArgs} args - Arguments to find a UserProfile + * @example + * // Get one UserProfile + * const userProfile = await prisma.userProfile.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__UserProfileClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one UserProfile that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {UserProfileFindUniqueOrThrowArgs} args - Arguments to find a UserProfile + * @example + * // Get one UserProfile + * const userProfile = await prisma.userProfile.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__UserProfileClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first UserProfile that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserProfileFindFirstArgs} args - Arguments to find a UserProfile + * @example + * // Get one UserProfile + * const userProfile = await prisma.userProfile.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__UserProfileClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first UserProfile that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserProfileFindFirstOrThrowArgs} args - Arguments to find a UserProfile + * @example + * // Get one UserProfile + * const userProfile = await prisma.userProfile.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__UserProfileClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more UserProfiles that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserProfileFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all UserProfiles + * const userProfiles = await prisma.userProfile.findMany() + * + * // Get first 10 UserProfiles + * const userProfiles = await prisma.userProfile.findMany({ take: 10 }) + * + * // Only select the `id` + * const userProfileWithIdOnly = await prisma.userProfile.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a UserProfile. + * @param {UserProfileCreateArgs} args - Arguments to create a UserProfile. + * @example + * // Create one UserProfile + * const UserProfile = await prisma.userProfile.create({ + * data: { + * // ... data to create a UserProfile + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__UserProfileClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many UserProfiles. + * @param {UserProfileCreateManyArgs} args - Arguments to create many UserProfiles. + * @example + * // Create many UserProfiles + * const userProfile = await prisma.userProfile.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create many UserProfiles and returns the data saved in the database. + * @param {UserProfileCreateManyAndReturnArgs} args - Arguments to create many UserProfiles. + * @example + * // Create many UserProfiles + * const userProfile = await prisma.userProfile.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many UserProfiles and only return the `id` + * const userProfileWithIdOnly = await prisma.userProfile.createManyAndReturn({ + * select: { id: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a UserProfile. + * @param {UserProfileDeleteArgs} args - Arguments to delete one UserProfile. + * @example + * // Delete one UserProfile + * const UserProfile = await prisma.userProfile.delete({ + * where: { + * // ... filter to delete one UserProfile + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__UserProfileClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one UserProfile. + * @param {UserProfileUpdateArgs} args - Arguments to update one UserProfile. + * @example + * // Update one UserProfile + * const userProfile = await prisma.userProfile.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__UserProfileClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more UserProfiles. + * @param {UserProfileDeleteManyArgs} args - Arguments to filter UserProfiles to delete. + * @example + * // Delete a few UserProfiles + * const { count } = await prisma.userProfile.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more UserProfiles. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserProfileUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many UserProfiles + * const userProfile = await prisma.userProfile.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more UserProfiles and returns the data updated in the database. + * @param {UserProfileUpdateManyAndReturnArgs} args - Arguments to update many UserProfiles. + * @example + * // Update many UserProfiles + * const userProfile = await prisma.userProfile.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more UserProfiles and only return the `id` + * const userProfileWithIdOnly = await prisma.userProfile.updateManyAndReturn({ + * select: { id: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one UserProfile. + * @param {UserProfileUpsertArgs} args - Arguments to update or create a UserProfile. + * @example + * // Update or create a UserProfile + * const userProfile = await prisma.userProfile.upsert({ + * create: { + * // ... data to create a UserProfile + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the UserProfile we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__UserProfileClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of UserProfiles. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserProfileCountArgs} args - Arguments to filter UserProfiles to count. + * @example + * // Count the number of UserProfiles + * const count = await prisma.userProfile.count({ + * where: { + * // ... the filter for the UserProfiles we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset, + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a UserProfile. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserProfileAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Prisma.Subset): Prisma.PrismaPromise> + + /** + * Group by UserProfile. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserProfileGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends UserProfileGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: UserProfileGroupByArgs['orderBy'] } + : { orderBy?: UserProfileGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys>>, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetUserProfileGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the UserProfile model + */ +readonly fields: UserProfileFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for UserProfile. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__UserProfileClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + user = {}>(args?: Prisma.Subset>): Prisma.Prisma__UserClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise +} + + + + +/** + * Fields of the UserProfile model + */ +export interface UserProfileFieldRefs { + readonly id: Prisma.FieldRef<"UserProfile", 'String'> + readonly userId: Prisma.FieldRef<"UserProfile", 'String'> + readonly bio: Prisma.FieldRef<"UserProfile", 'String'> + readonly city: Prisma.FieldRef<"UserProfile", 'String'> + readonly interests: Prisma.FieldRef<"UserProfile", 'String[]'> + readonly instagram: Prisma.FieldRef<"UserProfile", 'String'> + readonly createdAt: Prisma.FieldRef<"UserProfile", 'DateTime'> + readonly updatedAt: Prisma.FieldRef<"UserProfile", 'DateTime'> +} + + +// Custom InputTypes +/** + * UserProfile findUnique + */ +export type UserProfileFindUniqueArgs = { + /** + * Select specific fields to fetch from the UserProfile + */ + select?: Prisma.UserProfileSelect | null + /** + * Omit specific fields from the UserProfile + */ + omit?: Prisma.UserProfileOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserProfileInclude | null + /** + * Filter, which UserProfile to fetch. + */ + where: Prisma.UserProfileWhereUniqueInput +} + +/** + * UserProfile findUniqueOrThrow + */ +export type UserProfileFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the UserProfile + */ + select?: Prisma.UserProfileSelect | null + /** + * Omit specific fields from the UserProfile + */ + omit?: Prisma.UserProfileOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserProfileInclude | null + /** + * Filter, which UserProfile to fetch. + */ + where: Prisma.UserProfileWhereUniqueInput +} + +/** + * UserProfile findFirst + */ +export type UserProfileFindFirstArgs = { + /** + * Select specific fields to fetch from the UserProfile + */ + select?: Prisma.UserProfileSelect | null + /** + * Omit specific fields from the UserProfile + */ + omit?: Prisma.UserProfileOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserProfileInclude | null + /** + * Filter, which UserProfile to fetch. + */ + where?: Prisma.UserProfileWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of UserProfiles to fetch. + */ + orderBy?: Prisma.UserProfileOrderByWithRelationInput | Prisma.UserProfileOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for UserProfiles. + */ + cursor?: Prisma.UserProfileWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` UserProfiles from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` UserProfiles. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of UserProfiles. + */ + distinct?: Prisma.UserProfileScalarFieldEnum | Prisma.UserProfileScalarFieldEnum[] +} + +/** + * UserProfile findFirstOrThrow + */ +export type UserProfileFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the UserProfile + */ + select?: Prisma.UserProfileSelect | null + /** + * Omit specific fields from the UserProfile + */ + omit?: Prisma.UserProfileOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserProfileInclude | null + /** + * Filter, which UserProfile to fetch. + */ + where?: Prisma.UserProfileWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of UserProfiles to fetch. + */ + orderBy?: Prisma.UserProfileOrderByWithRelationInput | Prisma.UserProfileOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for UserProfiles. + */ + cursor?: Prisma.UserProfileWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` UserProfiles from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` UserProfiles. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of UserProfiles. + */ + distinct?: Prisma.UserProfileScalarFieldEnum | Prisma.UserProfileScalarFieldEnum[] +} + +/** + * UserProfile findMany + */ +export type UserProfileFindManyArgs = { + /** + * Select specific fields to fetch from the UserProfile + */ + select?: Prisma.UserProfileSelect | null + /** + * Omit specific fields from the UserProfile + */ + omit?: Prisma.UserProfileOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserProfileInclude | null + /** + * Filter, which UserProfiles to fetch. + */ + where?: Prisma.UserProfileWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of UserProfiles to fetch. + */ + orderBy?: Prisma.UserProfileOrderByWithRelationInput | Prisma.UserProfileOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing UserProfiles. + */ + cursor?: Prisma.UserProfileWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` UserProfiles from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` UserProfiles. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of UserProfiles. + */ + distinct?: Prisma.UserProfileScalarFieldEnum | Prisma.UserProfileScalarFieldEnum[] +} + +/** + * UserProfile create + */ +export type UserProfileCreateArgs = { + /** + * Select specific fields to fetch from the UserProfile + */ + select?: Prisma.UserProfileSelect | null + /** + * Omit specific fields from the UserProfile + */ + omit?: Prisma.UserProfileOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserProfileInclude | null + /** + * The data needed to create a UserProfile. + */ + data: Prisma.XOR +} + +/** + * UserProfile createMany + */ +export type UserProfileCreateManyArgs = { + /** + * The data used to create many UserProfiles. + */ + data: Prisma.UserProfileCreateManyInput | Prisma.UserProfileCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * UserProfile createManyAndReturn + */ +export type UserProfileCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the UserProfile + */ + select?: Prisma.UserProfileSelectCreateManyAndReturn | null + /** + * Omit specific fields from the UserProfile + */ + omit?: Prisma.UserProfileOmit | null + /** + * The data used to create many UserProfiles. + */ + data: Prisma.UserProfileCreateManyInput | Prisma.UserProfileCreateManyInput[] + skipDuplicates?: boolean + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserProfileIncludeCreateManyAndReturn | null +} + +/** + * UserProfile update + */ +export type UserProfileUpdateArgs = { + /** + * Select specific fields to fetch from the UserProfile + */ + select?: Prisma.UserProfileSelect | null + /** + * Omit specific fields from the UserProfile + */ + omit?: Prisma.UserProfileOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserProfileInclude | null + /** + * The data needed to update a UserProfile. + */ + data: Prisma.XOR + /** + * Choose, which UserProfile to update. + */ + where: Prisma.UserProfileWhereUniqueInput +} + +/** + * UserProfile updateMany + */ +export type UserProfileUpdateManyArgs = { + /** + * The data used to update UserProfiles. + */ + data: Prisma.XOR + /** + * Filter which UserProfiles to update + */ + where?: Prisma.UserProfileWhereInput + /** + * Limit how many UserProfiles to update. + */ + limit?: number +} + +/** + * UserProfile updateManyAndReturn + */ +export type UserProfileUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the UserProfile + */ + select?: Prisma.UserProfileSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the UserProfile + */ + omit?: Prisma.UserProfileOmit | null + /** + * The data used to update UserProfiles. + */ + data: Prisma.XOR + /** + * Filter which UserProfiles to update + */ + where?: Prisma.UserProfileWhereInput + /** + * Limit how many UserProfiles to update. + */ + limit?: number + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserProfileIncludeUpdateManyAndReturn | null +} + +/** + * UserProfile upsert + */ +export type UserProfileUpsertArgs = { + /** + * Select specific fields to fetch from the UserProfile + */ + select?: Prisma.UserProfileSelect | null + /** + * Omit specific fields from the UserProfile + */ + omit?: Prisma.UserProfileOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserProfileInclude | null + /** + * The filter to search for the UserProfile to update in case it exists. + */ + where: Prisma.UserProfileWhereUniqueInput + /** + * In case the UserProfile found by the `where` argument doesn't exist, create a new UserProfile with this data. + */ + create: Prisma.XOR + /** + * In case the UserProfile was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * UserProfile delete + */ +export type UserProfileDeleteArgs = { + /** + * Select specific fields to fetch from the UserProfile + */ + select?: Prisma.UserProfileSelect | null + /** + * Omit specific fields from the UserProfile + */ + omit?: Prisma.UserProfileOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserProfileInclude | null + /** + * Filter which UserProfile to delete. + */ + where: Prisma.UserProfileWhereUniqueInput +} + +/** + * UserProfile deleteMany + */ +export type UserProfileDeleteManyArgs = { + /** + * Filter which UserProfiles to delete + */ + where?: Prisma.UserProfileWhereInput + /** + * Limit how many UserProfiles to delete. + */ + limit?: number +} + +/** + * UserProfile without action + */ +export type UserProfileDefaultArgs = { + /** + * Select specific fields to fetch from the UserProfile + */ + select?: Prisma.UserProfileSelect | null + /** + * Omit specific fields from the UserProfile + */ + omit?: Prisma.UserProfileOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserProfileInclude | null +} diff --git a/app/profile/page.tsx b/app/profile/page.tsx index 072699b..4133042 100644 --- a/app/profile/page.tsx +++ b/app/profile/page.tsx @@ -7,6 +7,7 @@ import { authOptions } from "@/lib/auth"; import { profileService } from "@/server/services/profile.service"; import { TripCard } from "@/features/trip/components/trip-card"; import { ProfileTripRow } from "@/features/profile/components/profile-trip-row"; +import { ProfileEditor } from "@/features/profile/components/profile-editor"; export const metadata: Metadata = { title: "Profil Saya", @@ -19,7 +20,10 @@ export default async function ProfilePage() { redirect("/login?callbackUrl=/profile"); } - const data = await profileService.getProfileDashboard(session.user.id); + const [data, ownProfile] = await Promise.all([ + profileService.getProfileDashboard(session.user.id), + profileService.getOwnProfile(session.user.id), + ]); const { user, isVerifiedOrganizer, @@ -80,6 +84,23 @@ export default async function ProfilePage() { + {/* Profil sosial publik */} +
+ +
+ {/* Trip selesai — akses ulasan (trip ini tidak muncul di Open Trip) */} {reviewable.length > 0 && (
diff --git a/app/trips/[id]/page.tsx b/app/trips/[id]/page.tsx index fb00496..0dac425 100644 --- a/app/trips/[id]/page.tsx +++ b/app/trips/[id]/page.tsx @@ -301,9 +301,12 @@ export default async function TripDetailPage({

Organizer

-

+ {trip.organizer.name} -

+
@@ -458,9 +461,10 @@ export default async function TripDetailPage({ ) : (
{confirmedParticipants.map((p) => ( -
{p.user.name.charAt(0).toUpperCase()} @@ -468,7 +472,7 @@ export default async function TripDetailPage({ {p.user.name} -
+ ))}
)} diff --git a/app/u/[id]/page.tsx b/app/u/[id]/page.tsx new file mode 100644 index 0000000..a7eabc7 --- /dev/null +++ b/app/u/[id]/page.tsx @@ -0,0 +1,225 @@ +import type { Metadata } from "next"; +import Link from "next/link"; +import Image from "next/image"; +import { notFound } from "next/navigation"; +import { profileService } from "@/server/services/profile.service"; +import { TripCard } from "@/features/trip/components/trip-card"; +import { ProfileTripRow } from "@/features/profile/components/profile-trip-row"; +import { siteConfig } from "@/lib/site"; + +interface PageProps { + params: Promise<{ id: string }>; +} + +export async function generateMetadata({ + params, +}: PageProps): Promise { + const { id } = await params; + const data = await profileService.getPublicProfile(id); + if (!data) { + return { title: "Profil tidak ditemukan", robots: { index: false } }; + } + const { user } = data; + const title = `${user.name} — Profil`; + const desc = + user.profile?.bio?.slice(0, 160) || + `Lihat profil ${user.name} di ${siteConfig.name}: trip yang dibuat, trip yang diikuti, dan minat aktivitas.`; + return { + title, + description: desc, + alternates: { canonical: `/u/${id}` }, + openGraph: { title, description: desc, url: `/u/${id}` }, + }; +} + +export default async function PublicProfilePage({ params }: PageProps) { + const { id } = await params; + const data = await profileService.getPublicProfile(id); + if (!data) notFound(); + + const { user, isVerifiedOrganizer, organizedTrips, joinedTrips } = data; + const profile = user.profile; + const memberSince = new Date(user.createdAt).toLocaleDateString("id-ID", { + month: "long", + year: "numeric", + }); + + return ( +
+ {/* Header */} +
+
+
+ {user.image ? ( + {user.name} + ) : ( +
+ {user.name.charAt(0).toUpperCase()} +
+ )} +
+
+
+

+ {user.name} +

+ {isVerifiedOrganizer && ( + + ✅ Verified Organizer + + )} +
+ +
+ {profile?.city && ( + + 📍 {profile.city} + + )} + Bergabung sejak {memberSince} +
+ + {profile?.bio && ( +

+ {profile.bio} +

+ )} + + {profile?.interests && profile.interests.length > 0 && ( +
+ {profile.interests.map((tag) => ( + + #{tag} + + ))} +
+ )} + + {profile?.instagram && ( + + 📸 + @{profile.instagram} + + )} +
+
+ +
+
+

+ {organizedTrips.length} +

+

Trip dibuat

+
+
+

+ {joinedTrips.length} +

+

Trip diikuti

+
+
+

+ {organizedTrips.length + joinedTrips.length} +

+

Total perjalanan

+
+
+
+ + {/* Empty profile hint */} + {!profile && ( +

+ {user.name} belum melengkapi profil sosial — bio, kota, & minat akan + muncul di sini setelah diisi. +

+ )} + + {/* Trip dibuat */} + {organizedTrips.length > 0 && ( +
+

+ Trip yang dibuat ({organizedTrips.length}) +

+
+ {organizedTrips.map((trip) => ( + + ))} +
+
+ )} + + {/* Trip diikuti */} + {joinedTrips.length > 0 && ( +
+

+ Trip yang diikuti ({joinedTrips.length}) +

+
    + {joinedTrips.map((trip) => ( +
  • + + bareng{" "} + + {trip.organizer.name} + + + } + /> +
  • + ))} +
+
+ )} + + {/* Empty state */} + {organizedTrips.length === 0 && joinedTrips.length === 0 && ( +

+ Belum ada trip yang dibuat atau diikuti. +

+ )} +
+ ); +} diff --git a/features/profile/actions.ts b/features/profile/actions.ts new file mode 100644 index 0000000..69d47ce --- /dev/null +++ b/features/profile/actions.ts @@ -0,0 +1,40 @@ +"use server"; + +import { getServerSession } from "next-auth"; +import { revalidatePath } from "next/cache"; +import { authOptions } from "@/lib/auth"; +import { profileService } from "@/server/services/profile.service"; +import { updateProfileSchema } from "./schemas"; + +export async function updateProfileAction(formData: FormData) { + const session = await getServerSession(authOptions); + if (!session?.user) { + return { error: "Kamu harus login terlebih dahulu" }; + } + + const interests = formData + .getAll("interests") + .map((v) => (v as string).trim()) + .filter(Boolean); + + const raw = { + bio: formData.get("bio"), + city: formData.get("city"), + instagram: formData.get("instagram"), + interests, + }; + + const parsed = updateProfileSchema.safeParse(raw); + if (!parsed.success) { + return { error: parsed.error.issues[0].message }; + } + + try { + await profileService.updateProfile(session.user.id, parsed.data); + revalidatePath("/profile"); + revalidatePath(`/u/${session.user.id}`); + return { success: true }; + } catch (err) { + return { error: (err as Error).message }; + } +} diff --git a/features/profile/components/profile-editor.tsx b/features/profile/components/profile-editor.tsx new file mode 100644 index 0000000..c8302b1 --- /dev/null +++ b/features/profile/components/profile-editor.tsx @@ -0,0 +1,280 @@ +"use client"; + +import { useState } from "react"; +import { useRouter } from "next/navigation"; +import { updateProfileAction } from "@/features/profile/actions"; +import { LIMITS } from "@/lib/limits"; + +interface ProfileEditorProps { + userId: string; + initial: { + bio: string | null; + city: string | null; + interests: string[]; + instagram: string | null; + } | null; +} + +export function ProfileEditor({ userId, initial }: ProfileEditorProps) { + const router = useRouter(); + const [open, setOpen] = useState(initial === null); + const [error, setError] = useState(""); + const [success, setSuccess] = useState(""); + const [loading, setLoading] = useState(false); + + const [bio, setBio] = useState(initial?.bio ?? ""); + const [city, setCity] = useState(initial?.city ?? ""); + const [instagram, setInstagram] = useState(initial?.instagram ?? ""); + const [interests, setInterests] = useState(initial?.interests ?? []); + const [interestDraft, setInterestDraft] = useState(""); + + function addInterest() { + const v = interestDraft.trim().toLowerCase(); + if (!v) return; + if (interests.includes(v)) { + setInterestDraft(""); + return; + } + if (interests.length >= LIMITS.MAX_PROFILE_INTERESTS_COUNT) { + setError(`Maksimal ${LIMITS.MAX_PROFILE_INTERESTS_COUNT} minat`); + return; + } + setInterests([...interests, v]); + setInterestDraft(""); + setError(""); + } + + function removeInterest(tag: string) { + setInterests(interests.filter((t) => t !== tag)); + } + + function handleInterestKeyDown(e: React.KeyboardEvent) { + if (e.key === "Enter" || e.key === ",") { + e.preventDefault(); + addInterest(); + } + } + + async function handleSubmit(e: React.FormEvent) { + e.preventDefault(); + setError(""); + setSuccess(""); + setLoading(true); + + const formData = new FormData(); + if (bio.trim()) formData.set("bio", bio.trim()); + if (city.trim()) formData.set("city", city.trim()); + if (instagram.trim()) formData.set("instagram", instagram.trim()); + interests.forEach((t) => formData.append("interests", t)); + + const result = await updateProfileAction(formData); + setLoading(false); + + if (result.error) { + setError(result.error); + } else { + setSuccess("Profil berhasil disimpan"); + router.refresh(); + } + } + + if (!open) { + return ( +
+
+
+

+ Profil sosial +

+

+ {initial?.city || initial?.bio + ? "Profil terisi — klik untuk edit" + : "Lengkapi profil supaya orang lain mengenalmu"} +

+
+
+ + Lihat publik ↗ + + +
+
+
+ ); + } + + return ( +
+
+

+ Edit profil sosial +

+ +
+ + {error && ( +
+ {error} +
+ )} + {success && ( +
+ {success} +
+ )} + +
+
+ +