
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
/* eslint-disable */
// biome-ignore-all lint: generated file
// @ts-nocheck 
/*
 * WARNING: This is an internal file that is subject to change!
 *
 * 🛑 Under no circumstances should you import this file directly! 🛑
 *
 * All exports from this file are wrapped under a `Prisma` namespace object in the browser.ts file.
 * While this enables partial backward compatibility, it is not part of the stable public API.
 *
 * If you are looking for your Models, Enums, and Input Types, please import them from the respective
 * model files in the `model` directory!
 */

import * as runtime from "@prisma/client/runtime/index-browser"

export type * from '../models'
export type * from './prismaNamespace'

export const Decimal = runtime.Decimal


export const NullTypes = {
  DbNull: runtime.NullTypes.DbNull as (new (secret: never) => typeof runtime.DbNull),
  JsonNull: runtime.NullTypes.JsonNull as (new (secret: never) => typeof runtime.JsonNull),
  AnyNull: runtime.NullTypes.AnyNull as (new (secret: never) => typeof runtime.AnyNull),
}
/**
 * Helper for filtering JSON entries that have `null` on the database (empty on the db)
 *
 * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
 */
export const DbNull = runtime.DbNull

/**
 * Helper for filtering JSON entries that have JSON `null` values (not empty on the db)
 *
 * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
 */
export const JsonNull = runtime.JsonNull

/**
 * Helper for filtering JSON entries that are `Prisma.DbNull` or `Prisma.JsonNull`
 *
 * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
 */
export const AnyNull = runtime.AnyNull


export const ModelName = {
  User: 'User',
  Category: 'Category',
  Course: 'Course',
  Module: 'Module',
  Lesson: 'Lesson',
  Quiz: 'Quiz',
  Question: 'Question',
  Enrollment: 'Enrollment',
  QuizAssignment: 'QuizAssignment',
  File: 'File',
  Review: 'Review',
  Note: 'Note',
  UserProgress: 'UserProgress',
  SiteSettings: 'SiteSettings',
  Purchase: 'Purchase',
  Certificate: 'Certificate'
} as const

export type ModelName = (typeof ModelName)[keyof typeof ModelName]

/*
 * Enums
 */

export const TransactionIsolationLevel = {
  ReadUncommitted: 'ReadUncommitted',
  ReadCommitted: 'ReadCommitted',
  RepeatableRead: 'RepeatableRead',
  Serializable: 'Serializable'
} as const

export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel]


export const UserScalarFieldEnum = {
  id: 'id',
  clerkId: 'clerkId',
  email: 'email',
  role: 'role',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum]


export const CategoryScalarFieldEnum = {
  id: 'id',
  name: 'name',
  icon: 'icon',
  color: 'color'
} as const

export type CategoryScalarFieldEnum = (typeof CategoryScalarFieldEnum)[keyof typeof CategoryScalarFieldEnum]


export const CourseScalarFieldEnum = {
  id: 'id',
  title: 'title',
  description: 'description',
  price: 'price',
  level: 'level',
  imageUrl: 'imageUrl',
  published: 'published',
  categoryId: 'categoryId',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt',
  certificateEnabled: 'certificateEnabled',
  completionRule: 'completionRule',
  enrollmentType: 'enrollmentType',
  fullDescription: 'fullDescription',
  language: 'language',
  prerequisites: 'prerequisites',
  shortDescription: 'shortDescription',
  slug: 'slug',
  targetAudience: 'targetAudience',
  visibility: 'visibility',
  whatYouLearn: 'whatYouLearn',
  courseCode: 'courseCode'
} as const

export type CourseScalarFieldEnum = (typeof CourseScalarFieldEnum)[keyof typeof CourseScalarFieldEnum]


