
/* !!! This is code generated by Prisma. Do not edit directly. !!!
/* eslint-disable */

Object.defineProperty(exports, "__esModule", { value: true });

const {
  PrismaClientKnownRequestError,
  PrismaClientUnknownRequestError,
  PrismaClientRustPanicError,
  PrismaClientInitializationError,
  PrismaClientValidationError,
  getPrismaClient,
  sqltag,
  empty,
  join,
  raw,
  skip,
  Decimal,
  Debug,
  objectEnumValues,
  makeStrictEnum,
  Extensions,
  warnOnce,
  defineDmmfProperty,
  Public,
  getRuntime,
  createParam,
} = require('@prisma/client/runtime/wasm-engine-edge.js')


const Prisma = {}

exports.Prisma = Prisma
exports.$Enums = {}

/**
 * Prisma Client JS version: 6.17.1
 * Query Engine version: 272a37d34178c2894197e17273bf937f25acdeac
 */
Prisma.prismaVersion = {
  client: "6.17.1",
  engine: "272a37d34178c2894197e17273bf937f25acdeac"
}

Prisma.PrismaClientKnownRequestError = PrismaClientKnownRequestError;
Prisma.PrismaClientUnknownRequestError = PrismaClientUnknownRequestError
Prisma.PrismaClientRustPanicError = PrismaClientRustPanicError
Prisma.PrismaClientInitializationError = PrismaClientInitializationError
Prisma.PrismaClientValidationError = PrismaClientValidationError
Prisma.Decimal = Decimal

/**
 * Re-export of sql-template-tag
 */
Prisma.sql = sqltag
Prisma.empty = empty
Prisma.join = join
Prisma.raw = raw
Prisma.validator = Public.validator

/**
* Extensions
*/
Prisma.getExtensionContext = Extensions.getExtensionContext
Prisma.defineExtension = Extensions.defineExtension

/**
 * Shorthand utilities for JSON filtering
 */
Prisma.DbNull = objectEnumValues.instances.DbNull
Prisma.JsonNull = objectEnumValues.instances.JsonNull
Prisma.AnyNull = objectEnumValues.instances.AnyNull

Prisma.NullTypes = {
  DbNull: objectEnumValues.classes.DbNull,
  JsonNull: objectEnumValues.classes.JsonNull,
  AnyNull: objectEnumValues.classes.AnyNull
}





/**
 * Enums
 */
exports.Prisma.TransactionIsolationLevel = makeStrictEnum({
  ReadUncommitted: 'ReadUncommitted',
  ReadCommitted: 'ReadCommitted',
  RepeatableRead: 'RepeatableRead',
  Serializable: 'Serializable'
});

exports.Prisma.UserScalarFieldEnum = {
  id: 'id',
  name: 'name',
  email: 'email',
  phone: 'phone',
  password: 'password',
  createdAt: 'createdAt'
};

exports.Prisma.MovieScalarFieldEnum = {
  id: 'id',
  title: 'title',
  genre: 'genre',
  durationMin: 'durationMin',
  posterUrl: 'posterUrl',
  trailerUrl: 'trailerUrl',
  synopsis: 'synopsis',
  ratingAvg: 'ratingAvg'
};

exports.Prisma.HallScalarFieldEnum = {
  id: 'id',
  name: 'name',
  capacity: 'capacity'
};

exports.Prisma.SeatScalarFieldEnum = {
  id: 'id',
  hallId: 'hallId',
  label: 'label'
};

exports.Prisma.ShowtimeScalarFieldEnum = {
  id: 'id',
  movieId: 'movieId',
  hallId: 'hallId',
  showDate: 'showDate',
  basePrice: 'basePrice'
};

exports.Prisma.BookingScalarFieldEnum = {
  id: 'id',
  userId: 'userId',
  showtimeId: 'showtimeId',
  seatLabel: 'seatLabel',
  amount: 'amount',
  paymentStatus: 'paymentStatus',
  qrCode: 'qrCode',
  createdAt: 'createdAt'
};

exports.Prisma.ReviewScalarFieldEnum = {
  id: 'id',
  userId: 'userId',
  movieId: 'movieId',
  rating: 'rating',
  comment: 'comment',
  createdAt: 'createdAt'
};

