From ccb3437e82942aea01e01882103f1e79a3f8e95e Mon Sep 17 00:00:00 2001 From: arifal Date: Fri, 8 May 2026 20:02:11 +0700 Subject: [PATCH] change selfie with ktp to selfie with setrip tag --- .claude/settings.local.json | 3 +- .gitignore | 2 +- ARCHITECTURE.md | 2 +- README.md | 4 +- SOCIAL_ROADMAP.md | 20 +++++ app/admin/verifications/page.tsx | 3 +- app/api/files/kyc/[id]/[kind]/route.ts | 2 +- app/api/upload/kyc/route.ts | 5 +- app/create-trip/page.tsx | 2 +- app/generated/prisma/internal/class.ts | 6 +- .../prisma/internal/prismaNamespace.ts | 2 +- .../prisma/internal/prismaNamespaceBrowser.ts | 2 +- .../prisma/models/OrganizerVerification.ts | 83 ++++++++++--------- app/verify/page.tsx | 2 +- env.example | 2 +- features/organizer/actions.ts | 2 +- features/organizer/components/review-card.tsx | 4 +- features/organizer/components/verify-form.tsx | 35 +++++--- features/organizer/schemas.ts | 7 +- lib/secure-storage.ts | 6 +- .../migration.sql | 4 + prisma/schema.prisma | 5 +- prisma/seed.ts | 4 +- server/services/organizer.service.ts | 4 +- 24 files changed, 127 insertions(+), 84 deletions(-) create mode 100644 prisma/migrations/20260508140000_rename_selfie_to_liveness/migration.sql diff --git a/.claude/settings.local.json b/.claude/settings.local.json index e9e61dc..4eed313 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -1,7 +1,8 @@ { "permissions": { "allow": [ - "WebFetch(domain:unsplash.com)" + "WebFetch(domain:unsplash.com)", + "Bash(npx prisma *)" ] } } diff --git a/.gitignore b/.gitignore index 2d9cbc4..97f0b2d 100644 --- a/.gitignore +++ b/.gitignore @@ -33,7 +33,7 @@ yarn-error.log* # env files (can opt-in for committing if needed) .env* -# private uploads (KYC: KTP / selfie). Never serve directly. +# private uploads (KYC: KTP / liveness). Never serve directly. /uploads/ # vercel diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index f0343c3..141391c 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -236,7 +236,7 @@ Alur data mengikuti pola yang sama: **UI (`app/`) → server actions (`features/ ### Verifikasi organizer (KYC ringan) -- Model `OrganizerVerification` (1-1 ke `User`) menyimpan KTP (nama, NIK unik, tanggal lahir, alamat), URL foto KTP & selfie, data rekening bank, dan status `PENDING` / `APPROVED` / `REJECTED` + audit reviewer. +- Model `OrganizerVerification` (1-1 ke `User`) menyimpan KTP (nama, NIK unik, tanggal lahir, alamat), storage key foto KTP & foto liveness (user memegang kertas tulisan "SETRIP" sebagai bukti pengajuan), data rekening bank, dan status `PENDING` / `APPROVED` / `REJECTED` + audit reviewer. - Alur: user submit di `/verify` (`features/organizer/`) → admin review di `/admin/verifications` → setujui/tolak. - **Gate trip berbayar:** `createTripAction` menolak `price > 0` jika user belum `APPROVED` (`organizerService.isApproved`). - **Akses admin:** `lib/admin.ts → isAdminEmail()` membaca `ADMIN_EMAILS` (env, comma-separated). diff --git a/README.md b/README.md index 2b3adc0..75b5fda 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Tanpa login, pengguna tetap bisa melihat daftar trip dan detail trip, tetapi tid Organizer **tidak** bisa join trip sendiri; di detail trip ditampilkan bahwa dia adalah organizer trip ini. -**Verifikasi organizer (untuk trip berbayar).** Trip dengan harga > 0 hanya bisa dibuat oleh user yang sudah mengirim KTP, selfie, dan data rekening di `/verify` lalu disetujui admin di `/admin/verifications`. Trip gratis tidak butuh verifikasi. Organizer yang sudah disetujui tampil dengan badge **✅ Verified Organizer** di halaman detail trip. +**Verifikasi organizer (untuk trip berbayar).** Trip dengan harga > 0 hanya bisa dibuat oleh user yang sudah mengirim KTP, foto liveness (memegang kertas tulisan "SETRIP"), dan data rekening di `/verify` lalu disetujui admin di `/admin/verifications`. Trip gratis tidak butuh verifikasi. Organizer yang sudah disetujui tampil dengan badge **✅ Verified Organizer** di halaman detail trip. ### 3. Peserta: mencari trip @@ -97,7 +97,7 @@ Alur ini menggambarkan satu peserta dari pertama kali mendaftar sampai pembayara |--------|-------------| | Trip | `Trip`: judul, gunung, lokasi, tanggal, kuota, harga, status trip (`OPEN` / `FULL` / …), meeting point, itinerary, termasuk/tidak termasuk, relasi ke organizer | | Peserta | `TripParticipant` unik per `(tripId, userId)`: status **`PENDING`** / **`CONFIRMED`** / **`CANCELLED`**, serta **`markedPaidAt`** & **`paymentConfirmedAt`** untuk alur bayar manual | -| Organizer (kepercayaan) | `OrganizerVerification` (1-1 ke `User`) berisi KTP, selfie, rekening, dan status (`PENDING` / `APPROVED` / `REJECTED`); badge **Verified Organizer** muncul ketika `status === "APPROVED"` (helper `lib/trust.ts → isVerifiedOrganizer`). Agregat rating & jumlah trip dihitung dari ulasan & trip. | +| Organizer (kepercayaan) | `OrganizerVerification` (1-1 ke `User`) berisi KTP, foto liveness (memegang kertas "SETRIP"), rekening, dan status (`PENDING` / `APPROVED` / `REJECTED`); badge **Verified Organizer** muncul ketika `status === "APPROVED"` (helper `lib/trust.ts → isVerifiedOrganizer`). Agregat rating & jumlah trip dihitung dari ulasan & trip. | | Persetujuan T&C / Privasi | `User.acceptedTermsAndPrivacy` + `User.acceptedAt`, dicentang saat registrasi (link ke `/terms` & `/privacy`). | ## Menjalankan secara lokal diff --git a/SOCIAL_ROADMAP.md b/SOCIAL_ROADMAP.md index be32d42..6a7b07e 100644 --- a/SOCIAL_ROADMAP.md +++ b/SOCIAL_ROADMAP.md @@ -42,6 +42,26 @@ Selesai. `tsc --noEmit` lulus. Migration `20260508130000_add_trip_vibe` belum di --- +## Patch — KYC liveness photo rename (di luar fase social repositioning) + +Mengubah foto liveness dari "selfie memegang KTP" (pola KYC standar) menjadi "memegang kertas tulisan SETRIP". + +| Item | Status | File | +|---|---|---| +| Field `selfieKey` → `livenessKey` di `OrganizerVerification` | ✅ | [prisma/schema.prisma](prisma/schema.prisma), [prisma/migrations/20260508140000_rename_selfie_to_liveness/migration.sql](prisma/migrations/20260508140000_rename_selfie_to_liveness/migration.sql) | +| Storage kind `selfie` → `liveness` (path `liveness/.`) | ✅ | [lib/secure-storage.ts](lib/secure-storage.ts) | +| Validasi + action + service + verify-form + review-card | ✅ | [features/organizer/schemas.ts](features/organizer/schemas.ts), [features/organizer/actions.ts](features/organizer/actions.ts), [server/services/organizer.service.ts](server/services/organizer.service.ts), [features/organizer/components/verify-form.tsx](features/organizer/components/verify-form.tsx), [features/organizer/components/review-card.tsx](features/organizer/components/review-card.tsx) | +| API routes `/api/upload/kyc` & `/api/files/kyc/[id]/[kind]` | ✅ | [app/api/upload/kyc/route.ts](app/api/upload/kyc/route.ts), [app/api/files/kyc/[id]/[kind]/route.ts](app/api/files/kyc/%5Bid%5D/%5Bkind%5D/route.ts) | +| Halaman verify, admin, seed, README, ARCHITECTURE | ✅ | [app/verify/page.tsx](app/verify/page.tsx), [app/admin/verifications/page.tsx](app/admin/verifications/page.tsx), [app/create-trip/page.tsx](app/create-trip/page.tsx), [prisma/seed.ts](prisma/seed.ts), [README.md](README.md), [ARCHITECTURE.md](ARCHITECTURE.md) | + +**Trade-off keamanan yang sudah dikomunikasikan:** pola "selfie + KTP" lebih kuat (membuktikan KTP fisik di tangan pemilik). Pola "selfie + kertas SETRIP" lebih lemah dari sisi binding KTP↔orang, tapi mengurangi paparan KTP user dan masih mencegah replay dari platform lain. Risiko fraud naik sedikit — tetap dipilih atas request user. + +**Catatan migrasi data lama:** kolom DB di-rename, tapi nilai-nilai key lama masih punya prefix `selfie/` (mis. `selfie/abc.jpg`). Setelah migration di-apply, validasi schema menolak prefix lama → user dengan pengajuan PENDING perlu re-upload foto liveness baru. Folder fisik `uploads/private/selfie/` tidak dipakai lagi, bisa dihapus manual setelah konfirmasi tidak ada data aktif yang merujuk. + +**Tindakan manual:** jalankan `npx prisma migrate deploy` untuk apply `20260508140000_rename_selfie_to_liveness` (sekarang total 4 migration pending kalau belum pernah deploy). + +--- + ## Phase C — Interaksi & continuity (separate, lebih besar) ⏳ Belum mulai. Setiap item bisa jadi PR terpisah karena perlu schema baru + UI substansial. diff --git a/app/admin/verifications/page.tsx b/app/admin/verifications/page.tsx index e10d8db..10ed630 100644 --- a/app/admin/verifications/page.tsx +++ b/app/admin/verifications/page.tsx @@ -60,7 +60,8 @@ export default async function AdminVerificationsPage({ searchParams }: PageProps Review Verifikasi Organizer

- Periksa data KTP, selfie, dan rekening sebelum menyetujui. + Periksa data KTP, foto liveness (memegang kertas SETRIP), dan rekening + sebelum menyetujui.