export const ModuleScalarFieldEnum = {
  id: 'id',
  title: 'title',
  description: 'description',
  order: 'order',
  courseId: 'courseId',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

export type ModuleScalarFieldEnum = (typeof ModuleScalarFieldEnum)[keyof typeof ModuleScalarFieldEnum]


export const LessonScalarFieldEnum = {
  id: 'id',
  title: 'title',
  contentType: 'contentType',
  content: 'content',
  duration: 'duration',
  order: 'order',
  moduleId: 'moduleId',
  quizId: 'quizId',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

export type LessonScalarFieldEnum = (typeof LessonScalarFieldEnum)[keyof typeof LessonScalarFieldEnum]


export const QuizScalarFieldEnum = {
  id: 'id',
  title: 'title',
  description: 'description',
  type: 'type',
  timeLimit: 'timeLimit',
  attemptLimit: 'attemptLimit',
  passingScore: 'passingScore',
  randomize: 'randomize',
  status: 'status',
  isFinalQuiz: 'isFinalQuiz',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

export type QuizScalarFieldEnum = (typeof QuizScalarFieldEnum)[keyof typeof QuizScalarFieldEnum]


export const QuestionScalarFieldEnum = {
  id: 'id',
  quizId: 'quizId',
  type: 'type',
  question: 'question',
  options: 'options',
  correctAnswer: 'correctAnswer',
  explanation: 'explanation',
  score: 'score',
  order: 'order',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

export type QuestionScalarFieldEnum = (typeof QuestionScalarFieldEnum)[keyof typeof QuestionScalarFieldEnum]


export const EnrollmentScalarFieldEnum = {
  id: 'id',
  userId: 'userId',
  courseId: 'courseId',
  progress: 'progress',
  courseCompleted: 'courseCompleted',
  courseCompletedAt: 'courseCompletedAt',
  finalScore: 'finalScore',
  finalPredicate: 'finalPredicate',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

export type EnrollmentScalarFieldEnum = (typeof EnrollmentScalarFieldEnum)[keyof typeof EnrollmentScalarFieldEnum]


export const QuizAssignmentScalarFieldEnum = {
  id: 'id',
  userId: 'userId',
  quizId: 'quizId',
  status: 'status',
  score: 'score',
  answers: 'answers',
  createdAt: 'createdAt',
  attemptedAt: 'attemptedAt',
  submittedAt: 'submittedAt',
  completedAt: 'completedAt',
  isLocked: 'isLocked'
} as const

export type QuizAssignmentScalarFieldEnum = (typeof QuizAssignmentScalarFieldEnum)[keyof typeof QuizAssignmentScalarFieldEnum]


export const FileScalarFieldEnum = {
  id: 'id',
  filename: 'filename',
  originalName: 'originalName',
  mimeType: 'mimeType',
  size: 'size',
  path: 'path',
  type: 'type',
  courseId: 'courseId',
  moduleId: 'moduleId',
  lessonId: 'lessonId',
  metadata: 'metadata',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

export type FileScalarFieldEnum = (typeof FileScalarFieldEnum)[keyof typeof FileScalarFieldEnum]


export const ReviewScalarFieldEnum = {
  id: 'id',
  rating: 'rating',
  comment: 'comment',
  userId: 'userId',
  courseId: 'courseId',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

export type ReviewScalarFieldEnum = (typeof ReviewScalarFieldEnum)[keyof typeof ReviewScalarFieldEnum]


export const NoteScalarFieldEnum = {
  id: 'id',
  content: 'content',
  userId: 'userId',
  lessonId: 'lessonId',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

export type NoteScalarFieldEnum = (typeof NoteScalarFieldEnum)[keyof typeof NoteScalarFieldEnum]


export const UserProgressScalarFieldEnum = {
  id: 'id',
  userId: 'userId',
  lessonId: 'lessonId',
  isCompleted: 'isCompleted',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

export type UserProgressScalarFieldEnum = (typeof UserProgressScalarFieldEnum)[keyof typeof UserProgressScalarFieldEnum]


export const SiteSettingsScalarFieldEnum = {
  id: 'id',
  key: 'key',
  value: 'value',
  updatedAt: 'updatedAt'
} as const

export type SiteSettingsScalarFieldEnum = (typeof SiteSettingsScalarFieldEnum)[keyof typeof SiteSettingsScalarFieldEnum]


export const PurchaseScalarFieldEnum = {
  id: 'id',
  userId: 'userId',
  courseId: 'courseId',
  price: 'price',
  status: 'status',
  paymentType: 'paymentType',
  snapToken: 'snapToken',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

export type PurchaseScalarFieldEnum = (typeof PurchaseScalarFieldEnum)[keyof typeof PurchaseScalarFieldEnum]


export const CertificateScalarFieldEnum = {
  id: 'id',
  certificateNumber: 'certificateNumber',
  sequenceNumber: 'sequenceNumber',
  userId: 'userId',
  courseId: 'courseId',
  courseName: 'courseName',
  userName: 'userName',
  predicate: 'predicate',
  finalScore: 'finalScore',
  completedAt: 'completedAt',
  issuedAt: 'issuedAt',
  pdfUrl: 'pdfUrl',
  qrCodeData: 'qrCodeData'
} as const

export type CertificateScalarFieldEnum = (typeof CertificateScalarFieldEnum)[keyof typeof CertificateScalarFieldEnum]


export const SortOrder = {
  asc: 'asc',
  desc: 'desc'
} as const

export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]


export const UserOrderByRelevanceFieldEnum = {
  id: 'id',
  clerkId: 'clerkId',
  email: 'email',
  role: 'role'
} as const

export type UserOrderByRelevanceFieldEnum = (typeof UserOrderByRelevanceFieldEnum)[keyof typeof UserOrderByRelevanceFieldEnum]


export const CategoryOrderByRelevanceFieldEnum = {
  id: 'id',
  name: 'name',
  icon: 'icon',
  color: 'color'
} as const

export type CategoryOrderByRelevanceFieldEnum = (typeof CategoryOrderByRelevanceFieldEnum)[keyof typeof CategoryOrderByRelevanceFieldEnum]


export const NullsOrder = {
  first: 'first',
  last: 'last'
} as const

export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder]


export const CourseOrderByRelevanceFieldEnum = {
  id: 'id',
  title: 'title',
  description: 'description',
  level: 'level',
  imageUrl: 'imageUrl',
  categoryId: 'categoryId',
  completionRule: 'completionRule',
  enrollmentType: 'enrollmentType',
  fullDescription: 'fullDescription',
  language: 'language',
  prerequisites: 'prerequisites',
  shortDescription: 'shortDescription',
  slug: 'slug',
  targetAudience: 'targetAudience',
  visibility: 'visibility',
  whatYouLearn: 'whatYouLearn',
  courseCode: 'courseCode'
} as const

export type CourseOrderByRelevanceFieldEnum = (typeof CourseOrderByRelevanceFieldEnum)[keyof typeof CourseOrderByRelevanceFieldEnum]


export const ModuleOrderByRelevanceFieldEnum = {
  id: 'id',
  title: 'title',
  description: 'description',
  courseId: 'courseId'
} as const

export type ModuleOrderByRelevanceFieldEnum = (typeof ModuleOrderByRelevanceFieldEnum)[keyof typeof ModuleOrderByRelevanceFieldEnum]


export const LessonOrderByRelevanceFieldEnum = {
  id: 'id',
  title: 'title',
  contentType: 'contentType',
  content: 'content',
  moduleId: 'moduleId',
  quizId: 'quizId'
} as const

export type LessonOrderByRelevanceFieldEnum = (typeof LessonOrderByRelevanceFieldEnum)[keyof typeof LessonOrderByRelevanceFieldEnum]


export const QuizOrderByRelevanceFieldEnum = {
  id: 'id',
  title: 'title',
  description: 'description',
  type: 'type',
  status: 'status'
} as const

export type QuizOrderByRelevanceFieldEnum = (typeof QuizOrderByRelevanceFieldEnum)[keyof typeof QuizOrderByRelevanceFieldEnum]


export const QuestionOrderByRelevanceFieldEnum = {
  id: 'id',
  quizId: 'quizId',
  type: 'type',
  question: 'question',
  options: 'options',
  correctAnswer: 'correctAnswer',
  explanation: 'explanation'
} as const

export type QuestionOrderByRelevanceFieldEnum = (typeof QuestionOrderByRelevanceFieldEnum)[keyof typeof QuestionOrderByRelevanceFieldEnum]


export const EnrollmentOrderByRelevanceFieldEnum = {
  id: 'id',
  userId: 'userId',
  courseId: 'courseId',
  finalPredicate: 'finalPredicate'
} as const

export type EnrollmentOrderByRelevanceFieldEnum = (typeof EnrollmentOrderByRelevanceFieldEnum)[keyof typeof EnrollmentOrderByRelevanceFieldEnum]


export const QuizAssignmentOrderByRelevanceFieldEnum = {
  id: 'id',
  userId: 'userId',
  quizId: 'quizId',
  status: 'status',
  answers: 'answers'
} as const

export type QuizAssignmentOrderByRelevanceFieldEnum = (typeof QuizAssignmentOrderByRelevanceFieldEnum)[keyof typeof QuizAssignmentOrderByRelevanceFieldEnum]


export const FileOrderByRelevanceFieldEnum = {
  id: 'id',
  filename: 'filename',
  originalName: 'originalName',
  mimeType: 'mimeType',
  path: 'path',
  type: 'type',
  courseId: 'courseId',
  moduleId: 'moduleId',
  lessonId: 'lessonId',
  metadata: 'metadata'
} as const

export type FileOrderByRelevanceFieldEnum = (typeof FileOrderByRelevanceFieldEnum)[keyof typeof FileOrderByRelevanceFieldEnum]


export const ReviewOrderByRelevanceFieldEnum = {
  id: 'id',
  comment: 'comment',
  userId: 'userId',
  courseId: 'courseId'
} as const

export type ReviewOrderByRelevanceFieldEnum = (typeof ReviewOrderByRelevanceFieldEnum)[keyof typeof ReviewOrderByRelevanceFieldEnum]


export const NoteOrderByRelevanceFieldEnum = {
  id: 'id',
  content: 'content',
  userId: 'userId',
  lessonId: 'lessonId'
} as const

export type NoteOrderByRelevanceFieldEnum = (typeof NoteOrderByRelevanceFieldEnum)[keyof typeof NoteOrderByRelevanceFieldEnum]


export const UserProgressOrderByRelevanceFieldEnum = {
  id: 'id',
  userId: 'userId',
  lessonId: 'lessonId'
} as const

export type UserProgressOrderByRelevanceFieldEnum = (typeof UserProgressOrderByRelevanceFieldEnum)[keyof typeof UserProgressOrderByRelevanceFieldEnum]


export const SiteSettingsOrderByRelevanceFieldEnum = {
  id: 'id',
  key: 'key',
  value: 'value'
} as const

export type SiteSettingsOrderByRelevanceFieldEnum = (typeof SiteSettingsOrderByRelevanceFieldEnum)[keyof typeof SiteSettingsOrderByRelevanceFieldEnum]


export const PurchaseOrderByRelevanceFieldEnum = {
  id: 'id',
  userId: 'userId',
  courseId: 'courseId',
  status: 'status',
  paymentType: 'paymentType',
  snapToken: 'snapToken'
} as const

export type PurchaseOrderByRelevanceFieldEnum = (typeof PurchaseOrderByRelevanceFieldEnum)[keyof typeof PurchaseOrderByRelevanceFieldEnum]


export const CertificateOrderByRelevanceFieldEnum = {
  id: 'id',
  certificateNumber: 'certificateNumber',
  userId: 'userId',
  courseId: 'courseId',
  courseName: 'courseName',
  userName: 'userName',
  predicate: 'predicate',
  pdfUrl: 'pdfUrl',
  qrCodeData: 'qrCodeData'
} as const

export type CertificateOrderByRelevanceFieldEnum = (typeof CertificateOrderByRelevanceFieldEnum)[keyof typeof CertificateOrderByRelevanceFieldEnum]