exports.Prisma.SortOrder = {
  asc: 'asc',
  desc: 'desc'
};

exports.Prisma.NullsOrder = {
  first: 'first',
  last: 'last'
};

exports.Prisma.UserOrderByRelevanceFieldEnum = {
  name: 'name',
  email: 'email',
  phone: 'phone',
  password: 'password'
};

exports.Prisma.MovieOrderByRelevanceFieldEnum = {
  title: 'title',
  genre: 'genre',
  posterUrl: 'posterUrl',
  trailerUrl: 'trailerUrl',
  synopsis: 'synopsis'
};

exports.Prisma.HallOrderByRelevanceFieldEnum = {
  name: 'name'
};

exports.Prisma.SeatOrderByRelevanceFieldEnum = {
  label: 'label'
};

exports.Prisma.BookingOrderByRelevanceFieldEnum = {
  seatLabel: 'seatLabel',
  paymentStatus: 'paymentStatus',
  qrCode: 'qrCode'
};

exports.Prisma.ReviewOrderByRelevanceFieldEnum = {
  comment: 'comment'
};


exports.Prisma.ModelName = {
  User: 'User',
  Movie: 'Movie',
  Hall: 'Hall',
  Seat: 'Seat',
  Showtime: 'Showtime',
  Booking: 'Booking',
  Review: 'Review'
};
/**
 * Create the Client
 */
const config = {
  "generator": {
    "name": "client",
    "provider": {
      "fromEnvVar": null,
      "value": "prisma-client-js"
    },
    "output": {
      "value": "C:\\Users\\SalisuWebmaster\\cinemaApp\\backend\\node_modules\\@prisma\\client",
      "fromEnvVar": null
    },
    "config": {
      "engineType": "library"
    },
    "binaryTargets": [
      {
        "fromEnvVar": null,
        "value": "windows",
        "native": true
      }
    ],
    "previewFeatures": [],
    "sourceFilePath": "C:\\Users\\SalisuWebmaster\\cinemaApp\\backend\\prisma\\schema.prisma"
  },
  "relativeEnvPaths": {
    "rootEnvPath": null,
    "schemaEnvPath": "../../../.env"
  },
  "relativePath": "../../../prisma",
  "clientVersion": "6.17.1",
  "engineVersion": "272a37d34178c2894197e17273bf937f25acdeac",
  "datasourceNames": [
    "db"
  ],
  "activeProvider": "mysql",
  "inlineDatasources": {
    "db": {
      "url": {
        "fromEnvVar": "DATABASE_URL",
        "value": null
      }
    }
  },
  "inlineSchema": "// Prisma schema for Online Cinema Ticketing System\n\ngenerator client {\n  provider = \"prisma-client-js\"\n}\n\ndatasource db {\n  provider = \"mysql\"\n  url      = env(\"DATABASE_URL\")\n}\n\nmodel User {\n  id        Int       @id @default(autoincrement())\n  name      String\n  email     String    @unique\n  phone     String?   @unique\n  password  String\n  createdAt DateTime  @default(now())\n  bookings  Booking[]\n  reviews   Review[]\n}\n\nmodel Movie {\n  id          Int        @id @default(autoincrement())\n  title       String\n  genre       String?\n  durationMin Int?\n  posterUrl   String?\n  trailerUrl  String?\n  synopsis    String?\n  ratingAvg   Decimal    @default(0)\n  showtimes   Showtime[]\n  reviews     Review[]\n}\n\nmodel Hall {\n  id        Int        @id @default(autoincrement())\n  name      String\n  capacity  Int\n  seats     Seat[]\n  showtimes Showtime[]\n}\n\nmodel Seat {\n  id     Int    @id @default(autoincrement())\n  hall   Hall   @relation(fields: [hallId], references: [id])\n  hallId Int\n  label  String\n\n  @@unique([hallId, label])\n}\n\nmodel Showtime {\n  id        Int       @id @default(autoincrement())\n  movie     Movie     @relation(fields: [movieId], references: [id])\n  movieId   Int\n  hall      Hall      @relation(fields: [hallId], references: [id])\n  hallId    Int\n  showDate  DateTime\n  basePrice Decimal\n  bookings  Booking[]\n}\n\nmodel Booking {\n  id            Int      @id @default(autoincrement())\n  user          User     @relation(fields: [userId], references: [id])\n  userId        Int\n  showtime      Showtime @relation(fields: [showtimeId], references: [id])\n  showtimeId    Int\n  seatLabel     String\n  amount        Decimal\n  paymentStatus String\n  qrCode        String?\n  createdAt     DateTime @default(now())\n}\n\nmodel Review {\n  id        Int      @id @default(autoincrement())\n  user      User     @relation(fields: [userId], references: [id])\n  userId    Int\n  movie     Movie    @relation(fields: [movieId], references: [id])\n  movieId   Int\n  rating    Int\n  comment   String?\n  createdAt DateTime @default(now())\n}\n",
  "inlineSchemaHash": "724b06631b4e5cca55ec1ceb5977c301e24f1aadff0a92a38808ce2ac60f0e2d",
  "copyEngine": true
}
config.dirname = '/'