diff --git a/app/api/files/kyc/[id]/[kind]/route.ts b/app/api/files/kyc/[id]/[kind]/route.ts index b83e6f3..01d07a6 100644 --- a/app/api/files/kyc/[id]/[kind]/route.ts +++ b/app/api/files/kyc/[id]/[kind]/route.ts @@ -38,7 +38,7 @@ export async function GET(_req: NextRequest, ctx: RouteCtx) { return NextResponse.json({ error: "Forbidden" }, { status: 403 }); } - const key = kind === "ktp" ? verification.ktpImageKey : verification.selfieKey; + const key = kind === "ktp" ? verification.ktpImageKey : verification.livenessKey; if (!key) { return NextResponse.json({ error: "File belum diunggah" }, { status: 404 }); } diff --git a/app/api/upload/kyc/route.ts b/app/api/upload/kyc/route.ts index 30482b2..98b8ce3 100644 --- a/app/api/upload/kyc/route.ts +++ b/app/api/upload/kyc/route.ts @@ -28,7 +28,10 @@ export async function POST(req: NextRequest) { const file = form.get("file"); if (!isKycKind(kind)) { - return NextResponse.json({ error: "kind harus 'ktp' atau 'selfie'" }, { status: 400 }); + return NextResponse.json( + { error: "kind harus 'ktp' atau 'liveness'" }, + { status: 400 } + ); } if (!(file instanceof File)) { return NextResponse.json({ error: "File wajib diisi" }, { status: 400 }); diff --git a/app/create-trip/page.tsx b/app/create-trip/page.tsx index a8752f6..5fc8fb4 100644 --- a/app/create-trip/page.tsx +++ b/app/create-trip/page.tsx @@ -79,7 +79,7 @@ function VerificationBanner({

{isRejected ? "Pengajuan sebelumnya ditolak. Untuk membuat trip berbayar, perbaiki data dan ajukan ulang." - : "Untuk membuat trip berbayar, akun kamu perlu diverifikasi (KTP, selfie, & rekening). Trip gratis tidak butuh verifikasi."} + : "Untuk membuat trip berbayar, akun kamu perlu diverifikasi (KTP, foto memegang kertas SETRIP, & rekening). Trip gratis tidak butuh verifikasi."}

.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 /// Ritme/energi trip — dipakai untuk matching dengan vibe user.\n vibe Vibe?\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 @@index([vibe, 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, vibe). 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 /// Gaya jalan / energi user — dipakai untuk matching teman dengan ritme serupa.\n vibe Vibe?\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nenum Vibe {\n CHILL\n BALANCED\n HARDCORE\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 foto liveness — user memegang kertas bertuliskan \"SETRIP\".\n /// (Sebelumnya: selfie memegang KTP. Diganti supaya user tidak perlu memajang KTP dua kali.)\n livenessKey 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 /// Ritme/energi trip — dipakai untuk matching dengan vibe user.\n vibe Vibe?\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 @@index([vibe, 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,9 +32,9 @@ 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\"},{\"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\":\"vibe\",\"kind\":\"enum\",\"type\":\"Vibe\"},{\"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\":\"vibe\",\"kind\":\"enum\",\"type\":\"Vibe\"},{\"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\":\"vibe\",\"kind\":\"enum\",\"type\":\"Vibe\"},{\"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\":\"livenessKey\",\"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\":\"vibe\",\"kind\":\"enum\",\"type\":\"Vibe\"},{\"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\",\"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\",\"Vibe\",\"vibe\",\"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\"]"), + 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\",\"Vibe\",\"vibe\",\"TripStatus\",\"organizerId\",\"fullName\",\"nikEncrypted\",\"nikHash\",\"birthDate\",\"address\",\"ktpImageKey\",\"livenessKey\",\"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: "rQRLgAEUBAAAmQIAIAsAAJoCACAMAACbAgAgDQAAnAIAIA8AAJ0CACAQAACeAgAgEQAAnwIAIJoBAACXAgAwmwEAAB4AEJwBAACXAgAwnQEBAAAAAaABQACMAgAhtQFAAIwCACHoAQEAkgIAIekBAQAAAAHqAQEAigIAIesBAQCKAgAh7AFAAJUCACHtASAAmAIAIe4BQACVAgAhAQAAAAEAIBADAACNAgAgmgEAAK0CADCbAQAAAwAQnAEAAK0CADCdAQEAkgIAIaQBAQCSAgAh1wEBAJICACHYAQEAkgIAIdkBAQCSAgAh2gEBAIoCACHbAQEAigIAIdwBAgCuAgAh3QEBAIoCACHeAQEAigIAId8BAQCKAgAh4AEBAIoCACEIAwAAmAMAINoBAACvAgAg2wEAAK8CACDcAQAArwIAIN0BAACvAgAg3gEAAK8CACDfAQAArwIAIOABAACvAgAgEQMAAI0CACCaAQAArQIAMJsBAAADABCcAQAArQIAMJ0BAQAAAAGkAQEAkgIAIdcBAQCSAgAh2AEBAJICACHZAQEAkgIAIdoBAQCKAgAh2wEBAIoCACHcAQIArgIAId0BAQCKAgAh3gEBAIoCACHfAQEAigIAIeABAQCKAgAh8wEAAKwCACADAAAAAwAgAQAABAAwAgAABQAgGgUAAI0CACAHAACbAgAgCAAAqwIAIAkAAJwCACCaAQAAqAIAMJsBAAAHABCcAQAAqAIAMJ0BAQCSAgAhnwEAAKoCxwEioAFAAIwCACG1AUAAjAIAIbYBAQCSAgAhtwEBAIoCACG5AQAAqQK5ASK6AQEAkgIAIbsBAQCSAgAhvAEBAIoCACG9AQEAigIAIb4BAQCKAgAhvwEBAIoCACHAAUAAjAIAIcEBQACVAgAhwgECAKICACHDAQIAogIAIcUBAACLAsUBI8cBAQCSAgAhCwUAAJgDACAHAADtAwAgCAAA8wMAIAkAAO4DACC3AQAArwIAILwBAACvAgAgvQEAAK8CACC-AQAArwIAIL8BAACvAgAgwQEAAK8CACDFAQAArwIAIBoFAACNAgAgBwAAmwIAIAgAAKsCACAJAACcAgAgmgEAAKgCADCbAQAABwAQnAEAAKgCADCdAQEAAAABnwEAAKoCxwEioAFAAIwCACG1AUAAjAIAIbYBAQCSAgAhtwEBAIoCACG5AQAAqQK5ASK6AQEAkgIAIbsBAQCSAgAhvAEBAIoCACG9AQEAigIAIb4BAQCKAgAhvwEBAIoCACHAAUAAjAIAIcEBQACVAgAhwgECAKICACHDAQIAogIAIcUBAACLAsUBI8cBAQCSAgAhAwAAAAcAIAEAAAgAMAIAAAkAIAwDAACNAgAgBgAAowIAIJoBAACmAgAwmwEAAAsAEJwBAACmAgAwnQEBAJICACGfAQAApwKfASKgAUAAjAIAIaEBQACVAgAhogFAAJUCACGjAQEAkgIAIaQBAQCSAgAhBAMAAJgDACAGAADyAwAgoQEAAK8CACCiAQAArwIAIA0DAACNAgAgBgAAowIAIJoBAACmAgAwmwEAAAsAEJwBAACmAgAwnQEBAAAAAZ8BAACnAp8BIqABQACMAgAhoQFAAJUCACGiAUAAlQIAIaMBAQCSAgAhpAEBAJICACHyAQAApQIAIAMAAAALACABAAAMADACAAANACAJBgAAowIAIJoBAACkAgAwmwEAAA8AEJwBAACkAgAwnQEBAJICACGjAQEAkgIAIbABAQCSAgAhsQEBAIoCACGyAQIAogIAIQIGAADyAwAgsQEAAK8CACAJBgAAowIAIJoBAACkAgAwmwEAAA8AEJwBAACkAgAwnQEBAAAAAaMBAQCSAgAhsAEBAJICACGxAQEAigIAIbIBAgCiAgAhAwAAAA8AIAEAABAAMAIAABEAIAwDAACNAgAgBgAAowIAIJoBAAChAgAwmwEAABMAEJwBAAChAgAwnQEBAJICACGgAUAAjAIAIaMBAQCSAgAhpAEBAJICACGzAQIAogIAIbQBAQCKAgAhtQFAAIwCACEDAwAAmAMAIAYAAPIDACC0AQAArwIAIA0DAACNAgAgBgAAowIAIJoBAAChAgAwmwEAABMAEJwBAAChAgAwnQEBAAAAAaABQACMAgAhowEBAJICACGkAQEAkgIAIbMBAgCiAgAhtAEBAIoCACG1AUAAjAIAIfIBAACgAgAgAwAAABMAIAEAABQAMAIAABUAIAEAAAALACABAAAADwAgAQAAABMAIAMAAAALACABAAAMADACAAANACADAAAAEwAgAQAAFAAwAgAAFQAgGAMAAI0CACAOAACWAgAgmgEAAJMCADCbAQAAHAAQnAEAAJMCADCdAQEAkgIAIZ8BAACUAtMBIqABQACMAgAhpAEBAJICACG1AUAAjAIAIcgBAQCSAgAhyQEBAJICACHKAQEAkgIAIcsBQACMAgAhzAEBAJICACHNAQEAkgIAIc4BAQCSAgAhzwEBAJICACHQAQEAkgIAIdEBAQCSAgAh0wEBAIoCACHUAUAAlQIAIdUBAQCKAgAh1gFAAJUCACEBAAAAHAAgFAQAAJkCACALAACaAgAgDAAAmwIAIA0AAJwCACAPAACdAgAgEAAAngIAIBEAAJ8CACCaAQAAlwIAMJsBAAAeABCcAQAAlwIAMJ0BAQCSAgAhoAFAAIwCACG1AUAAjAIAIegBAQCSAgAh6QEBAJICACHqAQEAigIAIesBAQCKAgAh7AFAAJUCACHtASAAmAIAIe4BQACVAgAhAQAAAB4AIAYDAACYAwAgDgAAmAMAINMBAACvAgAg1AEAAK8CACDVAQAArwIAINYBAACvAgAgGAMAAI0CACAOAACWAgAgmgEAAJMCADCbAQAAHAAQnAEAAJMCADCdAQEAAAABnwEAAJQC0wEioAFAAIwCACGkAQEAAAABtQFAAIwCACHIAQEAkgIAIckBAQCSAgAhygEBAAAAAcsBQACMAgAhzAEBAJICACHNAQEAkgIAIc4BAQCSAgAhzwEBAJICACHQAQEAkgIAIdEBAQCSAgAh0wEBAIoCACHUAUAAlQIAIdUBAQCKAgAh1gFAAJUCACEDAAAAHAAgAQAAIAAwAgAAIQAgDQMAAI0CACCaAQAAiQIAMJsBAAAjABCcAQAAiQIAMJ0BAQCSAgAhoAFAAIwCACGkAQEAkgIAIbUBQACMAgAhxQEAAIsCxQEj4QEBAIoCACHiAQEAigIAIeMBAACIAgAg5AEBAIoCACEBAAAAIwAgAQAAAAMAIAEAAAAHACABAAAACwAgAQAAABMAIAEAAAAcACABAAAAAQAgCwQAAOsDACALAADsAwAgDAAA7QMAIA0AAO4DACAPAADvAwAgEAAA8AMAIBEAAPEDACDqAQAArwIAIOsBAACvAgAg7AEAAK8CACDuAQAArwIAIAMAAAAeACABAAArADACAAABACADAAAAHgAgAQAAKwAwAgAAAQAgAwAAAB4AIAEAACsAMAIAAAEAIBEEAADkAwAgCwAA5QMAIAwAAOYDACANAADnAwAgDwAA6AMAIBAAAOkDACARAADqAwAgnQEBAAAAAaABQAAAAAG1AUAAAAAB6AEBAAAAAekBAQAAAAHqAQEAAAAB6wEBAAAAAewBQAAAAAHtASAAAAAB7gFAAAAAAQEXAAAvACAKnQEBAAAAAaABQAAAAAG1AUAAAAAB6AEBAAAAAekBAQAAAAHqAQEAAAAB6wEBAAAAAewBQAAAAAHtASAAAAAB7gFAAAAAAQEXAAAxADABFwAAMQAwEQQAAJ0DACALAACeAwAgDAAAnwMAIA0AAKADACAPAAChAwAgEAAAogMAIBEAAKMDACCdAQEAswIAIaABQAC1AgAhtQFAALUCACHoAQEAswIAIekBAQCzAgAh6gEBAMACACHrAQEAwAIAIewBQAC2AgAh7QEgAJwDACHuAUAAtgIAIQIAAAABACAXAAA0ACAKnQEBALMCACGgAUAAtQIAIbUBQAC1AgAh6AEBALMCACHpAQEAswIAIeoBAQDAAgAh6wEBAMACACHsAUAAtgIAIe0BIACcAwAh7gFAALYCACECAAAAHgAgFwAANgAgAgAAAB4AIBcAADYAIAMAAAABACAeAAAvACAfAAA0ACABAAAAAQAgAQAAAB4AIAcKAACZAwAgJAAAmwMAICUAAJoDACDqAQAArwIAIOsBAACvAgAg7AEAAK8CACDuAQAArwIAIA2aAQAAjgIAMJsBAAA9ABCcAQAAjgIAMJ0BAQDfAQAhoAFAAOEBACG1AUAA4QEAIegBAQDfAQAh6QEBAN8BACHqAQEA7gEAIesBAQDuAQAh7AFAAOIBACHtASAAjwIAIe4BQADiAQAhAwAAAB4AIAEAADwAMCMAAD0AIAMAAAAeACABAAArADACAAABACANAwAAjQIAIJoBAACJAgAwmwEAACMAEJwBAACJAgAwnQEBAAAAAaABQACMAgAhpAEBAAAAAbUBQACMAgAhxQEAAIsCxQEj4QEBAIoCACHiAQEAigIAIeMBAACIAgAg5AEBAIoCACEBAAAAQAAgAQAAAEAAIAUDAACYAwAgxQEAAK8CACDhAQAArwIAIOIBAACvAgAg5AEAAK8CACADAAAAIwAgAQAAQwAwAgAAQAAgAwAAACMAIAEAAEMAMAIAAEAAIAMAAAAjACABAABDADACAABAACAKAwAAlwMAIJ0BAQAAAAGgAUAAAAABpAEBAAAAAbUBQAAAAAHFAQAAAMUBA-EBAQAAAAHiAQEAAAAB4wEAAJYDACDkAQEAAAABARcAAEcAIAmdAQEAAAABoAFAAAAAAaQBAQAAAAG1AUAAAAABxQEAAADFAQPhAQEAAAAB4gEBAAAAAeMBAACWAwAg5AEBAAAAAQEXAABJADABFwAASQAwCgMAAJUDACCdAQEAswIAIaABQAC1AgAhpAEBALMCACG1AUAAtQIAIcUBAADTAsUBI-EBAQDAAgAh4gEBAMACACHjAQAAlAMAIOQBAQDAAgAhAgAAAEAAIBcAAEwAIAmdAQEAswIAIaABQAC1AgAhpAEBALMCACG1AUAAtQIAIcUBAADTAsUBI-EBAQDAAgAh4gEBAMACACHjAQAAlAMAIOQBAQDAAgAhAgAAACMAIBcAAE4AIAIAAAAjACAXAABOACADAAAAQAAgHgAARwAgHwAATAAgAQAAAEAAIAEAAAAjACAHCgAAkQMAICQAAJMDACAlAACSAwAgxQEAAK8CACDhAQAArwIAIOIBAACvAgAg5AEAAK8CACAMmgEAAIcCADCbAQAAVQAQnAEAAIcCADCdAQEA3wEAIaABQADhAQAhpAEBAN8BACG1AUAA4QEAIcUBAAD3AcUBI-EBAQDuAQAh4gEBAO4BACHjAQAAiAIAIOQBAQDuAQAhAwAAACMAIAEAAFQAMCMAAFUAIAMAAAAjACABAABDADACAABAACABAAAABQAgAQAAAAUAIAMAAAADACABAAAEADACAAAFACADAAAAAwAgAQAABAAwAgAABQAgAwAAAAMAIAEAAAQAMAIAAAUAIA0DAACQAwAgnQEBAAAAAaQBAQAAAAHXAQEAAAAB2AEBAAAAAdkBAQAAAAHaAQEAAAAB2wEBAAAAAdwBAgAAAAHdAQEAAAAB3gEBAAAAAd8BAQAAAAHgAQEAAAABARcAAF0AIAydAQEAAAABpAEBAAAAAdcBAQAAAAHYAQEAAAAB2QEBAAAAAdoBAQAAAAHbAQEAAAAB3AECAAAAAd0BAQAAAAHeAQEAAAAB3wEBAAAAAeABAQAAAAEBFwAAXwAwARcAAF8AMA0DAACPAwAgnQEBALMCACGkAQEAswIAIdcBAQCzAgAh2AEBALMCACHZAQEAswIAIdoBAQDAAgAh2wEBAMACACHcAQIAjgMAId0BAQDAAgAh3gEBAMACACHfAQEAwAIAIeABAQDAAgAhAgAAAAUAIBcAAGIAIAydAQEAswIAIaQBAQCzAgAh1wEBALMCACHYAQEAswIAIdkBAQCzAgAh2gEBAMACACHbAQEAwAIAIdwBAgCOAwAh3QEBAMACACHeAQEAwAIAId8BAQDAAgAh4AEBAMACACECAAAAAwAgFwAAZAAgAgAAAAMAIBcAAGQAIAMAAAAFACAeAABdACAfAABiACABAAAABQAgAQAAAAMAIAwKAACJAwAgJAAAjAMAICUAAIsDACBGAACKAwAgRwAAjQMAINoBAACvAgAg2wEAAK8CACDcAQAArwIAIN0BAACvAgAg3gEAAK8CACDfAQAArwIAIOABAACvAgAgD5oBAACDAgAwmwEAAGsAEJwBAACDAgAwnQEBAN8BACGkAQEA3wEAIdcBAQDfAQAh2AEBAN8BACHZAQEA3wEAIdoBAQDuAQAh2wEBAO4BACHcAQIAhAIAId0BAQDuAQAh3gEBAO4BACHfAQEA7gEAIeABAQDuAQAhAwAAAAMAIAEAAGoAMCMAAGsAIAMAAAADACABAAAEADACAAAFACABAAAAIQAgAQAAACEAIAMAAAAcACABAAAgADACAAAhACADAAAAHAAgAQAAIAAwAgAAIQAgAwAAABwAIAEAACAAMAIAACEAIBUDAACHAwAgDgAAiAMAIJ0BAQAAAAGfAQAAANMBAqABQAAAAAGkAQEAAAABtQFAAAAAAcgBAQAAAAHJAQEAAAABygEBAAAAAcsBQAAAAAHMAQEAAAABzQEBAAAAAc4BAQAAAAHPAQEAAAAB0AEBAAAAAdEBAQAAAAHTAQEAAAAB1AFAAAAAAdUBAQAAAAHWAUAAAAABARcAAHMAIBOdAQEAAAABnwEAAADTAQKgAUAAAAABpAEBAAAAAbUBQAAAAAHIAQEAAAAByQEBAAAAAcoBAQAAAAHLAUAAAAABzAEBAAAAAc0BAQAAAAHOAQEAAAABzwEBAAAAAdABAQAAAAHRAQEAAAAB0wEBAAAAAdQBQAAAAAHVAQEAAAAB1gFAAAAAAQEXAAB1ADABFwAAdQAwAQAAAB4AIBUDAACFAwAgDgAAhgMAIJ0BAQCzAgAhnwEAAIQD0wEioAFAALUCACGkAQEAswIAIbUBQAC1AgAhyAEBALMCACHJAQEAswIAIcoBAQCzAgAhywFAALUCACHMAQEAswIAIc0BAQCzAgAhzgEBALMCACHPAQEAswIAIdABAQCzAgAh0QEBALMCACHTAQEAwAIAIdQBQAC2AgAh1QEBAMACACHWAUAAtgIAIQIAAAAhACAXAAB5ACATnQEBALMCACGfAQAAhAPTASKgAUAAtQIAIaQBAQCzAgAhtQFAALUCACHIAQEAswIAIckBAQCzAgAhygEBALMCACHLAUAAtQIAIcwBAQCzAgAhzQEBALMCACHOAQEAswIAIc8BAQCzAgAh0AEBALMCACHRAQEAswIAIdMBAQDAAgAh1AFAALYCACHVAQEAwAIAIdYBQAC2AgAhAgAAABwAIBcAAHsAIAIAAAAcACAXAAB7ACABAAAAHgAgAwAAACEAIB4AAHMAIB8AAHkAIAEAAAAhACABAAAAHAAgBwoAAIEDACAkAACDAwAgJQAAggMAINMBAACvAgAg1AEAAK8CACDVAQAArwIAINYBAACvAgAgFpoBAAD_AQAwmwEAAIMBABCcAQAA_wEAMJ0BAQDfAQAhnwEAAIAC0wEioAFAAOEBACGkAQEA3wEAIbUBQADhAQAhyAEBAN8BACHJAQEA3wEAIcoBAQDfAQAhywFAAOEBACHMAQEA3wEAIc0BAQDfAQAhzgEBAN8BACHPAQEA3wEAIdABAQDfAQAh0QEBAN8BACHTAQEA7gEAIdQBQADiAQAh1QEBAO4BACHWAUAA4gEAIQMAAAAcACABAACCAQAwIwAAgwEAIAMAAAAcACABAAAgADACAAAhACABAAAACQAgAQAAAAkAIAMAAAAHACABAAAIADACAAAJACADAAAABwAgAQAACAAwAgAACQAgAwAAAAcAIAEAAAgAMAIAAAkAIBcFAAD9AgAgBwAA_gIAIAgAAP8CACAJAACAAwAgnQEBAAAAAZ8BAAAAxwECoAFAAAAAAbUBQAAAAAG2AQEAAAABtwEBAAAAAbkBAAAAuQECugEBAAAAAbsBAQAAAAG8AQEAAAABvQEBAAAAAb4BAQAAAAG_AQEAAAABwAFAAAAAAcEBQAAAAAHCAQIAAAABwwECAAAAAcUBAAAAxQEDxwEBAAAAAQEXAACLAQAgE50BAQAAAAGfAQAAAMcBAqABQAAAAAG1AUAAAAABtgEBAAAAAbcBAQAAAAG5AQAAALkBAroBAQAAAAG7AQEAAAABvAEBAAAAAb0BAQAAAAG-AQEAAAABvwEBAAAAAcABQAAAAAHBAUAAAAABwgECAAAAAcMBAgAAAAHFAQAAAMUBA8cBAQAAAAEBFwAAjQEAMAEXAACNAQAwFwUAANUCACAHAADWAgAgCAAA1wIAIAkAANgCACCdAQEAswIAIZ8BAADUAscBIqABQAC1AgAhtQFAALUCACG2AQEAswIAIbcBAQDAAgAhuQEAANICuQEiugEBALMCACG7AQEAswIAIbwBAQDAAgAhvQEBAMACACG-AQEAwAIAIb8BAQDAAgAhwAFAALUCACHBAUAAtgIAIcIBAgDBAgAhwwECAMECACHFAQAA0wLFASPHAQEAswIAIQIAAAAJACAXAACQAQAgE50BAQCzAgAhnwEAANQCxwEioAFAALUCACG1AUAAtQIAIbYBAQCzAgAhtwEBAMACACG5AQAA0gK5ASK6AQEAswIAIbsBAQCzAgAhvAEBAMACACG9AQEAwAIAIb4BAQDAAgAhvwEBAMACACHAAUAAtQIAIcEBQAC2AgAhwgECAMECACHDAQIAwQIAIcUBAADTAsUBI8cBAQCzAgAhAgAAAAcAIBcAAJIBACACAAAABwAgFwAAkgEAIAMAAAAJACAeAACLAQAgHwAAkAEAIAEAAAAJACABAAAABwAgDAoAAM0CACAkAADQAgAgJQAAzwIAIEYAAM4CACBHAADRAgAgtwEAAK8CACC8AQAArwIAIL0BAACvAgAgvgEAAK8CACC_AQAArwIAIMEBAACvAgAgxQEAAK8CACAWmgEAAPUBADCbAQAAmQEAEJwBAAD1AQAwnQEBAN8BACGfAQAA-AHHASKgAUAA4QEAIbUBQADhAQAhtgEBAN8BACG3AQEA7gEAIbkBAAD2AbkBIroBAQDfAQAhuwEBAN8BACG8AQEA7gEAIb0BAQDuAQAhvgEBAO4BACG_AQEA7gEAIcABQADhAQAhwQFAAOIBACHCAQIA7wEAIcMBAgDvAQAhxQEAAPcBxQEjxwEBAN8BACEDAAAABwAgAQAAmAEAMCMAAJkBACADAAAABwAgAQAACAAwAgAACQAgAQAAABUAIAEAAAAVACADAAAAEwAgAQAAFAAwAgAAFQAgAwAAABMAIAEAABQAMAIAABUAIAMAAAATACABAAAUADACAAAVACAJAwAAzAIAIAYAAMsCACCdAQEAAAABoAFAAAAAAaMBAQAAAAGkAQEAAAABswECAAAAAbQBAQAAAAG1AUAAAAABARcAAKEBACAHnQEBAAAAAaABQAAAAAGjAQEAAAABpAEBAAAAAbMBAgAAAAG0AQEAAAABtQFAAAAAAQEXAACjAQAwARcAAKMBADAJAwAAygIAIAYAAMkCACCdAQEAswIAIaABQAC1AgAhowEBALMCACGkAQEAswIAIbMBAgDBAgAhtAEBAMACACG1AUAAtQIAIQIAAAAVACAXAACmAQAgB50BAQCzAgAhoAFAALUCACGjAQEAswIAIaQBAQCzAgAhswECAMECACG0AQEAwAIAIbUBQAC1AgAhAgAAABMAIBcAAKgBACACAAAAEwAgFwAAqAEAIAMAAAAVACAeAAChAQAgHwAApgEAIAEAAAAVACABAAAAEwAgBgoAAMQCACAkAADHAgAgJQAAxgIAIEYAAMUCACBHAADIAgAgtAEAAK8CACAKmgEAAPQBADCbAQAArwEAEJwBAAD0AQAwnQEBAN8BACGgAUAA4QEAIaMBAQDfAQAhpAEBAN8BACGzAQIA7wEAIbQBAQDuAQAhtQFAAOEBACEDAAAAEwAgAQAArgEAMCMAAK8BACADAAAAEwAgAQAAFAAwAgAAFQAgAQAAABEAIAEAAAARACADAAAADwAgAQAAEAAwAgAAEQAgAwAAAA8AIAEAABAAMAIAABEAIAMAAAAPACABAAAQADACAAARACAGBgAAwwIAIJ0BAQAAAAGjAQEAAAABsAEBAAAAAbEBAQAAAAGyAQIAAAABARcAALcBACAFnQEBAAAAAaMBAQAAAAGwAQEAAAABsQEBAAAAAbIBAgAAAAEBFwAAuQEAMAEXAAC5AQAwBgYAAMICACCdAQEAswIAIaMBAQCzAgAhsAEBALMCACGxAQEAwAIAIbIBAgDBAgAhAgAAABEAIBcAALwBACAFnQEBALMCACGjAQEAswIAIbABAQCzAgAhsQEBAMACACGyAQIAwQIAIQIAAAAPACAXAAC-AQAgAgAAAA8AIBcAAL4BACADAAAAEQAgHgAAtwEAIB8AALwBACABAAAAEQAgAQAAAA8AIAYKAAC7AgAgJAAAvgIAICUAAL0CACBGAAC8AgAgRwAAvwIAILEBAACvAgAgCJoBAADtAQAwmwEAAMUBABCcAQAA7QEAMJ0BAQDfAQAhowEBAN8BACGwAQEA3wEAIbEBAQDuAQAhsgECAO8BACEDAAAADwAgAQAAxAEAMCMAAMUBACADAAAADwAgAQAAEAAwAgAAEQAgAQAAAA0AIAEAAAANACADAAAACwAgAQAADAAwAgAADQAgAwAAAAsAIAEAAAwAMAIAAA0AIAMAAAALACABAAAMADACAAANACAJAwAAugIAIAYAALkCACCdAQEAAAABnwEAAACfAQKgAUAAAAABoQFAAAAAAaIBQAAAAAGjAQEAAAABpAEBAAAAAQEXAADNAQAgB50BAQAAAAGfAQAAAJ8BAqABQAAAAAGhAUAAAAABogFAAAAAAaMBAQAAAAGkAQEAAAABARcAAM8BADABFwAAzwEAMAkDAAC4AgAgBgAAtwIAIJ0BAQCzAgAhnwEAALQCnwEioAFAALUCACGhAUAAtgIAIaIBQAC2AgAhowEBALMCACGkAQEAswIAIQIAAAANACAXAADSAQAgB50BAQCzAgAhnwEAALQCnwEioAFAALUCACGhAUAAtgIAIaIBQAC2AgAhowEBALMCACGkAQEAswIAIQIAAAALACAXAADUAQAgAgAAAAsAIBcAANQBACADAAAADQAgHgAAzQEAIB8AANIBACABAAAADQAgAQAAAAsAIAUKAACwAgAgJAAAsgIAICUAALECACChAQAArwIAIKIBAACvAgAgCpoBAADeAQAwmwEAANsBABCcAQAA3gEAMJ0BAQDfAQAhnwEAAOABnwEioAFAAOEBACGhAUAA4gEAIaIBQADiAQAhowEBAN8BACGkAQEA3wEAIQMAAAALACABAADaAQAwIwAA2wEAIAMAAAALACABAAAMADACAAANACAKmgEAAN4BADCbAQAA2wEAEJwBAADeAQAwnQEBAN8BACGfAQAA4AGfASKgAUAA4QEAIaEBQADiAQAhogFAAOIBACGjAQEA3wEAIaQBAQDfAQAhDgoAAOcBACAkAADsAQAgJQAA7AEAIKUBAQAAAAGmAQEAAAAEpwEB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_AQEA7gEAIcABQADhAQAhwQFAAOIBACHCAQIA7wEAIcMBAgDvAQAhxQEAAPcBxQEjxwEBAN8BACEHCgAA5wEAICQAAP4BACAlAAD-AQAgpQEAAAC5AQKmAQAAALkBCKcBAAAAuQEIrAEAAP0BuQEiBwoAAOQBACAkAAD8AQAgJQAA_AEAIKUBAAAAxQEDpgEAAADFAQmnAQAAAMUBCawBAAD7AcUBIwcKAADnAQAgJAAA-gEAICUAAPoBACClAQAAAMcBAqYBAAAAxwEIpwEAAADHAQisAQAA-QHHASIHCgAA5wEAICQAAPoBACAlAAD6AQAgpQEAAADHAQKmAQAAAMcBCKcBAAAAxwEIrAEAAPkBxwEiBKUBAAAAxwECpgEAAADHAQinAQAAAMcBCKwBAAD6AccBIgcKAADkAQAgJAAA_AEAICUAAPwBACClAQAAAMUBA6YBAAAAxQEJpwEAAADFAQmsAQAA-wHFASMEpQEAAADFAQOmAQAAAMUBCacBAAAAxQEJrAEAAPwBxQEjBwoAAOcBACAkAAD-AQAgJQAA_gEAIKUBAAAAuQECpgEAAAC5AQinAQAAALkBCKwBAAD9AbkBIgSlAQAAALkBAqYBAAAAuQEIpwEAAAC5AQisAQAA_gG5ASIWmgEAAP8BADCbAQAAgwEAEJwBAAD_AQAwnQEBAN8BACGfAQAAgALTASKgAUAA4QEAIaQBAQDfAQAhtQFAAOEBACHIAQEA3wEAIckBAQDfAQAhygEBAN8BACHLAUAA4QEAIcwBAQDfAQAhzQEBAN8BACHOAQEA3wEAIc8BAQDfAQAh0AEBAN8BACHRAQEA3wEAIdMBAQDuAQAh1AFAAOIBACHVAQEA7gEAIdYBQADiAQAhBwoAAOcBACAkAACCAgAgJQAAggIAIKUBAAAA0wECpgEAAADTAQinAQAAANMBCKwBAACBAtMBIgcKAADnAQAgJAAAggIAICUAAIICACClAQAAANMBAqYBAAAA0wEIpwEAAADTAQisAQAAgQLTASIEpQEAAADTAQKmAQAAANMBCKcBAAAA0wEIrAEAAIIC0wEiD5oBAACDAgAwmwEAAGsAEJwBAACDAgAwnQEBAN8BACGkAQEA3wEAIdcBAQDfAQAh2AEBAN8BACHZAQEA3wEAIdoBAQDuAQAh2wEBAO4BACHcAQIAhAIAId0BAQDuAQAh3gEBAO4BACHfAQEA7gEAIeABAQDuAQAhDQoAAOQBACAkAADkAQAgJQAA5AEAIEYAAIYCACBHAADkAQAgpQECAAAAAaYBAgAAAAWnAQIAAAAFqAECAAAAAakBAgAAAAGqAQIAAAABqwECAAAAAawBAgCFAgAhDQoAAOQBACAkAADkAQAgJQAA5AEAIEYAAIYCACBHAADkAQAgpQECAAAAAaYBAgAAAAWnAQIAAAAFqAECAAAAAakBAgAAAAGqAQIAAAABqwECAAAAAawBAgCFAgAhCKUBCAAAAAGmAQgAAAAFpwEIAAAABagBCAAAAAGpAQgAAAABqgEIAAAAAasBCAAAAAGsAQgAhgIAIQyaAQAAhwIAMJsBAABVABCcAQAAhwIAMJ0BAQDfAQAhoAFAAOEBACGkAQEA3wEAIbUBQADhAQAhxQEAAPcBxQEj4QEBAO4BACHiAQEA7gEAIeMBAACIAgAg5AEBAO4BACEEpQEBAAAABeUBAQAAAAHmAQEAAAAE5wEBAAAABA0DAACNAgAgmgEAAIkCADCbAQAAIwAQnAEAAIkCADCdAQEAkgIAIaABQACMAgAhpAEBAJICACG1AUAAjAIAIcUBAACLAsUBI-EBAQCKAgAh4gEBAIoCACHjAQAAiAIAIOQBAQCKAgAhC6UBAQAAAAGmAQEAAAAFpwEBAAAABagBAQAAAAGpAQEAAAABqgEBAAAAAasBAQAAAAGsAQEA8wEAIa0BAQAAAAGuAQEAAAABrwEBAAAAAQSlAQAAAMUBA6YBAAAAxQEJpwEAAADFAQmsAQAA_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_gG5ASIEpQEAAADHAQKmAQAAAMcBCKcBAAAAxwEIrAEAAPoBxwEiA-8BAAAPACDwAQAADwAg8QEAAA8AIALYAQEAAAAB2QEBAAAAARADAACNAgAgmgEAAK0CADCbAQAAAwAQnAEAAK0CADCdAQEAkgIAIaQBAQCSAgAh1wEBAJICACHYAQEAkgIAIdkBAQCSAgAh2gEBAIoCACHbAQEAigIAIdwBAgCuAgAh3QEBAIoCACHeAQEAigIAId8BAQCKAgAh4AEBAIoCACEIpQECAAAAAaYBAgAAAAWnAQIAAAAFqAECAAAAAakBAgAAAAGqAQIAAAABqwECAAAAAawBAgDkAQAhAAAAAAH5AQEAAAABAfkBAAAAnwECAfkBQAAAAAEB-QFAAAAAAQUeAACmBAAgHwAArAQAIPYBAACnBAAg9wEAAKsEACD8AQAACQAgBR4AAKQEACAfAACpBAAg9gEAAKUEACD3AQAAqAQAIPwBAAABACADHgAApgQAIPYBAACnBAAg_AEAAAkAIAMeAACkBAAg9gEAAKUEACD8AQAAAQAgAAAAAAAB-QEBAAAAAQX5AQIAAAABgAICAAAAAYECAgAAAAGCAgIAAAABgwICAAAAAQUeAACfBAAgHwAAogQAIPYBAACgBAAg9wEAAKEEACD8AQAACQAgAx4AAJ8EACD2AQAAoAQAIPwBAAAJACAAAAAAAAUeAACXBAAgHwAAnQQAIPYBAACYBAAg9wEAAJwEACD8AQAACQAgBR4AAJUEACAfAACaBAAg9gEAAJYEACD3AQAAmQQAIPwBAAABACADHgAAlwQAIPYBAACYBAAg_AEAAAkAIAMeAACVBAAg9gEAAJYEACD8AQAAAQAgAAAAAAAB-QEAAAC5AQIB-QEAAADFAQMB-QEAAADHAQIFHgAAjQQAIB8AAJMEACD2AQAAjgQAIPcBAACSBAAg_AEAAAEAIAseAADxAgAwHwAA9gIAMPYBAADyAgAw9wEAAPMCADD4AQAA9AIAIPkBAAD1AgAw-gEAAPUCADD7AQAA9QIAMPwBAAD1AgAw_QEAAPcCADD-AQAA-AIAMAseAADlAgAwHwAA6gIAMPYBAADmAgAw9wEAAOcCADD4AQAA6AIAIPkBAADpAgAw-gEAAOkCADD7AQAA6QIAMPwBAADpAgAw_QEAAOsCADD-AQAA7AIAMAseAADZAgAwHwAA3gIAMPYBAADaAgAw9wEAANsCADD4AQAA3AIAIPkBAADdAgAw-gEAAN0CADD7AQAA3QIAMPwBAADdAgAw_QEAAN8CADD-AQAA4AIAMAcDAADMAgAgnQEBAAAAAaABQAAAAAGkAQEAAAABswECAAAAAbQBAQAAAAG1AUAAAAABAgAAABUAIB4AAOQCACADAAAAFQAgHgAA5AIAIB8AAOMCACABFwAAkQQAMA0DAACNAgAgBgAAowIAIJoBAAChAgAwmwEAABMAEJwBAAChAgAwnQEBAAAAAaABQACMAgAhowEBAJICACGkAQEAkgIAIbMBAgCiAgAhtAEBAIoCACG1AUAAjAIAIfIBAACgAgAgAgAAABUAIBcAAOMCACACAAAA4QIAIBcAAOICACAKmgEAAOACADCbAQAA4QIAEJwBAADgAgAwnQEBAJICACGgAUAAjAIAIaMBAQCSAgAhpAEBAJICACGzAQIAogIAIbQBAQCKAgAhtQFAAIwCACEKmgEAAOACADCbAQAA4QIAEJwBAADgAgAwnQEBAJICACGgAUAAjAIAIaMBAQCSAgAhpAEBAJICACGzAQIAogIAIbQBAQCKAgAhtQFAAIwCACEGnQEBALMCACGgAUAAtQIAIaQBAQCzAgAhswECAMECACG0AQEAwAIAIbUBQAC1AgAhBwMAAMoCACCdAQEAswIAIaABQAC1AgAhpAEBALMCACGzAQIAwQIAIbQBAQDAAgAhtQFAALUCACEHAwAAzAIAIJ0BAQAAAAGgAUAAAAABpAEBAAAAAbMBAgAAAAG0AQEAAAABtQFAAAAAAQSdAQEAAAABsAEBAAAAAbEBAQAAAAGyAQIAAAABAgAAABEAIB4AAPACACADAAAAEQAgHgAA8AIAIB8AAO8CACABFwAAkAQAMAkGAACjAgAgmgEAAKQCADCbAQAADwAQnAEAAKQCADCdAQEAAAABowEBAJICACGwAQEAkgIAIbEBAQCKAgAhsgECAKICACECAAAAEQAgFwAA7wIAIAIAAADtAgAgFwAA7gIAIAiaAQAA7AIAMJsBAADtAgAQnAEAAOwCADCdAQEAkgIAIaMBAQCSAgAhsAEBAJICACGxAQEAigIAIbIBAgCiAgAhCJoBAADsAgAwmwEAAO0CABCcAQAA7AIAMJ0BAQCSAgAhowEBAJICACGwAQEAkgIAIbEBAQCKAgAhsgECAKICACEEnQEBALMCACGwAQEAswIAIbEBAQDAAgAhsgECAMECACEEnQEBALMCACGwAQEAswIAIbEBAQDAAgAhsgECAMECACEEnQEBAAAAAbABAQAAAAGxAQEAAAABsgECAAAAAQcDAAC6AgAgnQEBAAAAAZ8BAAAAnwECoAFAAAAAAaEBQAAAAAGiAUAAAAABpAEBAAAAAQIAAAANACAeAAD8AgAgAwAAAA0AIB4AAPwCACAfAAD7AgAgARcAAI8EADANAwAAjQIAIAYAAKMCACCaAQAApgIAMJsBAAALABCcAQAApgIAMJ0BAQAAAAGfAQAApwKfASKgAUAAjAIAIaEBQACVAgAhogFAAJUCACGjAQEAkgIAIaQBAQCSAgAh8gEAAKUCACACAAAADQAgFwAA-wIAIAIAAAD5AgAgFwAA-gIAIAqaAQAA-AIAMJsBAAD5AgAQnAEAAPgCADCdAQEAkgIAIZ8BAACnAp8BIqABQACMAgAhoQFAAJUCACGiAUAAlQIAIaMBAQCSAgAhpAEBAJICACEKmgEAAPgCADCbAQAA-QIAEJwBAAD4AgAwnQEBAJICACGfAQAApwKfASKgAUAAjAIAIaEBQACVAgAhogFAAJUCACGjAQEAkgIAIaQBAQCSAgAhBp0BAQCzAgAhnwEAALQCnwEioAFAALUCACGhAUAAtgIAIaIBQAC2AgAhpAEBALMCACEHAwAAuAIAIJ0BAQCzAgAhnwEAALQCnwEioAFAALUCACGhAUAAtgIAIaIBQAC2AgAhpAEBALMCACEHAwAAugIAIJ0BAQAAAAGfAQAAAJ8BAqABQAAAAAGhAUAAAAABogFAAAAAAaQBAQAAAAEDHgAAjQQAIPYBAACOBAAg_AEAAAEAIAQeAADxAgAw9gEAAPICADD4AQAA9AIAIPwBAAD1AgAwBB4AAOUCADD2AQAA5gIAMPgBAADoAgAg_AEAAOkCADAEHgAA2QIAMPYBAADaAgAw-AEAANwCACD8AQAA3QIAMAAAAAH5AQAAANMBAgUeAACFBAAgHwAAiwQAIPYBAACGBAAg9wEAAIoEACD8AQAAAQAgBx4AAIMEACAfAACIBAAg9gEAAIQEACD3AQAAhwQAIPoBAAAeACD7AQAAHgAg_AEAAAEAIAMeAACFBAAg9gEAAIYEACD8AQAAAQAgAx4AAIMEACD2AQAAhAQAIPwBAAABACAAAAAAAAX5AQIAAAABgAICAAAAAYECAgAAAAGCAgIAAAABgwICAAAAAQUeAAD-AwAgHwAAgQQAIPYBAAD_AwAg9wEAAIAEACD8AQAAAQAgAx4AAP4DACD2AQAA_wMAIPwBAAABACAAAAAC-QEBAAAABP8BAQAAAAUFHgAA-QMAIB8AAPwDACD2AQAA-gMAIPcBAAD7AwAg_AEAAAEAIAH5AQEAAAAEAx4AAPkDACD2AQAA-gMAIPwBAAABACALBAAA6wMAIAsAAOwDACAMAADtAwAgDQAA7gMAIA8AAO8DACAQAADwAwAgEQAA8QMAIOoBAACvAgAg6wEAAK8CACDsAQAArwIAIO4BAACvAgAgAAAAAfkBIAAAAAELHgAA2AMAMB8AAN0DADD2AQAA2QMAMPcBAADaAwAw-AEAANsDACD5AQAA3AMAMPoBAADcAwAw-wEAANwDADD8AQAA3AMAMP0BAADeAwAw_gEAAN8DADALHgAAzAMAMB8AANEDADD2AQAAzQMAMPcBAADOAwAw-AEAAM8DACD5AQAA0AMAMPoBAADQAwAw-wEAANADADD8AQAA0AMAMP0BAADSAwAw_gEAANMDADALHgAAwwMAMB8AAMcDADD2AQAAxAMAMPcBAADFAwAw-AEAAMYDACD5AQAA9QIAMPoBAAD1AgAw-wEAAPUCADD8AQAA9QIAMP0BAADIAwAw_gEAAPgCADALHgAAugMAMB8AAL4DADD2AQAAuwMAMPcBAAC8AwAw-AEAAL0DACD5AQAA3QIAMPoBAADdAgAw-wEAAN0CADD8AQAA3QIAMP0BAAC_AwAw_gEAAOACADAHHgAAtQMAIB8AALgDACD2AQAAtgMAIPcBAAC3AwAg-gEAABwAIPsBAAAcACD8AQAAIQAgCx4AAKkDADAfAACuAwAw9gEAAKoDADD3AQAAqwMAMPgBAACsAwAg-QEAAK0DADD6AQAArQMAMPsBAACtAwAw_AEAAK0DADD9AQAArwMAMP4BAACwAwAwBx4AAKQDACAfAACnAwAg9gEAAKUDACD3AQAApgMAIPoBAAAjACD7AQAAIwAg_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_AgAgCQAAgAMAIJ0BAQAAAAGfAQAAAMcBAqABQAAAAAG1AUAAAAABtgEBAAAAAbcBAQAAAAG5AQAAALkBAroBAQAAAAG7AQEAAAABvAEBAAAAAb0BAQAAAAG-AQEAAAABvwEBAAAAAcABQAAAAAHBAUAAAAABwgECAAAAAcMBAgAAAAHFAQAAAMUBAwIAAAAJACAeAADXAwAgAwAAAAkAIB4AANcDACAfAADWAwAgARcAAPUDADAaBQAAjQIAIAcAAJsCACAIAACrAgAgCQAAnAIAIJoBAACoAgAwmwEAAAcAEJwBAACoAgAwnQEBAAAAAZ8BAACqAscBIqABQACMAgAhtQFAAIwCACG2AQEAkgIAIbcBAQCKAgAhuQEAAKkCuQEiugEBAJICACG7AQEAkgIAIbwBAQCKAgAhvQEBAIoCACG-AQEAigIAIb8BAQCKAgAhwAFAAIwCACHBAUAAlQIAIcIBAgCiAgAhwwECAKICACHFAQAAiwLFASPHAQEAkgIAIQIAAAAJACAXAADWAwAgAgAAANQDACAXAADVAwAgFpoBAADTAwAwmwEAANQDABCcAQAA0wMAMJ0BAQCSAgAhnwEAAKoCxwEioAFAAIwCACG1AUAAjAIAIbYBAQCSAgAhtwEBAIoCACG5AQAAqQK5ASK6AQEAkgIAIbsBAQCSAgAhvAEBAIoCACG9AQEAigIAIb4BAQCKAgAhvwEBAIoCACHAAUAAjAIAIcEBQACVAgAhwgECAKICACHDAQIAogIAIcUBAACLAsUBI8cBAQCSAgAhFpoBAADTAwAwmwEAANQDABCcAQAA0wMAMJ0BAQCSAgAhnwEAAKoCxwEioAFAAIwCACG1AUAAjAIAIbYBAQCSAgAhtwEBAIoCACG5AQAAqQK5ASK6AQEAkgIAIbsBAQCSAgAhvAEBAIoCACG9AQEAigIAIb4BAQCKAgAhvwEBAIoCACHAAUAAjAIAIcEBQACVAgAhwgECAKICACHDAQIAogIAIcUBAACLAsUBI8cBAQCSAgAhEp0BAQCzAgAhnwEAANQCxwEioAFAALUCACG1AUAAtQIAIbYBAQCzAgAhtwEBAMACACG5AQAA0gK5ASK6AQEAswIAIbsBAQCzAgAhvAEBAMACACG9AQEAwAIAIb4BAQDAAgAhvwEBAMACACHAAUAAtQIAIcEBQAC2AgAhwgECAMECACHDAQIAwQIAIcUBAADTAsUBIxUHAADWAgAgCAAA1wIAIAkAANgCACCdAQEAswIAIZ8BAADUAscBIqABQAC1AgAhtQFAALUCACG2AQEAswIAIbcBAQDAAgAhuQEAANICuQEiugEBALMCACG7AQEAswIAIbwBAQDAAgAhvQEBAMACACG-AQEAwAIAIb8BAQDAAgAhwAFAALUCACHBAUAAtgIAIcIBAgDBAgAhwwECAMECACHFAQAA0wLFASMVBwAA_gIAIAgAAP8CACAJAACAAwAgnQEBAAAAAZ8BAAAAxwECoAFAAAAAAbUBQAAAAAG2AQEAAAABtwEBAAAAAbkBAAAAuQECugEBAAAAAbsBAQAAAAG8AQEAAAABvQEBAAAAAb4BAQAAAAG_AQEAAAABwAFAAAAAAcEBQAAAAAHCAQIAAAABwwECAAAAAcUBAAAAxQEDC50BAQAAAAHXAQEAAAAB2AEBAAAAAdkBAQAAAAHaAQEAAAAB2wEBAAAAAdwBAgAAAAHdAQEAAAAB3gEBAAAAAd8BAQAAAAHgAQEAAAABAgAAAAUAIB4AAOMDACADAAAABQAgHgAA4wMAIB8AAOIDACABFwAA9AMAMBEDAACNAgAgmgEAAK0CADCbAQAAAwAQnAEAAK0CADCdAQEAAAABpAEBAJICACHXAQEAkgIAIdgBAQCSAgAh2QEBAJICACHaAQEAigIAIdsBAQCKAgAh3AECAK4CACHdAQEAigIAId4BAQCKAgAh3wEBAIoCACHgAQEAigIAIfMBAACsAgAgAgAAAAUAIBcAAOIDACACAAAA4AMAIBcAAOEDACAPmgEAAN8DADCbAQAA4AMAEJwBAADfAwAwnQEBAJICACGkAQEAkgIAIdcBAQCSAgAh2AEBAJICACHZAQEAkgIAIdoBAQCKAgAh2wEBAIoCACHcAQIArgIAId0BAQCKAgAh3gEBAIoCACHfAQEAigIAIeABAQCKAgAhD5oBAADfAwAwmwEAAOADABCcAQAA3wMAMJ0BAQCSAgAhpAEBAJICACHXAQEAkgIAIdgBAQCSAgAh2QEBAJICACHaAQEAigIAIdsBAQCKAgAh3AECAK4CACHdAQEAigIAId4BAQCKAgAh3wEBAIoCACHgAQEAigIAIQudAQEAswIAIdcBAQCzAgAh2AEBALMCACHZAQEAswIAIdoBAQDAAgAh2wEBAMACACHcAQIAjgMAId0BAQDAAgAh3gEBAMACACHfAQEAwAIAIeABAQDAAgAhC50BAQCzAgAh1wEBALMCACHYAQEAswIAIdkBAQCzAgAh2gEBAMACACHbAQEAwAIAIdwBAgCOAwAh3QEBAMACACHeAQEAwAIAId8BAQDAAgAh4AEBAMACACELnQEBAAAAAdcBAQAAAAHYAQEAAAAB2QEBAAAAAdoBAQAAAAHbAQEAAAAB3AECAAAAAd0BAQAAAAHeAQEAAAAB3wEBAAAAAeABAQAAAAEEHgAA2AMAMPYBAADZAwAw-AEAANsDACD8AQAA3AMAMAQeAADMAwAw9gEAAM0DADD4AQAAzwMAIPwBAADQAwAwBB4AAMMDADD2AQAAxAMAMPgBAADGAwAg_AEAAPUCADAEHgAAugMAMPYBAAC7AwAw-AEAAL0DACD8AQAA3QIAMAMeAAC1AwAg9gEAALYDACD8AQAAIQAgBB4AAKkDADD2AQAAqgMAMPgBAACsAwAg_AEAAK0DADADHgAApAMAIPYBAAClAwAg_AEAAEAAIAAAAAAGAwAAmAMAIA4AAJgDACDTAQAArwIAINQBAACvAgAg1QEAAK8CACDWAQAArwIAIAAFAwAAmAMAIMUBAACvAgAg4QEAAK8CACDiAQAArwIAIOQBAACvAgAgCwUAAJgDACAHAADtAwAgCAAA8wMAIAkAAO4DACC3AQAArwIAILwBAACvAgAgvQEAAK8CACC-AQAArwIAIL8BAACvAgAgwQEAAK8CACDFAQAArwIAIAALnQEBAAAAAdcBAQAAAAHYAQEAAAAB2QEBAAAAAdoBAQAAAAHbAQEAAAAB3AECAAAAAd0BAQAAAAHeAQEAAAAB3wEBAAAAAeABAQAAAAESnQEBAAAAAZ8BAAAAxwECoAFAAAAAAbUBQAAAAAG2AQEAAAABtwEBAAAAAbkBAAAAuQECugEBAAAAAbsBAQAAAAG8AQEAAAABvQEBAAAAAb4BAQAAAAG_AQEAAAABwAFAAAAAAcEBQAAAAAHCAQIAAAABwwECAAAAAcUBAAAAxQEDBp0BAQAAAAGfAQAAAJ8BAqABQAAAAAGhAUAAAAABogFAAAAAAaMBAQAAAAEGnQEBAAAAAaABQAAAAAGjAQEAAAABswECAAAAAbQBAQAAAAG1AUAAAAABEp0BAQAAAAGfAQAAANMBAqABQAAAAAGkAQEAAAABtQFAAAAAAcgBAQAAAAHJAQEAAAABygEBAAAAAcsBQAAAAAHMAQEAAAABzQEBAAAAAc4BAQAAAAHPAQEAAAAB0AEBAAAAAdEBAQAAAAHTAQEAAAAB1AFAAAAAAdYBQAAAAAEQBAAA5AMAIAsAAOUDACAMAADmAwAgDQAA5wMAIA8AAOgDACAQAADpAwAgnQEBAAAAAaABQAAAAAG1AUAAAAAB6AEBAAAAAekBAQAAAAHqAQEAAAAB6wEBAAAAAewBQAAAAAHtASAAAAAB7gFAAAAAAQIAAAABACAeAAD5AwAgAwAAAB4AIB4AAPkDACAfAAD9AwAgEgAAAB4AIAQAAJ0DACALAACeAwAgDAAAnwMAIA0AAKADACAPAAChAwAgEAAAogMAIBcAAP0DACCdAQEAswIAIaABQAC1AgAhtQFAALUCACHoAQEAswIAIekBAQCzAgAh6gEBAMACACHrAQEAwAIAIewBQAC2AgAh7QEgAJwDACHuAUAAtgIAIRAEAACdAwAgCwAAngMAIAwAAJ8DACANAACgAwAgDwAAoQMAIBAAAKIDACCdAQEAswIAIaABQAC1AgAhtQFAALUCACHoAQEAswIAIekBAQCzAgAh6gEBAMACACHrAQEAwAIAIewBQAC2AgAh7QEgAJwDACHuAUAAtgIAIRALAADlAwAgDAAA5gMAIA0AAOcDACAPAADoAwAgEAAA6QMAIBEAAOoDACCdAQEAAAABoAFAAAAAAbUBQAAAAAHoAQEAAAAB6QEBAAAAAeoBAQAAAAHrAQEAAAAB7AFAAAAAAe0BIAAAAAHuAUAAAAABAgAAAAEAIB4AAP4DACADAAAAHgAgHgAA_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-AgAgCAAA_wIAIJ0BAQAAAAGfAQAAAMcBAqABQAAAAAG1AUAAAAABtgEBAAAAAbcBAQAAAAG5AQAAALkBAroBAQAAAAG7AQEAAAABvAEBAAAAAb0BAQAAAAG-AQEAAAABvwEBAAAAAcABQAAAAAHBAUAAAAABwgECAAAAAcMBAgAAAAHFAQAAAMUBA8cBAQAAAAECAAAACQAgHgAAlwQAIAMAAAAeACAeAACVBAAgHwAAmwQAIBIAAAAeACAEAACdAwAgCwAAngMAIAwAAJ8DACAPAAChAwAgEAAAogMAIBEAAKMDACAXAACbBAAgnQEBALMCACGgAUAAtQIAIbUBQAC1AgAh6AEBALMCACHpAQEAswIAIeoBAQDAAgAh6wEBAMACACHsAUAAtgIAIe0BIACcAwAh7gFAALYCACEQBAAAnQMAIAsAAJ4DACAMAACfAwAgDwAAoQMAIBAAAKIDACARAACjAwAgnQEBALMCACGgAUAAtQIAIbUBQAC1AgAh6AEBALMCACHpAQEAswIAIeoBAQDAAgAh6wEBAMACACHsAUAAtgIAIe0BIACcAwAh7gFAALYCACEDAAAABwAgHgAAlwQAIB8AAJ4EACAYAAAABwAgBQAA1QIAIAcAANYCACAIAADXAgAgFwAAngQAIJ0BAQCzAgAhnwEAANQCxwEioAFAALUCACG1AUAAtQIAIbYBAQCzAgAhtwEBAMACACG5AQAA0gK5ASK6AQEAswIAIbsBAQCzAgAhvAEBAMACACG9AQEAwAIAIb4BAQDAAgAhvwEBAMACACHAAUAAtQIAIcEBQAC2AgAhwgECAMECACHDAQIAwQIAIcUBAADTAsUBI8cBAQCzAgAhFgUAANUCACAHAADWAgAgCAAA1wIAIJ0BAQCzAgAhnwEAANQCxwEioAFAALUCACG1AUAAtQIAIbYBAQCzAgAhtwEBAMACACG5AQAA0gK5ASK6AQEAswIAIbsBAQCzAgAhvAEBAMACACG9AQEAwAIAIb4BAQDAAgAhvwEBAMACACHAAUAAtQIAIcEBQAC2AgAhwgECAMECACHDAQIAwQIAIcUBAADTAsUBI8cBAQCzAgAhFgUAAP0CACAHAAD-AgAgCQAAgAMAIJ0BAQAAAAGfAQAAAMcBAqABQAAAAAG1AUAAAAABtgEBAAAAAbcBAQAAAAG5AQAAALkBAroBAQAAAAG7AQEAAAABvAEBAAAAAb0BAQAAAAG-AQEAAAABvwEBAAAAAcABQAAAAAHBAUAAAAABwgECAAAAAcMBAgAAAAHFAQAAAMUBA8cBAQAAAAECAAAACQAgHgAAnwQAIAMAAAAHACAeAACfBAAgHwAAowQAIBgAAAAHACAFAADVAgAgBwAA1gIAIAkAANgCACAXAACjBAAgnQEBALMCACGfAQAA1ALHASKgAUAAtQIAIbUBQAC1AgAhtgEBALMCACG3AQEAwAIAIbkBAADSArkBIroBAQCzAgAhuwEBALMCACG8AQEAwAIAIb0BAQDAAgAhvgEBAMACACG_AQEAwAIAIcABQAC1AgAhwQFAALYCACHCAQIAwQIAIcMBAgDBAgAhxQEAANMCxQEjxwEBALMCACEWBQAA1QIAIAcAANYCACAJAADYAgAgnQEBALMCACGfAQAA1ALHASKgAUAAtQIAIbUBQAC1AgAhtgEBALMCACG3AQEAwAIAIbkBAADSArkBIroBAQCzAgAhuwEBALMCACG8AQEAwAIAIb0BAQDAAgAhvgEBAMACACG_AQEAwAIAIcABQAC1AgAhwQFAALYCACHCAQIAwQIAIcMBAgDBAgAhxQEAANMCxQEjxwEBALMCACEQBAAA5AMAIAsAAOUDACANAADnAwAgDwAA6AMAIBAAAOkDACARAADqAwAgnQEBAAAAAaABQAAAAAG1AUAAAAAB6AEBAAAAAekBAQAAAAHqAQEAAAAB6wEBAAAAAewBQAAAAAHtASAAAAAB7gFAAAAAAQIAAAABACAeAACkBAAgFgUAAP0CACAIAAD_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_uAEFgAG6AQuBAbsBPIIBvQEFgwG_AQuEAcABPYUBwQEFhgHCAQWHAcMBC4gBxgE-iQHHAUSKAcgBBIsByQEEjAHKAQSNAcsBBI4BzAEEjwHOAQSQAdABC5EB0QFFkgHTAQSTAdUBC5QB1gFGlQHXAQSWAdgBBJcB2QELmAHcAUeZAd0BSw" } diff --git a/app/generated/prisma/internal/prismaNamespace.ts b/app/generated/prisma/internal/prismaNamespace.ts index 761471f..97160bc 100644 --- a/app/generated/prisma/internal/prismaNamespace.ts +++ b/app/generated/prisma/internal/prismaNamespace.ts @@ -1100,7 +1100,7 @@ export const OrganizerVerificationScalarFieldEnum = { birthDate: 'birthDate', address: 'address', ktpImageKey: 'ktpImageKey', - selfieKey: 'selfieKey', + livenessKey: 'livenessKey', bankName: 'bankName', bankAccountNumber: 'bankAccountNumber', bankAccountName: 'bankAccountName', diff --git a/app/generated/prisma/internal/prismaNamespaceBrowser.ts b/app/generated/prisma/internal/prismaNamespaceBrowser.ts index 4605ba0..5a3f6fa 100644 --- a/app/generated/prisma/internal/prismaNamespaceBrowser.ts +++ b/app/generated/prisma/internal/prismaNamespaceBrowser.ts @@ -135,7 +135,7 @@ export const OrganizerVerificationScalarFieldEnum = { birthDate: 'birthDate', address: 'address', ktpImageKey: 'ktpImageKey', - selfieKey: 'selfieKey', + livenessKey: 'livenessKey', bankName: 'bankName', bankAccountNumber: 'bankAccountNumber', bankAccountName: 'bankAccountName', diff --git a/app/generated/prisma/models/OrganizerVerification.ts b/app/generated/prisma/models/OrganizerVerification.ts index a4ac187..7d8d65c 100644 --- a/app/generated/prisma/models/OrganizerVerification.ts +++ b/app/generated/prisma/models/OrganizerVerification.ts @@ -33,7 +33,7 @@ export type OrganizerVerificationMinAggregateOutputType = { birthDate: Date | null address: string | null ktpImageKey: string | null - selfieKey: string | null + livenessKey: string | null bankName: string | null bankAccountNumber: string | null bankAccountName: string | null @@ -55,7 +55,7 @@ export type OrganizerVerificationMaxAggregateOutputType = { birthDate: Date | null address: string | null ktpImageKey: string | null - selfieKey: string | null + livenessKey: string | null bankName: string | null bankAccountNumber: string | null bankAccountName: string | null @@ -77,7 +77,7 @@ export type OrganizerVerificationCountAggregateOutputType = { birthDate: number address: number ktpImageKey: number - selfieKey: number + livenessKey: number bankName: number bankAccountNumber: number bankAccountName: number @@ -101,7 +101,7 @@ export type OrganizerVerificationMinAggregateInputType = { birthDate?: true address?: true ktpImageKey?: true - selfieKey?: true + livenessKey?: true bankName?: true bankAccountNumber?: true bankAccountName?: true @@ -123,7 +123,7 @@ export type OrganizerVerificationMaxAggregateInputType = { birthDate?: true address?: true ktpImageKey?: true - selfieKey?: true + livenessKey?: true bankName?: true bankAccountNumber?: true bankAccountName?: true @@ -145,7 +145,7 @@ export type OrganizerVerificationCountAggregateInputType = { birthDate?: true address?: true ktpImageKey?: true - selfieKey?: true + livenessKey?: true bankName?: true bankAccountNumber?: true bankAccountName?: true @@ -240,7 +240,7 @@ export type OrganizerVerificationGroupByOutputType = { birthDate: Date address: string ktpImageKey: string - selfieKey: string + livenessKey: string bankName: string bankAccountNumber: string bankAccountName: string @@ -283,7 +283,7 @@ export type OrganizerVerificationWhereInput = { birthDate?: Prisma.DateTimeFilter<"OrganizerVerification"> | Date | string address?: Prisma.StringFilter<"OrganizerVerification"> | string ktpImageKey?: Prisma.StringFilter<"OrganizerVerification"> | string - selfieKey?: Prisma.StringFilter<"OrganizerVerification"> | string + livenessKey?: Prisma.StringFilter<"OrganizerVerification"> | string bankName?: Prisma.StringFilter<"OrganizerVerification"> | string bankAccountNumber?: Prisma.StringFilter<"OrganizerVerification"> | string bankAccountName?: Prisma.StringFilter<"OrganizerVerification"> | string @@ -307,7 +307,7 @@ export type OrganizerVerificationOrderByWithRelationInput = { birthDate?: Prisma.SortOrder address?: Prisma.SortOrder ktpImageKey?: Prisma.SortOrder - selfieKey?: Prisma.SortOrder + livenessKey?: Prisma.SortOrder bankName?: Prisma.SortOrder bankAccountNumber?: Prisma.SortOrder bankAccountName?: Prisma.SortOrder @@ -334,7 +334,7 @@ export type OrganizerVerificationWhereUniqueInput = Prisma.AtLeast<{ birthDate?: Prisma.DateTimeFilter<"OrganizerVerification"> | Date | string address?: Prisma.StringFilter<"OrganizerVerification"> | string ktpImageKey?: Prisma.StringFilter<"OrganizerVerification"> | string - selfieKey?: Prisma.StringFilter<"OrganizerVerification"> | string + livenessKey?: Prisma.StringFilter<"OrganizerVerification"> | string bankName?: Prisma.StringFilter<"OrganizerVerification"> | string bankAccountNumber?: Prisma.StringFilter<"OrganizerVerification"> | string bankAccountName?: Prisma.StringFilter<"OrganizerVerification"> | string @@ -358,7 +358,7 @@ export type OrganizerVerificationOrderByWithAggregationInput = { birthDate?: Prisma.SortOrder address?: Prisma.SortOrder ktpImageKey?: Prisma.SortOrder - selfieKey?: Prisma.SortOrder + livenessKey?: Prisma.SortOrder bankName?: Prisma.SortOrder bankAccountNumber?: Prisma.SortOrder bankAccountName?: Prisma.SortOrder @@ -386,7 +386,7 @@ export type OrganizerVerificationScalarWhereWithAggregatesInput = { birthDate?: Prisma.DateTimeWithAggregatesFilter<"OrganizerVerification"> | Date | string address?: Prisma.StringWithAggregatesFilter<"OrganizerVerification"> | string ktpImageKey?: Prisma.StringWithAggregatesFilter<"OrganizerVerification"> | string - selfieKey?: Prisma.StringWithAggregatesFilter<"OrganizerVerification"> | string + livenessKey?: Prisma.StringWithAggregatesFilter<"OrganizerVerification"> | string bankName?: Prisma.StringWithAggregatesFilter<"OrganizerVerification"> | string bankAccountNumber?: Prisma.StringWithAggregatesFilter<"OrganizerVerification"> | string bankAccountName?: Prisma.StringWithAggregatesFilter<"OrganizerVerification"> | string @@ -407,7 +407,7 @@ export type OrganizerVerificationCreateInput = { birthDate: Date | string address: string ktpImageKey: string - selfieKey: string + livenessKey: string bankName: string bankAccountNumber: string bankAccountName: string @@ -430,7 +430,7 @@ export type OrganizerVerificationUncheckedCreateInput = { birthDate: Date | string address: string ktpImageKey: string - selfieKey: string + livenessKey: string bankName: string bankAccountNumber: string bankAccountName: string @@ -451,7 +451,7 @@ export type OrganizerVerificationUpdateInput = { birthDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string address?: Prisma.StringFieldUpdateOperationsInput | string ktpImageKey?: Prisma.StringFieldUpdateOperationsInput | string - selfieKey?: Prisma.StringFieldUpdateOperationsInput | string + livenessKey?: Prisma.StringFieldUpdateOperationsInput | string bankName?: Prisma.StringFieldUpdateOperationsInput | string bankAccountNumber?: Prisma.StringFieldUpdateOperationsInput | string bankAccountName?: Prisma.StringFieldUpdateOperationsInput | string @@ -474,7 +474,7 @@ export type OrganizerVerificationUncheckedUpdateInput = { birthDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string address?: Prisma.StringFieldUpdateOperationsInput | string ktpImageKey?: Prisma.StringFieldUpdateOperationsInput | string - selfieKey?: Prisma.StringFieldUpdateOperationsInput | string + livenessKey?: Prisma.StringFieldUpdateOperationsInput | string bankName?: Prisma.StringFieldUpdateOperationsInput | string bankAccountNumber?: Prisma.StringFieldUpdateOperationsInput | string bankAccountName?: Prisma.StringFieldUpdateOperationsInput | string @@ -496,7 +496,7 @@ export type OrganizerVerificationCreateManyInput = { birthDate: Date | string address: string ktpImageKey: string - selfieKey: string + livenessKey: string bankName: string bankAccountNumber: string bankAccountName: string @@ -517,7 +517,7 @@ export type OrganizerVerificationUpdateManyMutationInput = { birthDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string address?: Prisma.StringFieldUpdateOperationsInput | string ktpImageKey?: Prisma.StringFieldUpdateOperationsInput | string - selfieKey?: Prisma.StringFieldUpdateOperationsInput | string + livenessKey?: Prisma.StringFieldUpdateOperationsInput | string bankName?: Prisma.StringFieldUpdateOperationsInput | string bankAccountNumber?: Prisma.StringFieldUpdateOperationsInput | string bankAccountName?: Prisma.StringFieldUpdateOperationsInput | string @@ -538,7 +538,7 @@ export type OrganizerVerificationUncheckedUpdateManyInput = { birthDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string address?: Prisma.StringFieldUpdateOperationsInput | string ktpImageKey?: Prisma.StringFieldUpdateOperationsInput | string - selfieKey?: Prisma.StringFieldUpdateOperationsInput | string + livenessKey?: Prisma.StringFieldUpdateOperationsInput | string bankName?: Prisma.StringFieldUpdateOperationsInput | string bankAccountNumber?: Prisma.StringFieldUpdateOperationsInput | string bankAccountName?: Prisma.StringFieldUpdateOperationsInput | string @@ -575,7 +575,7 @@ export type OrganizerVerificationCountOrderByAggregateInput = { birthDate?: Prisma.SortOrder address?: Prisma.SortOrder ktpImageKey?: Prisma.SortOrder - selfieKey?: Prisma.SortOrder + livenessKey?: Prisma.SortOrder bankName?: Prisma.SortOrder bankAccountNumber?: Prisma.SortOrder bankAccountName?: Prisma.SortOrder @@ -597,7 +597,7 @@ export type OrganizerVerificationMaxOrderByAggregateInput = { birthDate?: Prisma.SortOrder address?: Prisma.SortOrder ktpImageKey?: Prisma.SortOrder - selfieKey?: Prisma.SortOrder + livenessKey?: Prisma.SortOrder bankName?: Prisma.SortOrder bankAccountNumber?: Prisma.SortOrder bankAccountName?: Prisma.SortOrder @@ -619,7 +619,7 @@ export type OrganizerVerificationMinOrderByAggregateInput = { birthDate?: Prisma.SortOrder address?: Prisma.SortOrder ktpImageKey?: Prisma.SortOrder - selfieKey?: Prisma.SortOrder + livenessKey?: Prisma.SortOrder bankName?: Prisma.SortOrder bankAccountNumber?: Prisma.SortOrder bankAccountName?: Prisma.SortOrder @@ -718,7 +718,7 @@ export type OrganizerVerificationCreateWithoutUserInput = { birthDate: Date | string address: string ktpImageKey: string - selfieKey: string + livenessKey: string bankName: string bankAccountNumber: string bankAccountName: string @@ -739,7 +739,7 @@ export type OrganizerVerificationUncheckedCreateWithoutUserInput = { birthDate: Date | string address: string ktpImageKey: string - selfieKey: string + livenessKey: string bankName: string bankAccountNumber: string bankAccountName: string @@ -765,7 +765,7 @@ export type OrganizerVerificationCreateWithoutReviewedByInput = { birthDate: Date | string address: string ktpImageKey: string - selfieKey: string + livenessKey: string bankName: string bankAccountNumber: string bankAccountName: string @@ -787,7 +787,7 @@ export type OrganizerVerificationUncheckedCreateWithoutReviewedByInput = { birthDate: Date | string address: string ktpImageKey: string - selfieKey: string + livenessKey: string bankName: string bankAccountNumber: string bankAccountName: string @@ -828,7 +828,7 @@ export type OrganizerVerificationUpdateWithoutUserInput = { birthDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string address?: Prisma.StringFieldUpdateOperationsInput | string ktpImageKey?: Prisma.StringFieldUpdateOperationsInput | string - selfieKey?: Prisma.StringFieldUpdateOperationsInput | string + livenessKey?: Prisma.StringFieldUpdateOperationsInput | string bankName?: Prisma.StringFieldUpdateOperationsInput | string bankAccountNumber?: Prisma.StringFieldUpdateOperationsInput | string bankAccountName?: Prisma.StringFieldUpdateOperationsInput | string @@ -849,7 +849,7 @@ export type OrganizerVerificationUncheckedUpdateWithoutUserInput = { birthDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string address?: Prisma.StringFieldUpdateOperationsInput | string ktpImageKey?: Prisma.StringFieldUpdateOperationsInput | string - selfieKey?: Prisma.StringFieldUpdateOperationsInput | string + livenessKey?: Prisma.StringFieldUpdateOperationsInput | string bankName?: Prisma.StringFieldUpdateOperationsInput | string bankAccountNumber?: Prisma.StringFieldUpdateOperationsInput | string bankAccountName?: Prisma.StringFieldUpdateOperationsInput | string @@ -890,7 +890,7 @@ export type OrganizerVerificationScalarWhereInput = { birthDate?: Prisma.DateTimeFilter<"OrganizerVerification"> | Date | string address?: Prisma.StringFilter<"OrganizerVerification"> | string ktpImageKey?: Prisma.StringFilter<"OrganizerVerification"> | string - selfieKey?: Prisma.StringFilter<"OrganizerVerification"> | string + livenessKey?: Prisma.StringFilter<"OrganizerVerification"> | string bankName?: Prisma.StringFilter<"OrganizerVerification"> | string bankAccountNumber?: Prisma.StringFilter<"OrganizerVerification"> | string bankAccountName?: Prisma.StringFilter<"OrganizerVerification"> | string @@ -912,7 +912,7 @@ export type OrganizerVerificationCreateManyReviewedByInput = { birthDate: Date | string address: string ktpImageKey: string - selfieKey: string + livenessKey: string bankName: string bankAccountNumber: string bankAccountName: string @@ -932,7 +932,7 @@ export type OrganizerVerificationUpdateWithoutReviewedByInput = { birthDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string address?: Prisma.StringFieldUpdateOperationsInput | string ktpImageKey?: Prisma.StringFieldUpdateOperationsInput | string - selfieKey?: Prisma.StringFieldUpdateOperationsInput | string + livenessKey?: Prisma.StringFieldUpdateOperationsInput | string bankName?: Prisma.StringFieldUpdateOperationsInput | string bankAccountNumber?: Prisma.StringFieldUpdateOperationsInput | string bankAccountName?: Prisma.StringFieldUpdateOperationsInput | string @@ -954,7 +954,7 @@ export type OrganizerVerificationUncheckedUpdateWithoutReviewedByInput = { birthDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string address?: Prisma.StringFieldUpdateOperationsInput | string ktpImageKey?: Prisma.StringFieldUpdateOperationsInput | string - selfieKey?: Prisma.StringFieldUpdateOperationsInput | string + livenessKey?: Prisma.StringFieldUpdateOperationsInput | string bankName?: Prisma.StringFieldUpdateOperationsInput | string bankAccountNumber?: Prisma.StringFieldUpdateOperationsInput | string bankAccountName?: Prisma.StringFieldUpdateOperationsInput | string @@ -975,7 +975,7 @@ export type OrganizerVerificationUncheckedUpdateManyWithoutReviewedByInput = { birthDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string address?: Prisma.StringFieldUpdateOperationsInput | string ktpImageKey?: Prisma.StringFieldUpdateOperationsInput | string - selfieKey?: Prisma.StringFieldUpdateOperationsInput | string + livenessKey?: Prisma.StringFieldUpdateOperationsInput | string bankName?: Prisma.StringFieldUpdateOperationsInput | string bankAccountNumber?: Prisma.StringFieldUpdateOperationsInput | string bankAccountName?: Prisma.StringFieldUpdateOperationsInput | string @@ -998,7 +998,7 @@ export type OrganizerVerificationSelect = runtime.Types.Extensions.GetOmit<"id" | "userId" | "fullName" | "nikEncrypted" | "nikHash" | "birthDate" | "address" | "ktpImageKey" | "selfieKey" | "bankName" | "bankAccountNumber" | "bankAccountName" | "status" | "rejectionReason" | "reviewedAt" | "reviewedById" | "verifiedAt" | "createdAt" | "updatedAt", ExtArgs["result"]["organizerVerification"]> +export type OrganizerVerificationOmit = runtime.Types.Extensions.GetOmit<"id" | "userId" | "fullName" | "nikEncrypted" | "nikHash" | "birthDate" | "address" | "ktpImageKey" | "livenessKey" | "bankName" | "bankAccountNumber" | "bankAccountName" | "status" | "rejectionReason" | "reviewedAt" | "reviewedById" | "verifiedAt" | "createdAt" | "updatedAt", ExtArgs["result"]["organizerVerification"]> export type OrganizerVerificationInclude = { user?: boolean | Prisma.UserDefaultArgs reviewedBy?: boolean | Prisma.OrganizerVerification$reviewedByArgs @@ -1125,9 +1125,10 @@ export type $OrganizerVerificationPayload readonly address: Prisma.FieldRef<"OrganizerVerification", 'String'> readonly ktpImageKey: Prisma.FieldRef<"OrganizerVerification", 'String'> - readonly selfieKey: Prisma.FieldRef<"OrganizerVerification", 'String'> + readonly livenessKey: Prisma.FieldRef<"OrganizerVerification", 'String'> readonly bankName: Prisma.FieldRef<"OrganizerVerification", 'String'> readonly bankAccountNumber: Prisma.FieldRef<"OrganizerVerification", 'String'> readonly bankAccountName: Prisma.FieldRef<"OrganizerVerification", 'String'> diff --git a/app/verify/page.tsx b/app/verify/page.tsx index 9e76c47..8b9a9d5 100644 --- a/app/verify/page.tsx +++ b/app/verify/page.tsx @@ -21,7 +21,7 @@ export default async function VerifyPage() { birthDate: verification.birthDate, address: verification.address, ktpImageKey: verification.ktpImageKey, - selfieKey: verification.selfieKey, + livenessKey: verification.livenessKey, bankName: verification.bankName, bankAccountNumber: verification.bankAccountNumber, bankAccountName: verification.bankAccountName, diff --git a/env.example b/env.example index 399d619..a54fd45 100644 --- a/env.example +++ b/env.example @@ -4,7 +4,7 @@ NEXTAUTH_URL="http://localhost:3000" NEXT_PUBLIC_SITE_URL="https://arifal.imola.ai" ADMIN_EMAILS=admin@setrip.id -# 32-byte key (hex) for AES-256-GCM encryption of KYC data (NIK + KTP/selfie files) +# 32-byte key (hex) for AES-256-GCM encryption of KYC data (NIK + KTP/liveness files) # Generate with: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))" KYC_ENCRYPTION_KEY= # 32-byte hex secret used as HMAC pepper for NIK uniqueness lookup diff --git a/features/organizer/actions.ts b/features/organizer/actions.ts index 0820999..83656a7 100644 --- a/features/organizer/actions.ts +++ b/features/organizer/actions.ts @@ -19,7 +19,7 @@ export async function submitVerificationAction(formData: FormData) { birthDate: formData.get("birthDate") as string, address: formData.get("address") as string, ktpImageKey: formData.get("ktpImageKey") as string, - selfieKey: formData.get("selfieKey") as string, + livenessKey: formData.get("livenessKey") as string, bankName: formData.get("bankName") as string, bankAccountNumber: formData.get("bankAccountNumber") as string, bankAccountName: formData.get("bankAccountName") as string, diff --git a/features/organizer/components/review-card.tsx b/features/organizer/components/review-card.tsx index cf12ffb..2746309 100644 --- a/features/organizer/components/review-card.tsx +++ b/features/organizer/components/review-card.tsx @@ -93,8 +93,8 @@ export function ReviewCard({ verification }: { verification: Verification }) { src={`/api/files/kyc/${verification.id}/ktp`} /> diff --git a/features/organizer/components/verify-form.tsx b/features/organizer/components/verify-form.tsx index ed02968..a92d7df 100644 --- a/features/organizer/components/verify-form.tsx +++ b/features/organizer/components/verify-form.tsx @@ -10,13 +10,13 @@ type Initial = { birthDate: Date; address: string; ktpImageKey: string; - selfieKey: string; + livenessKey: string; bankName: string; bankAccountNumber: string; bankAccountName: string; } | null; -type UploadKind = "ktp" | "selfie"; +type UploadKind = "ktp" | "liveness"; const ACCEPT_MIME = "image/jpeg,image/png,image/webp"; const MAX_BYTES = 5 * 1024 * 1024; @@ -33,19 +33,19 @@ export function VerifyForm({ initial }: { initial: Initial }) { const [error, setError] = useState(""); const [loading, setLoading] = useState(false); const [ktpKey, setKtpKey] = useState(initial?.ktpImageKey ?? ""); - const [selfieKey, setSelfieKey] = useState(initial?.selfieKey ?? ""); + const [livenessKey, setLivenessKey] = useState(initial?.livenessKey ?? ""); async function handleSubmit(e: React.FormEvent) { e.preventDefault(); setError(""); - if (!ktpKey || !selfieKey) { - setError("Foto KTP dan selfie wajib diunggah"); + if (!ktpKey || !livenessKey) { + setError("Foto KTP dan foto memegang kertas SETRIP wajib diunggah"); return; } setLoading(true); const formData = new FormData(e.currentTarget); formData.set("ktpImageKey", ktpKey); - formData.set("selfieKey", selfieKey); + formData.set("livenessKey", livenessKey); const result = await submitVerificationAction(formData); setLoading(false); if (result.error) { @@ -143,13 +143,22 @@ export function VerifyForm({ initial }: { initial: Initial }) { onChange={setKtpKey} onError={setError} /> - +
+ +

+ Tulis kata SETRIP dengan + tangan di selembar kertas, lalu foto diri kamu sambil memegang + kertas itu — pastikan wajah & tulisan terlihat jelas dalam satu + foto. Foto ini bukti bahwa pengajuan benar dilakukan oleh kamu + sendiri. +

+
diff --git a/features/organizer/schemas.ts b/features/organizer/schemas.ts index d4933f3..faa6295 100644 --- a/features/organizer/schemas.ts +++ b/features/organizer/schemas.ts @@ -26,10 +26,13 @@ export const submitVerificationSchema = z.object({ .string() .trim() .regex(/^ktp\/[A-Za-z0-9_-]+\.(jpg|png|webp)$/, "Foto KTP wajib diunggah"), - selfieKey: z + livenessKey: z .string() .trim() - .regex(/^selfie\/[A-Za-z0-9_-]+\.(jpg|png|webp)$/, "Foto selfie wajib diunggah"), + .regex( + /^liveness\/[A-Za-z0-9_-]+\.(jpg|png|webp)$/, + "Foto memegang kertas SETRIP wajib diunggah" + ), bankName: z .string() .trim() diff --git a/lib/secure-storage.ts b/lib/secure-storage.ts index 4ad6f9e..3c1b4c0 100644 --- a/lib/secure-storage.ts +++ b/lib/secure-storage.ts @@ -3,11 +3,11 @@ import path from "node:path"; import crypto from "node:crypto"; import { encryptBuffer, decryptBuffer } from "@/lib/crypto"; -export type KycKind = "ktp" | "selfie"; +export type KycKind = "ktp" | "liveness"; const KIND_DIRS: Record = { ktp: "ktp", - selfie: "selfie", + liveness: "liveness", }; /** Bytes. ~5MB matches the form limit; raise here if you change the upload route. */ @@ -43,7 +43,7 @@ export type StoredFileMeta = { }; export function isKycKind(value: string): value is KycKind { - return value === "ktp" || value === "selfie"; + return value === "ktp" || value === "liveness"; } /** Resolve a storage key (`ktp/abc.jpg`) to an absolute path inside the upload dir. Throws on traversal. */ diff --git a/prisma/migrations/20260508140000_rename_selfie_to_liveness/migration.sql b/prisma/migrations/20260508140000_rename_selfie_to_liveness/migration.sql new file mode 100644 index 0000000..edf0581 --- /dev/null +++ b/prisma/migrations/20260508140000_rename_selfie_to_liveness/migration.sql @@ -0,0 +1,4 @@ +-- AlterTable: rename selfieKey -> livenessKey. +-- Sebelumnya: storage key untuk selfie memegang KTP. +-- Sekarang: storage key foto liveness (user memegang kertas tulisan "SETRIP"). +ALTER TABLE "OrganizerVerification" RENAME COLUMN "selfieKey" TO "livenessKey"; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 40ceb15..d3c06b3 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -99,8 +99,9 @@ model OrganizerVerification { /// Storage key foto KTP (mis. `ktp/.jpg`). File disimpan terenkripsi di luar /public. ktpImageKey String - /// Storage key selfie memegang KTP. - selfieKey String + /// Storage key foto liveness — user memegang kertas bertuliskan "SETRIP". + /// (Sebelumnya: selfie memegang KTP. Diganti supaya user tidak perlu memajang KTP dua kali.) + livenessKey String bankName String bankAccountNumber String diff --git a/prisma/seed.ts b/prisma/seed.ts index c2bfc4a..f276bc1 100644 --- a/prisma/seed.ts +++ b/prisma/seed.ts @@ -69,7 +69,7 @@ async function main() { birthDate: new Date(Date.UTC(1990, 0, 1)), address: "Jl. Pendaki No. 1, Garut, Jawa Barat", ktpImageKey: "ktp/seed-dede.jpg", - selfieKey: "selfie/seed-dede.jpg", + livenessKey: "liveness/seed-dede.jpg", bankName: "BCA", bankAccountNumber: "1234567890", bankAccountName: "Dede Inoen", @@ -85,7 +85,7 @@ async function main() { birthDate: new Date(Date.UTC(1985, 5, 15)), address: "Jl. Adventure No. 7, Kuningan, Jawa Barat", ktpImageKey: "ktp/seed-panji.jpg", - selfieKey: "selfie/seed-panji.jpg", + livenessKey: "liveness/seed-panji.jpg", bankName: "Mandiri", bankAccountNumber: "9876543210", bankAccountName: "Panji Petualang", diff --git a/server/services/organizer.service.ts b/server/services/organizer.service.ts index 83995d8..9682f4c 100644 --- a/server/services/organizer.service.ts +++ b/server/services/organizer.service.ts @@ -7,7 +7,7 @@ type SubmitInput = { birthDate: Date; address: string; ktpImageKey: string; - selfieKey: string; + livenessKey: string; bankName: string; bankAccountNumber: string; bankAccountName: string; @@ -36,7 +36,7 @@ export const organizerService = { birthDate: data.birthDate, address: data.address, ktpImageKey: data.ktpImageKey, - selfieKey: data.selfieKey, + livenessKey: data.livenessKey, bankName: data.bankName, bankAccountNumber: data.bankAccountNumber, bankAccountName: data.bankAccountName,