
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
/* eslint-disable */
// biome-ignore-all lint: generated file
// @ts-nocheck 
/*
 * This file should be your main import to use Prisma. Through it you get access to all the models, enums, and input types.
 * If you're looking for something you can import in the client-side of your application, please refer to the `browser.ts` file instead.
 *
 * 🟢 You can import this file directly.
 */

import * as process from 'node:process'
import * as path from 'node:path'
import { fileURLToPath } from 'node:url'
globalThis['__dirname'] = path.dirname(fileURLToPath(import.meta.url))

import * as runtime from "@prisma/client/runtime/client"
import * as $Enums from "./enums"
import * as $Class from "./internal/class"
import * as Prisma from "./internal/prismaNamespace"

export * as $Enums from './enums'
export * from "./enums"
/**
 * ## Prisma Client
 * 
 * Type-safe database client for TypeScript
 * @example
 * ```
 * const prisma = new PrismaClient({
 *   adapter: new PrismaPg({ connectionString: process.env.DATABASE_URL })
 * })
 * // Fetch zero or more Users
 * const users = await prisma.user.findMany()
 * ```
 * 
 * Read more in our [docs](https://pris.ly/d/client).
 */
export const PrismaClient = $Class.getPrismaClientClass()
export type PrismaClient<LogOpts extends Prisma.LogLevel = never, OmitOpts extends Prisma.PrismaClientOptions["omit"] = Prisma.PrismaClientOptions["omit"], ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = $Class.PrismaClient<LogOpts, OmitOpts, ExtArgs>
export { Prisma }

/**
 * Model User
 * 
 */
export type User = Prisma.UserModel
/**
 * Model UserProfile
 * Profil sosial publik. Berisi info yang user pilih untuk dibagikan ke peserta lain
 * (bio, kota, minat, vibe). Tidak menyimpan data sensitif — KYC tetap di OrganizerVerification.
 */
export type UserProfile = Prisma.UserProfileModel
/**
 * Model Account
 * Tabel link akun OAuth pihak ketiga (Google, dst). Diisi oleh PrismaAdapter NextAuth.
 * Session tidak pakai DB — kita pakai JWT, jadi Session/VerificationToken tidak perlu.
 */
export type Account = Prisma.AccountModel
/**
 * Model OrganizerVerification
 * 
 */
export type OrganizerVerification = Prisma.OrganizerVerificationModel
/**
 * Model Trip
 * 
 */
export type Trip = Prisma.TripModel
/**
 * Model TripReview
 * 
 */
export type TripReview = Prisma.TripReviewModel
/**
 * Model TripImage
 * 
 */
export type TripImage = Prisma.TripImageModel
/**
 * Model TripParticipant
 * 
 */
export type TripParticipant = Prisma.TripParticipantModel
/**
 * Model Booking
 * Booking 1-1 ke TripParticipant. Lifecycle ikut peserta:
 * - join → Booking PENDING (menunggu approve organizer)
 * - organizer confirm → AWAITING_PAY (paid trip) atau PAID (free trip)
 * - peserta + organizer rampungkan pembayaran → PAID
 * - cancel/reject → CANCELLED
 * `amount` adalah snapshot harga saat booking dibuat — protect dari perubahan trip.price.
 */
export type Booking = Prisma.BookingModel
/**
 * Model Payment
 * Satu attempt pembayaran. Satu Booking bisa punya banyak Payment kalau retry
 * (di Phase MIDTRANS nanti). Untuk MANUAL biasanya cukup 1 Payment.
 */
export type Payment = Prisma.PaymentModel