config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"bookings\",\"kind\":\"object\",\"type\":\"Booking\",\"relationName\":\"BookingToUser\"},{\"name\":\"reviews\",\"kind\":\"object\",\"type\":\"Review\",\"relationName\":\"ReviewToUser\"}],\"dbName\":null},\"Movie\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"genre\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"durationMin\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"posterUrl\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"trailerUrl\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"synopsis\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ratingAvg\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"showtimes\",\"kind\":\"object\",\"type\":\"Showtime\",\"relationName\":\"MovieToShowtime\"},{\"name\":\"reviews\",\"kind\":\"object\",\"type\":\"Review\",\"relationName\":\"MovieToReview\"}],\"dbName\":null},\"Hall\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"capacity\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"seats\",\"kind\":\"object\",\"type\":\"Seat\",\"relationName\":\"HallToSeat\"},{\"name\":\"showtimes\",\"kind\":\"object\",\"type\":\"Showtime\",\"relationName\":\"HallToShowtime\"}],\"dbName\":null},\"Seat\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"hall\",\"kind\":\"object\",\"type\":\"Hall\",\"relationName\":\"HallToSeat\"},{\"name\":\"hallId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"label\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"Showtime\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"movie\",\"kind\":\"object\",\"type\":\"Movie\",\"relationName\":\"MovieToShowtime\"},{\"name\":\"movieId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"hall\",\"kind\":\"object\",\"type\":\"Hall\",\"relationName\":\"HallToShowtime\"},{\"name\":\"hallId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"showDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"basePrice\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"bookings\",\"kind\":\"object\",\"type\":\"Booking\",\"relationName\":\"BookingToShowtime\"}],\"dbName\":null},\"Booking\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"BookingToUser\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"showtime\",\"kind\":\"object\",\"type\":\"Showtime\",\"relationName\":\"BookingToShowtime\"},{\"name\":\"showtimeId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"seatLabel\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"amount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"paymentStatus\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"qrCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"Review\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ReviewToUser\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"movie\",\"kind\":\"object\",\"type\":\"Movie\",\"relationName\":\"MovieToReview\"},{\"name\":\"movieId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rating\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}")
defineDmmfProperty(exports.Prisma, config.runtimeDataModel)
config.engineWasm = {
  getRuntime: async () => require('./query_engine_bg.js'),
  getQueryEngineWasmModule: async () => {
    const loader = (await import('#wasm-engine-loader')).default
    const engine = (await loader).default
    return engine
  }
}
config.compilerWasm = undefined

config.injectableEdgeEnv = () => ({
  parsed: {
    DATABASE_URL: typeof globalThis !== 'undefined' && globalThis['DATABASE_URL'] || typeof process !== 'undefined' && process.env && process.env.DATABASE_URL || undefined
  }
})

if (typeof globalThis !== 'undefined' && globalThis['DEBUG'] || typeof process !== 'undefined' && process.env && process.env.DEBUG || undefined) {
  Debug.enable(typeof globalThis !== 'undefined' && globalThis['DEBUG'] || typeof process !== 'undefined' && process.env && process.env.DEBUG || undefined)
}

const PrismaClient = getPrismaClient(config)
exports.PrismaClient = PrismaClient
Object.assign(exports, Prisma)

