/** * Client **/ import * as runtime from '@prisma/client/runtime/library.js'; import $Types = runtime.Types // general types import $Public = runtime.Types.Public import $Utils = runtime.Types.Utils import $Extensions = runtime.Types.Extensions import $Result = runtime.Types.Result export type PrismaPromise = $Public.PrismaPromise /** * Model User * */ export type User = $Result.DefaultSelection /** * Model Account * */ export type Account = $Result.DefaultSelection /** * Model Session * */ export type Session = $Result.DefaultSelection /** * Model VerificationToken * */ export type VerificationToken = $Result.DefaultSelection /** * Model Course * */ export type Course = $Result.DefaultSelection /** * Model Module * */ export type Module = $Result.DefaultSelection /** * Model Lesson * */ export type Lesson = $Result.DefaultSelection /** * Model Quiz * */ export type Quiz = $Result.DefaultSelection /** * Model Question * */ export type Question = $Result.DefaultSelection /** * Model Enrollment * */ export type Enrollment = $Result.DefaultSelection /** * Model LessonProgress * */ export type LessonProgress = $Result.DefaultSelection /** * Model QuizAttempt * */ export type QuizAttempt = $Result.DefaultSelection /** * Model Certificate * */ export type Certificate = $Result.DefaultSelection /** * Enums */ export namespace $Enums { export const Role: { ADMIN: 'ADMIN', LEARNER: 'LEARNER' }; export type Role = (typeof Role)[keyof typeof Role] export const CourseCategory: { GOVERNANCE: 'GOVERNANCE', CYBER: 'CYBER', OWLCUB: 'OWLCUB', OTHER: 'OTHER' }; export type CourseCategory = (typeof CourseCategory)[keyof typeof CourseCategory] export const CourseLevel: { BEGINNER: 'BEGINNER', INTERMEDIATE: 'INTERMEDIATE', ADVANCED: 'ADVANCED' }; export type CourseLevel = (typeof CourseLevel)[keyof typeof CourseLevel] export const LessonType: { VIDEO: 'VIDEO', TEXT: 'TEXT' }; export type LessonType = (typeof LessonType)[keyof typeof LessonType] } export type Role = $Enums.Role export const Role: typeof $Enums.Role export type CourseCategory = $Enums.CourseCategory export const CourseCategory: typeof $Enums.CourseCategory export type CourseLevel = $Enums.CourseLevel export const CourseLevel: typeof $Enums.CourseLevel export type LessonType = $Enums.LessonType export const LessonType: typeof $Enums.LessonType /** * ## Prisma Client ʲˢ * * Type-safe database client for TypeScript & Node.js * @example * ``` * const prisma = new PrismaClient() * // Fetch zero or more Users * const users = await prisma.user.findMany() * ``` * * * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client). */ export class PrismaClient< ClientOptions extends Prisma.PrismaClientOptions = Prisma.PrismaClientOptions, const U = 'log' extends keyof ClientOptions ? ClientOptions['log'] extends Array ? Prisma.GetEvents : never : never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs > { [K: symbol]: { types: Prisma.TypeMap['other'] } /** * ## Prisma Client ʲˢ * * Type-safe database client for TypeScript & Node.js * @example * ``` * const prisma = new PrismaClient() * // Fetch zero or more Users * const users = await prisma.user.findMany() * ``` * * * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client). */ constructor(optionsArg ?: Prisma.Subset); $on(eventType: V, callback: (event: V extends 'query' ? Prisma.QueryEvent : Prisma.LogEvent) => void): PrismaClient; /** * Connect with the database */ $connect(): $Utils.JsPromise; /** * Disconnect from the database */ $disconnect(): $Utils.JsPromise; /** * Executes a prepared raw query and returns the number of affected rows. * @example * ``` * const result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};` * ``` * * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access). */ $executeRaw(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise; /** * Executes a raw query and returns the number of affected rows. * Susceptible to SQL injections, see documentation. * @example * ``` * const result = await prisma.$executeRawUnsafe('UPDATE User SET cool = $1 WHERE email = $2 ;', true, 'user@email.com') * ``` * * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access). */ $executeRawUnsafe(query: string, ...values: any[]): Prisma.PrismaPromise; /** * Performs a prepared raw query and returns the `SELECT` data. * @example * ``` * const result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};` * ``` * * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access). */ $queryRaw(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise; /** * Performs a raw query and returns the `SELECT` data. * Susceptible to SQL injections, see documentation. * @example * ``` * const result = await prisma.$queryRawUnsafe('SELECT * FROM User WHERE id = $1 OR email = $2;', 1, 'user@email.com') * ``` * * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access). */ $queryRawUnsafe(query: string, ...values: any[]): Prisma.PrismaPromise; /** * Allows the running of a sequence of read/write operations that are guaranteed to either succeed or fail as a whole. * @example * ``` * const [george, bob, alice] = await prisma.$transaction([ * prisma.user.create({ data: { name: 'George' } }), * prisma.user.create({ data: { name: 'Bob' } }), * prisma.user.create({ data: { name: 'Alice' } }), * ]) * ``` * * Read more in our [docs](https://www.prisma.io/docs/concepts/components/prisma-client/transactions). */ $transaction

[]>(arg: [...P], options?: { isolationLevel?: Prisma.TransactionIsolationLevel }): $Utils.JsPromise> $transaction(fn: (prisma: Omit) => $Utils.JsPromise, options?: { maxWait?: number, timeout?: number, isolationLevel?: Prisma.TransactionIsolationLevel }): $Utils.JsPromise $extends: $Extensions.ExtendsHook<"extends", Prisma.TypeMapCb, ExtArgs, $Utils.Call, { extArgs: ExtArgs }>> /** * `prisma.user`: Exposes CRUD operations for the **User** model. * Example usage: * ```ts * // Fetch zero or more Users * const users = await prisma.user.findMany() * ``` */ get user(): Prisma.UserDelegate; /** * `prisma.account`: Exposes CRUD operations for the **Account** model. * Example usage: * ```ts * // Fetch zero or more Accounts * const accounts = await prisma.account.findMany() * ``` */ get account(): Prisma.AccountDelegate; /** * `prisma.session`: Exposes CRUD operations for the **Session** model. * Example usage: * ```ts * // Fetch zero or more Sessions * const sessions = await prisma.session.findMany() * ``` */ get session(): Prisma.SessionDelegate; /** * `prisma.verificationToken`: Exposes CRUD operations for the **VerificationToken** model. * Example usage: * ```ts * // Fetch zero or more VerificationTokens * const verificationTokens = await prisma.verificationToken.findMany() * ``` */ get verificationToken(): Prisma.VerificationTokenDelegate; /** * `prisma.course`: Exposes CRUD operations for the **Course** model. * Example usage: * ```ts * // Fetch zero or more Courses * const courses = await prisma.course.findMany() * ``` */ get course(): Prisma.CourseDelegate; /** * `prisma.module`: Exposes CRUD operations for the **Module** model. * Example usage: * ```ts * // Fetch zero or more Modules * const modules = await prisma.module.findMany() * ``` */ get module(): Prisma.ModuleDelegate; /** * `prisma.lesson`: Exposes CRUD operations for the **Lesson** model. * Example usage: * ```ts * // Fetch zero or more Lessons * const lessons = await prisma.lesson.findMany() * ``` */ get lesson(): Prisma.LessonDelegate; /** * `prisma.quiz`: Exposes CRUD operations for the **Quiz** model. * Example usage: * ```ts * // Fetch zero or more Quizzes * const quizzes = await prisma.quiz.findMany() * ``` */ get quiz(): Prisma.QuizDelegate; /** * `prisma.question`: Exposes CRUD operations for the **Question** model. * Example usage: * ```ts * // Fetch zero or more Questions * const questions = await prisma.question.findMany() * ``` */ get question(): Prisma.QuestionDelegate; /** * `prisma.enrollment`: Exposes CRUD operations for the **Enrollment** model. * Example usage: * ```ts * // Fetch zero or more Enrollments * const enrollments = await prisma.enrollment.findMany() * ``` */ get enrollment(): Prisma.EnrollmentDelegate; /** * `prisma.lessonProgress`: Exposes CRUD operations for the **LessonProgress** model. * Example usage: * ```ts * // Fetch zero or more LessonProgresses * const lessonProgresses = await prisma.lessonProgress.findMany() * ``` */ get lessonProgress(): Prisma.LessonProgressDelegate; /** * `prisma.quizAttempt`: Exposes CRUD operations for the **QuizAttempt** model. * Example usage: * ```ts * // Fetch zero or more QuizAttempts * const quizAttempts = await prisma.quizAttempt.findMany() * ``` */ get quizAttempt(): Prisma.QuizAttemptDelegate; /** * `prisma.certificate`: Exposes CRUD operations for the **Certificate** model. * Example usage: * ```ts * // Fetch zero or more Certificates * const certificates = await prisma.certificate.findMany() * ``` */ get certificate(): Prisma.CertificateDelegate; } export namespace Prisma { export import DMMF = runtime.DMMF export type PrismaPromise = $Public.PrismaPromise /** * Validator */ export import validator = runtime.Public.validator /** * Prisma Errors */ export import PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError export import PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError export import PrismaClientRustPanicError = runtime.PrismaClientRustPanicError export import PrismaClientInitializationError = runtime.PrismaClientInitializationError export import PrismaClientValidationError = runtime.PrismaClientValidationError /** * Re-export of sql-template-tag */ export import sql = runtime.sqltag export import empty = runtime.empty export import join = runtime.join export import raw = runtime.raw export import Sql = runtime.Sql /** * Decimal.js */ export import Decimal = runtime.Decimal export type DecimalJsLike = runtime.DecimalJsLike /** * Metrics */ export type Metrics = runtime.Metrics export type Metric = runtime.Metric export type MetricHistogram = runtime.MetricHistogram export type MetricHistogramBucket = runtime.MetricHistogramBucket /** * Extensions */ export import Extension = $Extensions.UserArgs export import getExtensionContext = runtime.Extensions.getExtensionContext export import Args = $Public.Args export import Payload = $Public.Payload export import Result = $Public.Result export import Exact = $Public.Exact /** * Prisma Client JS version: 6.19.2 * Query Engine version: c2990dca591cba766e3b7ef5d9e8a84796e47ab7 */ export type PrismaVersion = { client: string } export const prismaVersion: PrismaVersion /** * Utility Types */ export import Bytes = runtime.Bytes export import JsonObject = runtime.JsonObject export import JsonArray = runtime.JsonArray export import JsonValue = runtime.JsonValue export import InputJsonObject = runtime.InputJsonObject export import InputJsonArray = runtime.InputJsonArray export import InputJsonValue = runtime.InputJsonValue /** * Types of the values used to represent different kinds of `null` values when working with JSON fields. * * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field */ namespace NullTypes { /** * Type of `Prisma.DbNull`. * * You cannot use other instances of this class. Please use the `Prisma.DbNull` value. * * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field */ class DbNull { private DbNull: never private constructor() } /** * Type of `Prisma.JsonNull`. * * You cannot use other instances of this class. Please use the `Prisma.JsonNull` value. * * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field */ class JsonNull { private JsonNull: never private constructor() } /** * Type of `Prisma.AnyNull`. * * You cannot use other instances of this class. Please use the `Prisma.AnyNull` value. * * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field */ class AnyNull { private AnyNull: never private constructor() } } /** * 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: NullTypes.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: NullTypes.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: NullTypes.AnyNull type SelectAndInclude = { select: any include: any } type SelectAndOmit = { select: any omit: any } /** * Get the type of the value, that the Promise holds. */ export type PromiseType> = T extends PromiseLike ? U : T; /** * Get the return type of a function which returns a Promise. */ export type PromiseReturnType $Utils.JsPromise> = PromiseType> /** * From T, pick a set of properties whose keys are in the union K */ type Prisma__Pick = { [P in K]: T[P]; }; export type Enumerable = T | Array; export type RequiredKeys = { [K in keyof T]-?: {} extends Prisma__Pick ? never : K }[keyof T] export type TruthyKeys = keyof { [K in keyof T as T[K] extends false | undefined | null ? never : K]: K } export type TrueKeys = TruthyKeys>> /** * Subset * @desc From `T` pick properties that exist in `U`. Simple version of Intersection */ export type Subset = { [key in keyof T]: key extends keyof U ? T[key] : never; }; /** * SelectSubset * @desc From `T` pick properties that exist in `U`. Simple version of Intersection. * Additionally, it validates, if both select and include are present. If the case, it errors. */ export type SelectSubset = { [key in keyof T]: key extends keyof U ? T[key] : never } & (T extends SelectAndInclude ? 'Please either choose `select` or `include`.' : T extends SelectAndOmit ? 'Please either choose `select` or `omit`.' : {}) /** * Subset + Intersection * @desc From `T` pick properties that exist in `U` and intersect `K` */ export type SubsetIntersection = { [key in keyof T]: key extends keyof U ? T[key] : never } & K type Without = { [P in Exclude]?: never }; /** * XOR is needed to have a real mutually exclusive union type * https://stackoverflow.com/questions/42123407/does-typescript-support-mutually-exclusive-types */ type XOR = T extends object ? U extends object ? (Without & U) | (Without & T) : U : T /** * Is T a Record? */ type IsObject = T extends Array ? False : T extends Date ? False : T extends Uint8Array ? False : T extends BigInt ? False : T extends object ? True : False /** * If it's T[], return T */ export type UnEnumerate = T extends Array ? U : T /** * From ts-toolbelt */ type __Either = Omit & { // Merge all but K [P in K]: Prisma__Pick // With K possibilities }[K] type EitherStrict = Strict<__Either> type EitherLoose = ComputeRaw<__Either> type _Either< O extends object, K extends Key, strict extends Boolean > = { 1: EitherStrict 0: EitherLoose }[strict] type Either< O extends object, K extends Key, strict extends Boolean = 1 > = O extends unknown ? _Either : never export type Union = any type PatchUndefined = { [K in keyof O]: O[K] extends undefined ? At : O[K] } & {} /** Helper Types for "Merge" **/ export type IntersectOf = ( U extends unknown ? (k: U) => void : never ) extends (k: infer I) => void ? I : never export type Overwrite = { [K in keyof O]: K extends keyof O1 ? O1[K] : O[K]; } & {}; type _Merge = IntersectOf; }>>; type Key = string | number | symbol; type AtBasic = K extends keyof O ? O[K] : never; type AtStrict = O[K & keyof O]; type AtLoose = O extends unknown ? AtStrict : never; export type At = { 1: AtStrict; 0: AtLoose; }[strict]; export type ComputeRaw = A extends Function ? A : { [K in keyof A]: A[K]; } & {}; export type OptionalFlat = { [K in keyof O]?: O[K]; } & {}; type _Record = { [P in K]: T; }; // cause typescript not to expand types and preserve names type NoExpand = T extends unknown ? T : never; // this type assumes the passed object is entirely optional type AtLeast = NoExpand< O extends unknown ? | (K extends keyof O ? { [P in K]: O[P] } & O : O) | {[P in keyof O as P extends K ? P : never]-?: O[P]} & O : never>; type _Strict = U extends unknown ? U & OptionalFlat<_Record, keyof U>, never>> : never; export type Strict = ComputeRaw<_Strict>; /** End Helper Types for "Merge" **/ export type Merge = ComputeRaw<_Merge>>; /** A [[Boolean]] */ export type Boolean = True | False // /** // 1 // */ export type True = 1 /** 0 */ export type False = 0 export type Not = { 0: 1 1: 0 }[B] export type Extends = [A1] extends [never] ? 0 // anything `never` is false : A1 extends A2 ? 1 : 0 export type Has = Not< Extends, U1> > export type Or = { 0: { 0: 0 1: 1 } 1: { 0: 1 1: 1 } }[B1][B2] export type Keys = U extends unknown ? keyof U : never type Cast = A extends B ? A : B; export const type: unique symbol; /** * Used by group by */ export type GetScalarType = O extends object ? { [P in keyof T]: P extends keyof O ? O[P] : never } : never type FieldPaths< T, U = Omit > = IsObject extends True ? U : T type GetHavingFields = { [K in keyof T]: Or< Or, Extends<'AND', K>>, Extends<'NOT', K> > extends True ? // infer is only needed to not hit TS limit // based on the brilliant idea of Pierre-Antoine Mills // https://github.com/microsoft/TypeScript/issues/30188#issuecomment-478938437 T[K] extends infer TK ? GetHavingFields extends object ? Merge> : never> : never : {} extends FieldPaths ? never : K }[keyof T] /** * Convert tuple to union */ type _TupleToUnion = T extends (infer E)[] ? E : never type TupleToUnion = _TupleToUnion type MaybeTupleToUnion = T extends any[] ? TupleToUnion : T /** * Like `Pick`, but additionally can also accept an array of keys */ type PickEnumerable | keyof T> = Prisma__Pick> /** * Exclude all keys with underscores */ type ExcludeUnderscoreKeys = T extends `_${string}` ? never : T export type FieldRef = runtime.FieldRef type FieldRefInputType = Model extends never ? never : FieldRef export const ModelName: { User: 'User', Account: 'Account', Session: 'Session', VerificationToken: 'VerificationToken', Course: 'Course', Module: 'Module', Lesson: 'Lesson', Quiz: 'Quiz', Question: 'Question', Enrollment: 'Enrollment', LessonProgress: 'LessonProgress', QuizAttempt: 'QuizAttempt', Certificate: 'Certificate' }; export type ModelName = (typeof ModelName)[keyof typeof ModelName] export type Datasources = { db?: Datasource } interface TypeMapCb extends $Utils.Fn<{extArgs: $Extensions.InternalArgs }, $Utils.Record> { returns: Prisma.TypeMap } export type TypeMap = { globalOmitOptions: { omit: GlobalOmitOptions } meta: { modelProps: "user" | "account" | "session" | "verificationToken" | "course" | "module" | "lesson" | "quiz" | "question" | "enrollment" | "lessonProgress" | "quizAttempt" | "certificate" txIsolationLevel: Prisma.TransactionIsolationLevel } model: { User: { payload: Prisma.$UserPayload fields: Prisma.UserFieldRefs operations: { findUnique: { args: Prisma.UserFindUniqueArgs result: $Utils.PayloadToResult | null } findUniqueOrThrow: { args: Prisma.UserFindUniqueOrThrowArgs result: $Utils.PayloadToResult } findFirst: { args: Prisma.UserFindFirstArgs result: $Utils.PayloadToResult | null } findFirstOrThrow: { args: Prisma.UserFindFirstOrThrowArgs result: $Utils.PayloadToResult } findMany: { args: Prisma.UserFindManyArgs result: $Utils.PayloadToResult[] } create: { args: Prisma.UserCreateArgs result: $Utils.PayloadToResult } createMany: { args: Prisma.UserCreateManyArgs result: BatchPayload } createManyAndReturn: { args: Prisma.UserCreateManyAndReturnArgs result: $Utils.PayloadToResult[] } delete: { args: Prisma.UserDeleteArgs result: $Utils.PayloadToResult } update: { args: Prisma.UserUpdateArgs result: $Utils.PayloadToResult } deleteMany: { args: Prisma.UserDeleteManyArgs result: BatchPayload } updateMany: { args: Prisma.UserUpdateManyArgs result: BatchPayload } updateManyAndReturn: { args: Prisma.UserUpdateManyAndReturnArgs result: $Utils.PayloadToResult[] } upsert: { args: Prisma.UserUpsertArgs result: $Utils.PayloadToResult } aggregate: { args: Prisma.UserAggregateArgs result: $Utils.Optional } groupBy: { args: Prisma.UserGroupByArgs result: $Utils.Optional[] } count: { args: Prisma.UserCountArgs result: $Utils.Optional | number } } } Account: { payload: Prisma.$AccountPayload fields: Prisma.AccountFieldRefs operations: { findUnique: { args: Prisma.AccountFindUniqueArgs result: $Utils.PayloadToResult | null } findUniqueOrThrow: { args: Prisma.AccountFindUniqueOrThrowArgs result: $Utils.PayloadToResult } findFirst: { args: Prisma.AccountFindFirstArgs result: $Utils.PayloadToResult | null } findFirstOrThrow: { args: Prisma.AccountFindFirstOrThrowArgs result: $Utils.PayloadToResult } findMany: { args: Prisma.AccountFindManyArgs result: $Utils.PayloadToResult[] } create: { args: Prisma.AccountCreateArgs result: $Utils.PayloadToResult } createMany: { args: Prisma.AccountCreateManyArgs result: BatchPayload } createManyAndReturn: { args: Prisma.AccountCreateManyAndReturnArgs result: $Utils.PayloadToResult[] } delete: { args: Prisma.AccountDeleteArgs result: $Utils.PayloadToResult } update: { args: Prisma.AccountUpdateArgs result: $Utils.PayloadToResult } deleteMany: { args: Prisma.AccountDeleteManyArgs result: BatchPayload } updateMany: { args: Prisma.AccountUpdateManyArgs result: BatchPayload } updateManyAndReturn: { args: Prisma.AccountUpdateManyAndReturnArgs result: $Utils.PayloadToResult[] } upsert: { args: Prisma.AccountUpsertArgs result: $Utils.PayloadToResult } aggregate: { args: Prisma.AccountAggregateArgs result: $Utils.Optional } groupBy: { args: Prisma.AccountGroupByArgs result: $Utils.Optional[] } count: { args: Prisma.AccountCountArgs result: $Utils.Optional | number } } } Session: { payload: Prisma.$SessionPayload fields: Prisma.SessionFieldRefs operations: { findUnique: { args: Prisma.SessionFindUniqueArgs result: $Utils.PayloadToResult | null } findUniqueOrThrow: { args: Prisma.SessionFindUniqueOrThrowArgs result: $Utils.PayloadToResult } findFirst: { args: Prisma.SessionFindFirstArgs result: $Utils.PayloadToResult | null } findFirstOrThrow: { args: Prisma.SessionFindFirstOrThrowArgs result: $Utils.PayloadToResult } findMany: { args: Prisma.SessionFindManyArgs result: $Utils.PayloadToResult[] } create: { args: Prisma.SessionCreateArgs result: $Utils.PayloadToResult } createMany: { args: Prisma.SessionCreateManyArgs result: BatchPayload } createManyAndReturn: { args: Prisma.SessionCreateManyAndReturnArgs result: $Utils.PayloadToResult[] } delete: { args: Prisma.SessionDeleteArgs result: $Utils.PayloadToResult } update: { args: Prisma.SessionUpdateArgs result: $Utils.PayloadToResult } deleteMany: { args: Prisma.SessionDeleteManyArgs result: BatchPayload } updateMany: { args: Prisma.SessionUpdateManyArgs result: BatchPayload } updateManyAndReturn: { args: Prisma.SessionUpdateManyAndReturnArgs result: $Utils.PayloadToResult[] } upsert: { args: Prisma.SessionUpsertArgs result: $Utils.PayloadToResult } aggregate: { args: Prisma.SessionAggregateArgs result: $Utils.Optional } groupBy: { args: Prisma.SessionGroupByArgs result: $Utils.Optional[] } count: { args: Prisma.SessionCountArgs result: $Utils.Optional | number } } } VerificationToken: { payload: Prisma.$VerificationTokenPayload fields: Prisma.VerificationTokenFieldRefs operations: { findUnique: { args: Prisma.VerificationTokenFindUniqueArgs result: $Utils.PayloadToResult | null } findUniqueOrThrow: { args: Prisma.VerificationTokenFindUniqueOrThrowArgs result: $Utils.PayloadToResult } findFirst: { args: Prisma.VerificationTokenFindFirstArgs result: $Utils.PayloadToResult | null } findFirstOrThrow: { args: Prisma.VerificationTokenFindFirstOrThrowArgs result: $Utils.PayloadToResult } findMany: { args: Prisma.VerificationTokenFindManyArgs result: $Utils.PayloadToResult[] } create: { args: Prisma.VerificationTokenCreateArgs result: $Utils.PayloadToResult } createMany: { args: Prisma.VerificationTokenCreateManyArgs result: BatchPayload } createManyAndReturn: { args: Prisma.VerificationTokenCreateManyAndReturnArgs result: $Utils.PayloadToResult[] } delete: { args: Prisma.VerificationTokenDeleteArgs result: $Utils.PayloadToResult } update: { args: Prisma.VerificationTokenUpdateArgs result: $Utils.PayloadToResult } deleteMany: { args: Prisma.VerificationTokenDeleteManyArgs result: BatchPayload } updateMany: { args: Prisma.VerificationTokenUpdateManyArgs result: BatchPayload } updateManyAndReturn: { args: Prisma.VerificationTokenUpdateManyAndReturnArgs result: $Utils.PayloadToResult[] } upsert: { args: Prisma.VerificationTokenUpsertArgs result: $Utils.PayloadToResult } aggregate: { args: Prisma.VerificationTokenAggregateArgs result: $Utils.Optional } groupBy: { args: Prisma.VerificationTokenGroupByArgs result: $Utils.Optional[] } count: { args: Prisma.VerificationTokenCountArgs result: $Utils.Optional | number } } } Course: { payload: Prisma.$CoursePayload fields: Prisma.CourseFieldRefs operations: { findUnique: { args: Prisma.CourseFindUniqueArgs result: $Utils.PayloadToResult | null } findUniqueOrThrow: { args: Prisma.CourseFindUniqueOrThrowArgs result: $Utils.PayloadToResult } findFirst: { args: Prisma.CourseFindFirstArgs result: $Utils.PayloadToResult | null } findFirstOrThrow: { args: Prisma.CourseFindFirstOrThrowArgs result: $Utils.PayloadToResult } findMany: { args: Prisma.CourseFindManyArgs result: $Utils.PayloadToResult[] } create: { args: Prisma.CourseCreateArgs result: $Utils.PayloadToResult } createMany: { args: Prisma.CourseCreateManyArgs result: BatchPayload } createManyAndReturn: { args: Prisma.CourseCreateManyAndReturnArgs result: $Utils.PayloadToResult[] } delete: { args: Prisma.CourseDeleteArgs result: $Utils.PayloadToResult } update: { args: Prisma.CourseUpdateArgs result: $Utils.PayloadToResult } deleteMany: { args: Prisma.CourseDeleteManyArgs result: BatchPayload } updateMany: { args: Prisma.CourseUpdateManyArgs result: BatchPayload } updateManyAndReturn: { args: Prisma.CourseUpdateManyAndReturnArgs result: $Utils.PayloadToResult[] } upsert: { args: Prisma.CourseUpsertArgs result: $Utils.PayloadToResult } aggregate: { args: Prisma.CourseAggregateArgs result: $Utils.Optional } groupBy: { args: Prisma.CourseGroupByArgs result: $Utils.Optional[] } count: { args: Prisma.CourseCountArgs result: $Utils.Optional | number } } } Module: { payload: Prisma.$ModulePayload fields: Prisma.ModuleFieldRefs operations: { findUnique: { args: Prisma.ModuleFindUniqueArgs result: $Utils.PayloadToResult | null } findUniqueOrThrow: { args: Prisma.ModuleFindUniqueOrThrowArgs result: $Utils.PayloadToResult } findFirst: { args: Prisma.ModuleFindFirstArgs result: $Utils.PayloadToResult | null } findFirstOrThrow: { args: Prisma.ModuleFindFirstOrThrowArgs result: $Utils.PayloadToResult } findMany: { args: Prisma.ModuleFindManyArgs result: $Utils.PayloadToResult[] } create: { args: Prisma.ModuleCreateArgs result: $Utils.PayloadToResult } createMany: { args: Prisma.ModuleCreateManyArgs result: BatchPayload } createManyAndReturn: { args: Prisma.ModuleCreateManyAndReturnArgs result: $Utils.PayloadToResult[] } delete: { args: Prisma.ModuleDeleteArgs result: $Utils.PayloadToResult } update: { args: Prisma.ModuleUpdateArgs result: $Utils.PayloadToResult } deleteMany: { args: Prisma.ModuleDeleteManyArgs result: BatchPayload } updateMany: { args: Prisma.ModuleUpdateManyArgs result: BatchPayload } updateManyAndReturn: { args: Prisma.ModuleUpdateManyAndReturnArgs result: $Utils.PayloadToResult[] } upsert: { args: Prisma.ModuleUpsertArgs result: $Utils.PayloadToResult } aggregate: { args: Prisma.ModuleAggregateArgs result: $Utils.Optional } groupBy: { args: Prisma.ModuleGroupByArgs result: $Utils.Optional[] } count: { args: Prisma.ModuleCountArgs result: $Utils.Optional | number } } } Lesson: { payload: Prisma.$LessonPayload fields: Prisma.LessonFieldRefs operations: { findUnique: { args: Prisma.LessonFindUniqueArgs result: $Utils.PayloadToResult | null } findUniqueOrThrow: { args: Prisma.LessonFindUniqueOrThrowArgs result: $Utils.PayloadToResult } findFirst: { args: Prisma.LessonFindFirstArgs result: $Utils.PayloadToResult | null } findFirstOrThrow: { args: Prisma.LessonFindFirstOrThrowArgs result: $Utils.PayloadToResult } findMany: { args: Prisma.LessonFindManyArgs result: $Utils.PayloadToResult[] } create: { args: Prisma.LessonCreateArgs result: $Utils.PayloadToResult } createMany: { args: Prisma.LessonCreateManyArgs result: BatchPayload } createManyAndReturn: { args: Prisma.LessonCreateManyAndReturnArgs result: $Utils.PayloadToResult[] } delete: { args: Prisma.LessonDeleteArgs result: $Utils.PayloadToResult } update: { args: Prisma.LessonUpdateArgs result: $Utils.PayloadToResult } deleteMany: { args: Prisma.LessonDeleteManyArgs result: BatchPayload } updateMany: { args: Prisma.LessonUpdateManyArgs result: BatchPayload } updateManyAndReturn: { args: Prisma.LessonUpdateManyAndReturnArgs result: $Utils.PayloadToResult[] } upsert: { args: Prisma.LessonUpsertArgs result: $Utils.PayloadToResult } aggregate: { args: Prisma.LessonAggregateArgs result: $Utils.Optional } groupBy: { args: Prisma.LessonGroupByArgs result: $Utils.Optional[] } count: { args: Prisma.LessonCountArgs result: $Utils.Optional | number } } } Quiz: { payload: Prisma.$QuizPayload fields: Prisma.QuizFieldRefs operations: { findUnique: { args: Prisma.QuizFindUniqueArgs result: $Utils.PayloadToResult | null } findUniqueOrThrow: { args: Prisma.QuizFindUniqueOrThrowArgs result: $Utils.PayloadToResult } findFirst: { args: Prisma.QuizFindFirstArgs result: $Utils.PayloadToResult | null } findFirstOrThrow: { args: Prisma.QuizFindFirstOrThrowArgs result: $Utils.PayloadToResult } findMany: { args: Prisma.QuizFindManyArgs result: $Utils.PayloadToResult[] } create: { args: Prisma.QuizCreateArgs result: $Utils.PayloadToResult } createMany: { args: Prisma.QuizCreateManyArgs result: BatchPayload } createManyAndReturn: { args: Prisma.QuizCreateManyAndReturnArgs result: $Utils.PayloadToResult[] } delete: { args: Prisma.QuizDeleteArgs result: $Utils.PayloadToResult } update: { args: Prisma.QuizUpdateArgs result: $Utils.PayloadToResult } deleteMany: { args: Prisma.QuizDeleteManyArgs result: BatchPayload } updateMany: { args: Prisma.QuizUpdateManyArgs result: BatchPayload } updateManyAndReturn: { args: Prisma.QuizUpdateManyAndReturnArgs result: $Utils.PayloadToResult[] } upsert: { args: Prisma.QuizUpsertArgs result: $Utils.PayloadToResult } aggregate: { args: Prisma.QuizAggregateArgs result: $Utils.Optional } groupBy: { args: Prisma.QuizGroupByArgs result: $Utils.Optional[] } count: { args: Prisma.QuizCountArgs result: $Utils.Optional | number } } } Question: { payload: Prisma.$QuestionPayload fields: Prisma.QuestionFieldRefs operations: { findUnique: { args: Prisma.QuestionFindUniqueArgs result: $Utils.PayloadToResult | null } findUniqueOrThrow: { args: Prisma.QuestionFindUniqueOrThrowArgs result: $Utils.PayloadToResult } findFirst: { args: Prisma.QuestionFindFirstArgs result: $Utils.PayloadToResult | null } findFirstOrThrow: { args: Prisma.QuestionFindFirstOrThrowArgs result: $Utils.PayloadToResult } findMany: { args: Prisma.QuestionFindManyArgs result: $Utils.PayloadToResult[] } create: { args: Prisma.QuestionCreateArgs result: $Utils.PayloadToResult } createMany: { args: Prisma.QuestionCreateManyArgs result: BatchPayload } createManyAndReturn: { args: Prisma.QuestionCreateManyAndReturnArgs result: $Utils.PayloadToResult[] } delete: { args: Prisma.QuestionDeleteArgs result: $Utils.PayloadToResult } update: { args: Prisma.QuestionUpdateArgs result: $Utils.PayloadToResult } deleteMany: { args: Prisma.QuestionDeleteManyArgs result: BatchPayload } updateMany: { args: Prisma.QuestionUpdateManyArgs result: BatchPayload } updateManyAndReturn: { args: Prisma.QuestionUpdateManyAndReturnArgs result: $Utils.PayloadToResult[] } upsert: { args: Prisma.QuestionUpsertArgs result: $Utils.PayloadToResult } aggregate: { args: Prisma.QuestionAggregateArgs result: $Utils.Optional } groupBy: { args: Prisma.QuestionGroupByArgs result: $Utils.Optional[] } count: { args: Prisma.QuestionCountArgs result: $Utils.Optional | number } } } Enrollment: { payload: Prisma.$EnrollmentPayload fields: Prisma.EnrollmentFieldRefs operations: { findUnique: { args: Prisma.EnrollmentFindUniqueArgs result: $Utils.PayloadToResult | null } findUniqueOrThrow: { args: Prisma.EnrollmentFindUniqueOrThrowArgs result: $Utils.PayloadToResult } findFirst: { args: Prisma.EnrollmentFindFirstArgs result: $Utils.PayloadToResult | null } findFirstOrThrow: { args: Prisma.EnrollmentFindFirstOrThrowArgs result: $Utils.PayloadToResult } findMany: { args: Prisma.EnrollmentFindManyArgs result: $Utils.PayloadToResult[] } create: { args: Prisma.EnrollmentCreateArgs result: $Utils.PayloadToResult } createMany: { args: Prisma.EnrollmentCreateManyArgs result: BatchPayload } createManyAndReturn: { args: Prisma.EnrollmentCreateManyAndReturnArgs result: $Utils.PayloadToResult[] } delete: { args: Prisma.EnrollmentDeleteArgs result: $Utils.PayloadToResult } update: { args: Prisma.EnrollmentUpdateArgs result: $Utils.PayloadToResult } deleteMany: { args: Prisma.EnrollmentDeleteManyArgs result: BatchPayload } updateMany: { args: Prisma.EnrollmentUpdateManyArgs result: BatchPayload } updateManyAndReturn: { args: Prisma.EnrollmentUpdateManyAndReturnArgs result: $Utils.PayloadToResult[] } upsert: { args: Prisma.EnrollmentUpsertArgs result: $Utils.PayloadToResult } aggregate: { args: Prisma.EnrollmentAggregateArgs result: $Utils.Optional } groupBy: { args: Prisma.EnrollmentGroupByArgs result: $Utils.Optional[] } count: { args: Prisma.EnrollmentCountArgs result: $Utils.Optional | number } } } LessonProgress: { payload: Prisma.$LessonProgressPayload fields: Prisma.LessonProgressFieldRefs operations: { findUnique: { args: Prisma.LessonProgressFindUniqueArgs result: $Utils.PayloadToResult | null } findUniqueOrThrow: { args: Prisma.LessonProgressFindUniqueOrThrowArgs result: $Utils.PayloadToResult } findFirst: { args: Prisma.LessonProgressFindFirstArgs result: $Utils.PayloadToResult | null } findFirstOrThrow: { args: Prisma.LessonProgressFindFirstOrThrowArgs result: $Utils.PayloadToResult } findMany: { args: Prisma.LessonProgressFindManyArgs result: $Utils.PayloadToResult[] } create: { args: Prisma.LessonProgressCreateArgs result: $Utils.PayloadToResult } createMany: { args: Prisma.LessonProgressCreateManyArgs result: BatchPayload } createManyAndReturn: { args: Prisma.LessonProgressCreateManyAndReturnArgs result: $Utils.PayloadToResult[] } delete: { args: Prisma.LessonProgressDeleteArgs result: $Utils.PayloadToResult } update: { args: Prisma.LessonProgressUpdateArgs result: $Utils.PayloadToResult } deleteMany: { args: Prisma.LessonProgressDeleteManyArgs result: BatchPayload } updateMany: { args: Prisma.LessonProgressUpdateManyArgs result: BatchPayload } updateManyAndReturn: { args: Prisma.LessonProgressUpdateManyAndReturnArgs result: $Utils.PayloadToResult[] } upsert: { args: Prisma.LessonProgressUpsertArgs result: $Utils.PayloadToResult } aggregate: { args: Prisma.LessonProgressAggregateArgs result: $Utils.Optional } groupBy: { args: Prisma.LessonProgressGroupByArgs result: $Utils.Optional[] } count: { args: Prisma.LessonProgressCountArgs result: $Utils.Optional | number } } } QuizAttempt: { payload: Prisma.$QuizAttemptPayload fields: Prisma.QuizAttemptFieldRefs operations: { findUnique: { args: Prisma.QuizAttemptFindUniqueArgs result: $Utils.PayloadToResult | null } findUniqueOrThrow: { args: Prisma.QuizAttemptFindUniqueOrThrowArgs result: $Utils.PayloadToResult } findFirst: { args: Prisma.QuizAttemptFindFirstArgs result: $Utils.PayloadToResult | null } findFirstOrThrow: { args: Prisma.QuizAttemptFindFirstOrThrowArgs result: $Utils.PayloadToResult } findMany: { args: Prisma.QuizAttemptFindManyArgs result: $Utils.PayloadToResult[] } create: { args: Prisma.QuizAttemptCreateArgs result: $Utils.PayloadToResult } createMany: { args: Prisma.QuizAttemptCreateManyArgs result: BatchPayload } createManyAndReturn: { args: Prisma.QuizAttemptCreateManyAndReturnArgs result: $Utils.PayloadToResult[] } delete: { args: Prisma.QuizAttemptDeleteArgs result: $Utils.PayloadToResult } update: { args: Prisma.QuizAttemptUpdateArgs result: $Utils.PayloadToResult } deleteMany: { args: Prisma.QuizAttemptDeleteManyArgs result: BatchPayload } updateMany: { args: Prisma.QuizAttemptUpdateManyArgs result: BatchPayload } updateManyAndReturn: { args: Prisma.QuizAttemptUpdateManyAndReturnArgs result: $Utils.PayloadToResult[] } upsert: { args: Prisma.QuizAttemptUpsertArgs result: $Utils.PayloadToResult } aggregate: { args: Prisma.QuizAttemptAggregateArgs result: $Utils.Optional } groupBy: { args: Prisma.QuizAttemptGroupByArgs result: $Utils.Optional[] } count: { args: Prisma.QuizAttemptCountArgs result: $Utils.Optional | number } } } Certificate: { payload: Prisma.$CertificatePayload fields: Prisma.CertificateFieldRefs operations: { findUnique: { args: Prisma.CertificateFindUniqueArgs result: $Utils.PayloadToResult | null } findUniqueOrThrow: { args: Prisma.CertificateFindUniqueOrThrowArgs result: $Utils.PayloadToResult } findFirst: { args: Prisma.CertificateFindFirstArgs result: $Utils.PayloadToResult | null } findFirstOrThrow: { args: Prisma.CertificateFindFirstOrThrowArgs result: $Utils.PayloadToResult } findMany: { args: Prisma.CertificateFindManyArgs result: $Utils.PayloadToResult[] } create: { args: Prisma.CertificateCreateArgs result: $Utils.PayloadToResult } createMany: { args: Prisma.CertificateCreateManyArgs result: BatchPayload } createManyAndReturn: { args: Prisma.CertificateCreateManyAndReturnArgs result: $Utils.PayloadToResult[] } delete: { args: Prisma.CertificateDeleteArgs result: $Utils.PayloadToResult } update: { args: Prisma.CertificateUpdateArgs result: $Utils.PayloadToResult } deleteMany: { args: Prisma.CertificateDeleteManyArgs result: BatchPayload } updateMany: { args: Prisma.CertificateUpdateManyArgs result: BatchPayload } updateManyAndReturn: { args: Prisma.CertificateUpdateManyAndReturnArgs result: $Utils.PayloadToResult[] } upsert: { args: Prisma.CertificateUpsertArgs result: $Utils.PayloadToResult } aggregate: { args: Prisma.CertificateAggregateArgs result: $Utils.Optional } groupBy: { args: Prisma.CertificateGroupByArgs result: $Utils.Optional[] } count: { args: Prisma.CertificateCountArgs result: $Utils.Optional | number } } } } } & { other: { payload: any operations: { $executeRaw: { args: [query: TemplateStringsArray | Prisma.Sql, ...values: any[]], result: any } $executeRawUnsafe: { args: [query: string, ...values: any[]], result: any } $queryRaw: { args: [query: TemplateStringsArray | Prisma.Sql, ...values: any[]], result: any } $queryRawUnsafe: { args: [query: string, ...values: any[]], result: any } } } } export const defineExtension: $Extensions.ExtendsHook<"define", Prisma.TypeMapCb, $Extensions.DefaultArgs> export type DefaultPrismaClient = PrismaClient export type ErrorFormat = 'pretty' | 'colorless' | 'minimal' export interface PrismaClientOptions { /** * Overwrites the datasource url from your schema.prisma file */ datasources?: Datasources /** * Overwrites the datasource url from your schema.prisma file */ datasourceUrl?: string /** * @default "colorless" */ errorFormat?: ErrorFormat /** * @example * ``` * // Shorthand for `emit: 'stdout'` * log: ['query', 'info', 'warn', 'error'] * * // Emit as events only * log: [ * { emit: 'event', level: 'query' }, * { emit: 'event', level: 'info' }, * { emit: 'event', level: 'warn' } * { emit: 'event', level: 'error' } * ] * * / Emit as events and log to stdout * og: [ * { emit: 'stdout', level: 'query' }, * { emit: 'stdout', level: 'info' }, * { emit: 'stdout', level: 'warn' } * { emit: 'stdout', level: 'error' } * * ``` * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/logging#the-log-option). */ log?: (LogLevel | LogDefinition)[] /** * The default values for transactionOptions * maxWait ?= 2000 * timeout ?= 5000 */ transactionOptions?: { maxWait?: number timeout?: number isolationLevel?: Prisma.TransactionIsolationLevel } /** * Instance of a Driver Adapter, e.g., like one provided by `@prisma/adapter-planetscale` */ adapter?: runtime.SqlDriverAdapterFactory | null /** * Global configuration for omitting model fields by default. * * @example * ``` * const prisma = new PrismaClient({ * omit: { * user: { * password: true * } * } * }) * ``` */ omit?: Prisma.GlobalOmitConfig } export type GlobalOmitConfig = { user?: UserOmit account?: AccountOmit session?: SessionOmit verificationToken?: VerificationTokenOmit course?: CourseOmit module?: ModuleOmit lesson?: LessonOmit quiz?: QuizOmit question?: QuestionOmit enrollment?: EnrollmentOmit lessonProgress?: LessonProgressOmit quizAttempt?: QuizAttemptOmit certificate?: CertificateOmit } /* Types for Logging */ export type LogLevel = 'info' | 'query' | 'warn' | 'error' export type LogDefinition = { level: LogLevel emit: 'stdout' | 'event' } export type CheckIsLogLevel = T extends LogLevel ? T : never; export type GetLogType = CheckIsLogLevel< T extends LogDefinition ? T['level'] : T >; export type GetEvents = T extends Array ? GetLogType : never; export type QueryEvent = { timestamp: Date query: string params: string duration: number target: string } export type LogEvent = { timestamp: Date message: string target: string } /* End Types for Logging */ export type PrismaAction = | 'findUnique' | 'findUniqueOrThrow' | 'findMany' | 'findFirst' | 'findFirstOrThrow' | 'create' | 'createMany' | 'createManyAndReturn' | 'update' | 'updateMany' | 'updateManyAndReturn' | 'upsert' | 'delete' | 'deleteMany' | 'executeRaw' | 'queryRaw' | 'aggregate' | 'count' | 'runCommandRaw' | 'findRaw' | 'groupBy' // tested in getLogLevel.test.ts export function getLogLevel(log: Array): LogLevel | undefined; /** * `PrismaClient` proxy available in interactive transactions. */ export type TransactionClient = Omit export type Datasource = { url?: string } /** * Count Types */ /** * Count Type UserCountOutputType */ export type UserCountOutputType = { accounts: number sessions: number enrollments: number lessonProgress: number quizAttempts: number certificates: number } export type UserCountOutputTypeSelect = { accounts?: boolean | UserCountOutputTypeCountAccountsArgs sessions?: boolean | UserCountOutputTypeCountSessionsArgs enrollments?: boolean | UserCountOutputTypeCountEnrollmentsArgs lessonProgress?: boolean | UserCountOutputTypeCountLessonProgressArgs quizAttempts?: boolean | UserCountOutputTypeCountQuizAttemptsArgs certificates?: boolean | UserCountOutputTypeCountCertificatesArgs } // Custom InputTypes /** * UserCountOutputType without action */ export type UserCountOutputTypeDefaultArgs = { /** * Select specific fields to fetch from the UserCountOutputType */ select?: UserCountOutputTypeSelect | null } /** * UserCountOutputType without action */ export type UserCountOutputTypeCountAccountsArgs = { where?: AccountWhereInput } /** * UserCountOutputType without action */ export type UserCountOutputTypeCountSessionsArgs = { where?: SessionWhereInput } /** * UserCountOutputType without action */ export type UserCountOutputTypeCountEnrollmentsArgs = { where?: EnrollmentWhereInput } /** * UserCountOutputType without action */ export type UserCountOutputTypeCountLessonProgressArgs = { where?: LessonProgressWhereInput } /** * UserCountOutputType without action */ export type UserCountOutputTypeCountQuizAttemptsArgs = { where?: QuizAttemptWhereInput } /** * UserCountOutputType without action */ export type UserCountOutputTypeCountCertificatesArgs = { where?: CertificateWhereInput } /** * Count Type CourseCountOutputType */ export type CourseCountOutputType = { modules: number enrollments: number certificates: number } export type CourseCountOutputTypeSelect = { modules?: boolean | CourseCountOutputTypeCountModulesArgs enrollments?: boolean | CourseCountOutputTypeCountEnrollmentsArgs certificates?: boolean | CourseCountOutputTypeCountCertificatesArgs } // Custom InputTypes /** * CourseCountOutputType without action */ export type CourseCountOutputTypeDefaultArgs = { /** * Select specific fields to fetch from the CourseCountOutputType */ select?: CourseCountOutputTypeSelect | null } /** * CourseCountOutputType without action */ export type CourseCountOutputTypeCountModulesArgs = { where?: ModuleWhereInput } /** * CourseCountOutputType without action */ export type CourseCountOutputTypeCountEnrollmentsArgs = { where?: EnrollmentWhereInput } /** * CourseCountOutputType without action */ export type CourseCountOutputTypeCountCertificatesArgs = { where?: CertificateWhereInput } /** * Count Type ModuleCountOutputType */ export type ModuleCountOutputType = { lessons: number } export type ModuleCountOutputTypeSelect = { lessons?: boolean | ModuleCountOutputTypeCountLessonsArgs } // Custom InputTypes /** * ModuleCountOutputType without action */ export type ModuleCountOutputTypeDefaultArgs = { /** * Select specific fields to fetch from the ModuleCountOutputType */ select?: ModuleCountOutputTypeSelect | null } /** * ModuleCountOutputType without action */ export type ModuleCountOutputTypeCountLessonsArgs = { where?: LessonWhereInput } /** * Count Type LessonCountOutputType */ export type LessonCountOutputType = { lessonProgress: number } export type LessonCountOutputTypeSelect = { lessonProgress?: boolean | LessonCountOutputTypeCountLessonProgressArgs } // Custom InputTypes /** * LessonCountOutputType without action */ export type LessonCountOutputTypeDefaultArgs = { /** * Select specific fields to fetch from the LessonCountOutputType */ select?: LessonCountOutputTypeSelect | null } /** * LessonCountOutputType without action */ export type LessonCountOutputTypeCountLessonProgressArgs = { where?: LessonProgressWhereInput } /** * Count Type QuizCountOutputType */ export type QuizCountOutputType = { questions: number attempts: number } export type QuizCountOutputTypeSelect = { questions?: boolean | QuizCountOutputTypeCountQuestionsArgs attempts?: boolean | QuizCountOutputTypeCountAttemptsArgs } // Custom InputTypes /** * QuizCountOutputType without action */ export type QuizCountOutputTypeDefaultArgs = { /** * Select specific fields to fetch from the QuizCountOutputType */ select?: QuizCountOutputTypeSelect | null } /** * QuizCountOutputType without action */ export type QuizCountOutputTypeCountQuestionsArgs = { where?: QuestionWhereInput } /** * QuizCountOutputType without action */ export type QuizCountOutputTypeCountAttemptsArgs = { where?: QuizAttemptWhereInput } /** * Models */ /** * Model User */ export type AggregateUser = { _count: UserCountAggregateOutputType | null _min: UserMinAggregateOutputType | null _max: UserMaxAggregateOutputType | null } export type UserMinAggregateOutputType = { id: string | null email: string | null name: string | null image: string | null emailVerified: Date | null locale: string | null role: $Enums.Role | null createdAt: Date | null } export type UserMaxAggregateOutputType = { id: string | null email: string | null name: string | null image: string | null emailVerified: Date | null locale: string | null role: $Enums.Role | null createdAt: Date | null } export type UserCountAggregateOutputType = { id: number email: number name: number image: number emailVerified: number locale: number role: number createdAt: number _all: number } export type UserMinAggregateInputType = { id?: true email?: true name?: true image?: true emailVerified?: true locale?: true role?: true createdAt?: true } export type UserMaxAggregateInputType = { id?: true email?: true name?: true image?: true emailVerified?: true locale?: true role?: true createdAt?: true } export type UserCountAggregateInputType = { id?: true email?: true name?: true image?: true emailVerified?: true locale?: true role?: true createdAt?: true _all?: true } export type UserAggregateArgs = { /** * Filter which User to aggregate. */ where?: UserWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Users to fetch. */ orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the start position */ cursor?: UserWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Users from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Users. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Count returned Users **/ _count?: true | UserCountAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the minimum value **/ _min?: UserMinAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the maximum value **/ _max?: UserMaxAggregateInputType } export type GetUserAggregateType = { [P in keyof T & keyof AggregateUser]: P extends '_count' | 'count' ? T[P] extends true ? number : GetScalarType : GetScalarType } export type UserGroupByArgs = { where?: UserWhereInput orderBy?: UserOrderByWithAggregationInput | UserOrderByWithAggregationInput[] by: UserScalarFieldEnum[] | UserScalarFieldEnum having?: UserScalarWhereWithAggregatesInput take?: number skip?: number _count?: UserCountAggregateInputType | true _min?: UserMinAggregateInputType _max?: UserMaxAggregateInputType } export type UserGroupByOutputType = { id: string email: string name: string | null image: string | null emailVerified: Date | null locale: string role: $Enums.Role createdAt: Date _count: UserCountAggregateOutputType | null _min: UserMinAggregateOutputType | null _max: UserMaxAggregateOutputType | null } type GetUserGroupByPayload = Prisma.PrismaPromise< Array< PickEnumerable & { [P in ((keyof T) & (keyof UserGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : GetScalarType : GetScalarType } > > export type UserSelect = $Extensions.GetSelect<{ id?: boolean email?: boolean name?: boolean image?: boolean emailVerified?: boolean locale?: boolean role?: boolean createdAt?: boolean accounts?: boolean | User$accountsArgs sessions?: boolean | User$sessionsArgs enrollments?: boolean | User$enrollmentsArgs lessonProgress?: boolean | User$lessonProgressArgs quizAttempts?: boolean | User$quizAttemptsArgs certificates?: boolean | User$certificatesArgs _count?: boolean | UserCountOutputTypeDefaultArgs }, ExtArgs["result"]["user"]> export type UserSelectCreateManyAndReturn = $Extensions.GetSelect<{ id?: boolean email?: boolean name?: boolean image?: boolean emailVerified?: boolean locale?: boolean role?: boolean createdAt?: boolean }, ExtArgs["result"]["user"]> export type UserSelectUpdateManyAndReturn = $Extensions.GetSelect<{ id?: boolean email?: boolean name?: boolean image?: boolean emailVerified?: boolean locale?: boolean role?: boolean createdAt?: boolean }, ExtArgs["result"]["user"]> export type UserSelectScalar = { id?: boolean email?: boolean name?: boolean image?: boolean emailVerified?: boolean locale?: boolean role?: boolean createdAt?: boolean } export type UserOmit = $Extensions.GetOmit<"id" | "email" | "name" | "image" | "emailVerified" | "locale" | "role" | "createdAt", ExtArgs["result"]["user"]> export type UserInclude = { accounts?: boolean | User$accountsArgs sessions?: boolean | User$sessionsArgs enrollments?: boolean | User$enrollmentsArgs lessonProgress?: boolean | User$lessonProgressArgs quizAttempts?: boolean | User$quizAttemptsArgs certificates?: boolean | User$certificatesArgs _count?: boolean | UserCountOutputTypeDefaultArgs } export type UserIncludeCreateManyAndReturn = {} export type UserIncludeUpdateManyAndReturn = {} export type $UserPayload = { name: "User" objects: { accounts: Prisma.$AccountPayload[] sessions: Prisma.$SessionPayload[] enrollments: Prisma.$EnrollmentPayload[] lessonProgress: Prisma.$LessonProgressPayload[] quizAttempts: Prisma.$QuizAttemptPayload[] certificates: Prisma.$CertificatePayload[] } scalars: $Extensions.GetPayloadResult<{ id: string email: string name: string | null image: string | null emailVerified: Date | null locale: string role: $Enums.Role createdAt: Date }, ExtArgs["result"]["user"]> composites: {} } type UserGetPayload = $Result.GetResult type UserCountArgs = Omit & { select?: UserCountAggregateInputType | true } export interface UserDelegate { [K: symbol]: { types: Prisma.TypeMap['model']['User'], meta: { name: 'User' } } /** * Find zero or one User that matches the filter. * @param {UserFindUniqueArgs} args - Arguments to find a User * @example * // Get one User * const user = await prisma.user.findUnique({ * where: { * // ... provide filter here * } * }) */ findUnique(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find one User that matches the filter or throw an error with `error.code='P2025'` * if no matches were found. * @param {UserFindUniqueOrThrowArgs} args - Arguments to find a User * @example * // Get one User * const user = await prisma.user.findUniqueOrThrow({ * where: { * // ... provide filter here * } * }) */ findUniqueOrThrow(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find the first User that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {UserFindFirstArgs} args - Arguments to find a User * @example * // Get one User * const user = await prisma.user.findFirst({ * where: { * // ... provide filter here * } * }) */ findFirst(args?: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find the first User that matches the filter or * throw `PrismaKnownClientError` with `P2025` code if no matches were found. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {UserFindFirstOrThrowArgs} args - Arguments to find a User * @example * // Get one User * const user = await prisma.user.findFirstOrThrow({ * where: { * // ... provide filter here * } * }) */ findFirstOrThrow(args?: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find zero or more Users that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {UserFindManyArgs} args - Arguments to filter and select certain fields only. * @example * // Get all Users * const users = await prisma.user.findMany() * * // Get first 10 Users * const users = await prisma.user.findMany({ take: 10 }) * * // Only select the `id` * const userWithIdOnly = await prisma.user.findMany({ select: { id: true } }) * */ findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> /** * Create a User. * @param {UserCreateArgs} args - Arguments to create a User. * @example * // Create one User * const User = await prisma.user.create({ * data: { * // ... data to create a User * } * }) * */ create(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Create many Users. * @param {UserCreateManyArgs} args - Arguments to create many Users. * @example * // Create many Users * const user = await prisma.user.createMany({ * data: [ * // ... provide data here * ] * }) * */ createMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Create many Users and returns the data saved in the database. * @param {UserCreateManyAndReturnArgs} args - Arguments to create many Users. * @example * // Create many Users * const user = await prisma.user.createManyAndReturn({ * data: [ * // ... provide data here * ] * }) * * // Create many Users and only return the `id` * const userWithIdOnly = await prisma.user.createManyAndReturn({ * select: { id: true }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> /** * Delete a User. * @param {UserDeleteArgs} args - Arguments to delete one User. * @example * // Delete one User * const User = await prisma.user.delete({ * where: { * // ... filter to delete one User * } * }) * */ delete(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Update one User. * @param {UserUpdateArgs} args - Arguments to update one User. * @example * // Update one User * const user = await prisma.user.update({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ update(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Delete zero or more Users. * @param {UserDeleteManyArgs} args - Arguments to filter Users to delete. * @example * // Delete a few Users * const { count } = await prisma.user.deleteMany({ * where: { * // ... provide filter here * } * }) * */ deleteMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Users. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {UserUpdateManyArgs} args - Arguments to update one or more rows. * @example * // Update many Users * const user = await prisma.user.updateMany({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ updateMany(args: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Users and returns the data updated in the database. * @param {UserUpdateManyAndReturnArgs} args - Arguments to update many Users. * @example * // Update many Users * const user = await prisma.user.updateManyAndReturn({ * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * * // Update zero or more Users and only return the `id` * const userWithIdOnly = await prisma.user.updateManyAndReturn({ * select: { id: true }, * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> /** * Create or update one User. * @param {UserUpsertArgs} args - Arguments to update or create a User. * @example * // Update or create a User * const user = await prisma.user.upsert({ * create: { * // ... data to create a User * }, * update: { * // ... in case it already exists, update * }, * where: { * // ... the filter for the User we want to update * } * }) */ upsert(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Count the number of Users. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {UserCountArgs} args - Arguments to filter Users to count. * @example * // Count the number of Users * const count = await prisma.user.count({ * where: { * // ... the filter for the Users we want to count * } * }) **/ count( args?: Subset, ): Prisma.PrismaPromise< T extends $Utils.Record<'select', any> ? T['select'] extends true ? number : GetScalarType : number > /** * Allows you to perform aggregations operations on a User. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {UserAggregateArgs} args - Select which aggregations you would like to apply and on what fields. * @example * // Ordered by age ascending * // Where email contains prisma.io * // Limited to the 10 users * const aggregations = await prisma.user.aggregate({ * _avg: { * age: true, * }, * where: { * email: { * contains: "prisma.io", * }, * }, * orderBy: { * age: "asc", * }, * take: 10, * }) **/ aggregate(args: Subset): Prisma.PrismaPromise> /** * Group by User. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {UserGroupByArgs} args - Group by arguments. * @example * // Group by city, order by createdAt, get count * const result = await prisma.user.groupBy({ * by: ['city', 'createdAt'], * orderBy: { * createdAt: true * }, * _count: { * _all: true * }, * }) * **/ groupBy< T extends UserGroupByArgs, HasSelectOrTake extends Or< Extends<'skip', Keys>, Extends<'take', Keys> >, OrderByArg extends True extends HasSelectOrTake ? { orderBy: UserGroupByArgs['orderBy'] } : { orderBy?: UserGroupByArgs['orderBy'] }, OrderFields extends ExcludeUnderscoreKeys>>, ByFields extends MaybeTupleToUnion, ByValid extends Has, HavingFields extends GetHavingFields, HavingValid extends Has, ByEmpty extends T['by'] extends never[] ? True : False, InputErrors extends ByEmpty extends True ? `Error: "by" must not be empty.` : HavingValid extends False ? { [P in HavingFields]: P extends ByFields ? never : P extends string ? `Error: Field "${P}" used in "having" needs to be provided in "by".` : [ Error, 'Field ', P, ` in "having" needs to be provided in "by"`, ] }[HavingFields] : 'take' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "take", you also need to provide "orderBy"' : 'skip' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "skip", you also need to provide "orderBy"' : ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetUserGroupByPayload : Prisma.PrismaPromise /** * Fields of the User model */ readonly fields: UserFieldRefs; } /** * The delegate class that acts as a "Promise-like" for User. * Why is this prefixed with `Prisma__`? * Because we want to prevent naming conflicts as mentioned in * https://github.com/prisma/prisma-client-js/issues/707 */ export interface Prisma__UserClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" accounts = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> sessions = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> enrollments = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> lessonProgress = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> quizAttempts = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> certificates = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of which ever callback is executed. */ then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback for only the rejection of the Promise. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of the callback. */ catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The * resolved value cannot be modified from the callback. * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). * @returns A Promise for the completion of the callback. */ finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise } /** * Fields of the User model */ interface UserFieldRefs { readonly id: FieldRef<"User", 'String'> readonly email: FieldRef<"User", 'String'> readonly name: FieldRef<"User", 'String'> readonly image: FieldRef<"User", 'String'> readonly emailVerified: FieldRef<"User", 'DateTime'> readonly locale: FieldRef<"User", 'String'> readonly role: FieldRef<"User", 'Role'> readonly createdAt: FieldRef<"User", 'DateTime'> } // Custom InputTypes /** * User findUnique */ export type UserFindUniqueArgs = { /** * Select specific fields to fetch from the User */ select?: UserSelect | null /** * Omit specific fields from the User */ omit?: UserOmit | null /** * Choose, which related nodes to fetch as well */ include?: UserInclude | null /** * Filter, which User to fetch. */ where: UserWhereUniqueInput } /** * User findUniqueOrThrow */ export type UserFindUniqueOrThrowArgs = { /** * Select specific fields to fetch from the User */ select?: UserSelect | null /** * Omit specific fields from the User */ omit?: UserOmit | null /** * Choose, which related nodes to fetch as well */ include?: UserInclude | null /** * Filter, which User to fetch. */ where: UserWhereUniqueInput } /** * User findFirst */ export type UserFindFirstArgs = { /** * Select specific fields to fetch from the User */ select?: UserSelect | null /** * Omit specific fields from the User */ omit?: UserOmit | null /** * Choose, which related nodes to fetch as well */ include?: UserInclude | null /** * Filter, which User to fetch. */ where?: UserWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Users to fetch. */ orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Users. */ cursor?: UserWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Users from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Users. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Users. */ distinct?: UserScalarFieldEnum | UserScalarFieldEnum[] } /** * User findFirstOrThrow */ export type UserFindFirstOrThrowArgs = { /** * Select specific fields to fetch from the User */ select?: UserSelect | null /** * Omit specific fields from the User */ omit?: UserOmit | null /** * Choose, which related nodes to fetch as well */ include?: UserInclude | null /** * Filter, which User to fetch. */ where?: UserWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Users to fetch. */ orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Users. */ cursor?: UserWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Users from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Users. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Users. */ distinct?: UserScalarFieldEnum | UserScalarFieldEnum[] } /** * User findMany */ export type UserFindManyArgs = { /** * Select specific fields to fetch from the User */ select?: UserSelect | null /** * Omit specific fields from the User */ omit?: UserOmit | null /** * Choose, which related nodes to fetch as well */ include?: UserInclude | null /** * Filter, which Users to fetch. */ where?: UserWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Users to fetch. */ orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for listing Users. */ cursor?: UserWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Users from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Users. */ skip?: number distinct?: UserScalarFieldEnum | UserScalarFieldEnum[] } /** * User create */ export type UserCreateArgs = { /** * Select specific fields to fetch from the User */ select?: UserSelect | null /** * Omit specific fields from the User */ omit?: UserOmit | null /** * Choose, which related nodes to fetch as well */ include?: UserInclude | null /** * The data needed to create a User. */ data: XOR } /** * User createMany */ export type UserCreateManyArgs = { /** * The data used to create many Users. */ data: UserCreateManyInput | UserCreateManyInput[] skipDuplicates?: boolean } /** * User createManyAndReturn */ export type UserCreateManyAndReturnArgs = { /** * Select specific fields to fetch from the User */ select?: UserSelectCreateManyAndReturn | null /** * Omit specific fields from the User */ omit?: UserOmit | null /** * The data used to create many Users. */ data: UserCreateManyInput | UserCreateManyInput[] skipDuplicates?: boolean } /** * User update */ export type UserUpdateArgs = { /** * Select specific fields to fetch from the User */ select?: UserSelect | null /** * Omit specific fields from the User */ omit?: UserOmit | null /** * Choose, which related nodes to fetch as well */ include?: UserInclude | null /** * The data needed to update a User. */ data: XOR /** * Choose, which User to update. */ where: UserWhereUniqueInput } /** * User updateMany */ export type UserUpdateManyArgs = { /** * The data used to update Users. */ data: XOR /** * Filter which Users to update */ where?: UserWhereInput /** * Limit how many Users to update. */ limit?: number } /** * User updateManyAndReturn */ export type UserUpdateManyAndReturnArgs = { /** * Select specific fields to fetch from the User */ select?: UserSelectUpdateManyAndReturn | null /** * Omit specific fields from the User */ omit?: UserOmit | null /** * The data used to update Users. */ data: XOR /** * Filter which Users to update */ where?: UserWhereInput /** * Limit how many Users to update. */ limit?: number } /** * User upsert */ export type UserUpsertArgs = { /** * Select specific fields to fetch from the User */ select?: UserSelect | null /** * Omit specific fields from the User */ omit?: UserOmit | null /** * Choose, which related nodes to fetch as well */ include?: UserInclude | null /** * The filter to search for the User to update in case it exists. */ where: UserWhereUniqueInput /** * In case the User found by the `where` argument doesn't exist, create a new User with this data. */ create: XOR /** * In case the User was found with the provided `where` argument, update it with this data. */ update: XOR } /** * User delete */ export type UserDeleteArgs = { /** * Select specific fields to fetch from the User */ select?: UserSelect | null /** * Omit specific fields from the User */ omit?: UserOmit | null /** * Choose, which related nodes to fetch as well */ include?: UserInclude | null /** * Filter which User to delete. */ where: UserWhereUniqueInput } /** * User deleteMany */ export type UserDeleteManyArgs = { /** * Filter which Users to delete */ where?: UserWhereInput /** * Limit how many Users to delete. */ limit?: number } /** * User.accounts */ export type User$accountsArgs = { /** * Select specific fields to fetch from the Account */ select?: AccountSelect | null /** * Omit specific fields from the Account */ omit?: AccountOmit | null /** * Choose, which related nodes to fetch as well */ include?: AccountInclude | null where?: AccountWhereInput orderBy?: AccountOrderByWithRelationInput | AccountOrderByWithRelationInput[] cursor?: AccountWhereUniqueInput take?: number skip?: number distinct?: AccountScalarFieldEnum | AccountScalarFieldEnum[] } /** * User.sessions */ export type User$sessionsArgs = { /** * Select specific fields to fetch from the Session */ select?: SessionSelect | null /** * Omit specific fields from the Session */ omit?: SessionOmit | null /** * Choose, which related nodes to fetch as well */ include?: SessionInclude | null where?: SessionWhereInput orderBy?: SessionOrderByWithRelationInput | SessionOrderByWithRelationInput[] cursor?: SessionWhereUniqueInput take?: number skip?: number distinct?: SessionScalarFieldEnum | SessionScalarFieldEnum[] } /** * User.enrollments */ export type User$enrollmentsArgs = { /** * Select specific fields to fetch from the Enrollment */ select?: EnrollmentSelect | null /** * Omit specific fields from the Enrollment */ omit?: EnrollmentOmit | null /** * Choose, which related nodes to fetch as well */ include?: EnrollmentInclude | null where?: EnrollmentWhereInput orderBy?: EnrollmentOrderByWithRelationInput | EnrollmentOrderByWithRelationInput[] cursor?: EnrollmentWhereUniqueInput take?: number skip?: number distinct?: EnrollmentScalarFieldEnum | EnrollmentScalarFieldEnum[] } /** * User.lessonProgress */ export type User$lessonProgressArgs = { /** * Select specific fields to fetch from the LessonProgress */ select?: LessonProgressSelect | null /** * Omit specific fields from the LessonProgress */ omit?: LessonProgressOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonProgressInclude | null where?: LessonProgressWhereInput orderBy?: LessonProgressOrderByWithRelationInput | LessonProgressOrderByWithRelationInput[] cursor?: LessonProgressWhereUniqueInput take?: number skip?: number distinct?: LessonProgressScalarFieldEnum | LessonProgressScalarFieldEnum[] } /** * User.quizAttempts */ export type User$quizAttemptsArgs = { /** * Select specific fields to fetch from the QuizAttempt */ select?: QuizAttemptSelect | null /** * Omit specific fields from the QuizAttempt */ omit?: QuizAttemptOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizAttemptInclude | null where?: QuizAttemptWhereInput orderBy?: QuizAttemptOrderByWithRelationInput | QuizAttemptOrderByWithRelationInput[] cursor?: QuizAttemptWhereUniqueInput take?: number skip?: number distinct?: QuizAttemptScalarFieldEnum | QuizAttemptScalarFieldEnum[] } /** * User.certificates */ export type User$certificatesArgs = { /** * Select specific fields to fetch from the Certificate */ select?: CertificateSelect | null /** * Omit specific fields from the Certificate */ omit?: CertificateOmit | null /** * Choose, which related nodes to fetch as well */ include?: CertificateInclude | null where?: CertificateWhereInput orderBy?: CertificateOrderByWithRelationInput | CertificateOrderByWithRelationInput[] cursor?: CertificateWhereUniqueInput take?: number skip?: number distinct?: CertificateScalarFieldEnum | CertificateScalarFieldEnum[] } /** * User without action */ export type UserDefaultArgs = { /** * Select specific fields to fetch from the User */ select?: UserSelect | null /** * Omit specific fields from the User */ omit?: UserOmit | null /** * Choose, which related nodes to fetch as well */ include?: UserInclude | null } /** * Model Account */ export type AggregateAccount = { _count: AccountCountAggregateOutputType | null _avg: AccountAvgAggregateOutputType | null _sum: AccountSumAggregateOutputType | null _min: AccountMinAggregateOutputType | null _max: AccountMaxAggregateOutputType | null } export type AccountAvgAggregateOutputType = { expires_at: number | null } export type AccountSumAggregateOutputType = { expires_at: number | null } export type AccountMinAggregateOutputType = { id: string | null userId: string | null type: string | null provider: string | null providerAccountId: string | null refresh_token: string | null access_token: string | null expires_at: number | null token_type: string | null scope: string | null id_token: string | null session_state: string | null } export type AccountMaxAggregateOutputType = { id: string | null userId: string | null type: string | null provider: string | null providerAccountId: string | null refresh_token: string | null access_token: string | null expires_at: number | null token_type: string | null scope: string | null id_token: string | null session_state: string | null } export type AccountCountAggregateOutputType = { id: number userId: number type: number provider: number providerAccountId: number refresh_token: number access_token: number expires_at: number token_type: number scope: number id_token: number session_state: number _all: number } export type AccountAvgAggregateInputType = { expires_at?: true } export type AccountSumAggregateInputType = { expires_at?: true } export type AccountMinAggregateInputType = { id?: true userId?: true type?: true provider?: true providerAccountId?: true refresh_token?: true access_token?: true expires_at?: true token_type?: true scope?: true id_token?: true session_state?: true } export type AccountMaxAggregateInputType = { id?: true userId?: true type?: true provider?: true providerAccountId?: true refresh_token?: true access_token?: true expires_at?: true token_type?: true scope?: true id_token?: true session_state?: true } export type AccountCountAggregateInputType = { id?: true userId?: true type?: true provider?: true providerAccountId?: true refresh_token?: true access_token?: true expires_at?: true token_type?: true scope?: true id_token?: true session_state?: true _all?: true } export type AccountAggregateArgs = { /** * Filter which Account to aggregate. */ where?: AccountWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Accounts to fetch. */ orderBy?: AccountOrderByWithRelationInput | AccountOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the start position */ cursor?: AccountWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Accounts from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Accounts. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Count returned Accounts **/ _count?: true | AccountCountAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to average **/ _avg?: AccountAvgAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to sum **/ _sum?: AccountSumAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the minimum value **/ _min?: AccountMinAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the maximum value **/ _max?: AccountMaxAggregateInputType } export type GetAccountAggregateType = { [P in keyof T & keyof AggregateAccount]: P extends '_count' | 'count' ? T[P] extends true ? number : GetScalarType : GetScalarType } export type AccountGroupByArgs = { where?: AccountWhereInput orderBy?: AccountOrderByWithAggregationInput | AccountOrderByWithAggregationInput[] by: AccountScalarFieldEnum[] | AccountScalarFieldEnum having?: AccountScalarWhereWithAggregatesInput take?: number skip?: number _count?: AccountCountAggregateInputType | true _avg?: AccountAvgAggregateInputType _sum?: AccountSumAggregateInputType _min?: AccountMinAggregateInputType _max?: AccountMaxAggregateInputType } export type AccountGroupByOutputType = { id: string userId: string type: string provider: string providerAccountId: string refresh_token: string | null access_token: string | null expires_at: number | null token_type: string | null scope: string | null id_token: string | null session_state: string | null _count: AccountCountAggregateOutputType | null _avg: AccountAvgAggregateOutputType | null _sum: AccountSumAggregateOutputType | null _min: AccountMinAggregateOutputType | null _max: AccountMaxAggregateOutputType | null } type GetAccountGroupByPayload = Prisma.PrismaPromise< Array< PickEnumerable & { [P in ((keyof T) & (keyof AccountGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : GetScalarType : GetScalarType } > > export type AccountSelect = $Extensions.GetSelect<{ id?: boolean userId?: boolean type?: boolean provider?: boolean providerAccountId?: boolean refresh_token?: boolean access_token?: boolean expires_at?: boolean token_type?: boolean scope?: boolean id_token?: boolean session_state?: boolean user?: boolean | UserDefaultArgs }, ExtArgs["result"]["account"]> export type AccountSelectCreateManyAndReturn = $Extensions.GetSelect<{ id?: boolean userId?: boolean type?: boolean provider?: boolean providerAccountId?: boolean refresh_token?: boolean access_token?: boolean expires_at?: boolean token_type?: boolean scope?: boolean id_token?: boolean session_state?: boolean user?: boolean | UserDefaultArgs }, ExtArgs["result"]["account"]> export type AccountSelectUpdateManyAndReturn = $Extensions.GetSelect<{ id?: boolean userId?: boolean type?: boolean provider?: boolean providerAccountId?: boolean refresh_token?: boolean access_token?: boolean expires_at?: boolean token_type?: boolean scope?: boolean id_token?: boolean session_state?: boolean user?: boolean | UserDefaultArgs }, ExtArgs["result"]["account"]> export type AccountSelectScalar = { id?: boolean userId?: boolean type?: boolean provider?: boolean providerAccountId?: boolean refresh_token?: boolean access_token?: boolean expires_at?: boolean token_type?: boolean scope?: boolean id_token?: boolean session_state?: boolean } export type AccountOmit = $Extensions.GetOmit<"id" | "userId" | "type" | "provider" | "providerAccountId" | "refresh_token" | "access_token" | "expires_at" | "token_type" | "scope" | "id_token" | "session_state", ExtArgs["result"]["account"]> export type AccountInclude = { user?: boolean | UserDefaultArgs } export type AccountIncludeCreateManyAndReturn = { user?: boolean | UserDefaultArgs } export type AccountIncludeUpdateManyAndReturn = { user?: boolean | UserDefaultArgs } export type $AccountPayload = { name: "Account" objects: { user: Prisma.$UserPayload } scalars: $Extensions.GetPayloadResult<{ id: string userId: string type: string provider: string providerAccountId: string refresh_token: string | null access_token: string | null expires_at: number | null token_type: string | null scope: string | null id_token: string | null session_state: string | null }, ExtArgs["result"]["account"]> composites: {} } type AccountGetPayload = $Result.GetResult type AccountCountArgs = Omit & { select?: AccountCountAggregateInputType | true } export interface AccountDelegate { [K: symbol]: { types: Prisma.TypeMap['model']['Account'], meta: { name: 'Account' } } /** * Find zero or one Account that matches the filter. * @param {AccountFindUniqueArgs} args - Arguments to find a Account * @example * // Get one Account * const account = await prisma.account.findUnique({ * where: { * // ... provide filter here * } * }) */ findUnique(args: SelectSubset>): Prisma__AccountClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find one Account that matches the filter or throw an error with `error.code='P2025'` * if no matches were found. * @param {AccountFindUniqueOrThrowArgs} args - Arguments to find a Account * @example * // Get one Account * const account = await prisma.account.findUniqueOrThrow({ * where: { * // ... provide filter here * } * }) */ findUniqueOrThrow(args: SelectSubset>): Prisma__AccountClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find the first Account that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {AccountFindFirstArgs} args - Arguments to find a Account * @example * // Get one Account * const account = await prisma.account.findFirst({ * where: { * // ... provide filter here * } * }) */ findFirst(args?: SelectSubset>): Prisma__AccountClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find the first Account that matches the filter or * throw `PrismaKnownClientError` with `P2025` code if no matches were found. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {AccountFindFirstOrThrowArgs} args - Arguments to find a Account * @example * // Get one Account * const account = await prisma.account.findFirstOrThrow({ * where: { * // ... provide filter here * } * }) */ findFirstOrThrow(args?: SelectSubset>): Prisma__AccountClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find zero or more Accounts that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {AccountFindManyArgs} args - Arguments to filter and select certain fields only. * @example * // Get all Accounts * const accounts = await prisma.account.findMany() * * // Get first 10 Accounts * const accounts = await prisma.account.findMany({ take: 10 }) * * // Only select the `id` * const accountWithIdOnly = await prisma.account.findMany({ select: { id: true } }) * */ findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> /** * Create a Account. * @param {AccountCreateArgs} args - Arguments to create a Account. * @example * // Create one Account * const Account = await prisma.account.create({ * data: { * // ... data to create a Account * } * }) * */ create(args: SelectSubset>): Prisma__AccountClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Create many Accounts. * @param {AccountCreateManyArgs} args - Arguments to create many Accounts. * @example * // Create many Accounts * const account = await prisma.account.createMany({ * data: [ * // ... provide data here * ] * }) * */ createMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Create many Accounts and returns the data saved in the database. * @param {AccountCreateManyAndReturnArgs} args - Arguments to create many Accounts. * @example * // Create many Accounts * const account = await prisma.account.createManyAndReturn({ * data: [ * // ... provide data here * ] * }) * * // Create many Accounts and only return the `id` * const accountWithIdOnly = await prisma.account.createManyAndReturn({ * select: { id: true }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> /** * Delete a Account. * @param {AccountDeleteArgs} args - Arguments to delete one Account. * @example * // Delete one Account * const Account = await prisma.account.delete({ * where: { * // ... filter to delete one Account * } * }) * */ delete(args: SelectSubset>): Prisma__AccountClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Update one Account. * @param {AccountUpdateArgs} args - Arguments to update one Account. * @example * // Update one Account * const account = await prisma.account.update({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ update(args: SelectSubset>): Prisma__AccountClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Delete zero or more Accounts. * @param {AccountDeleteManyArgs} args - Arguments to filter Accounts to delete. * @example * // Delete a few Accounts * const { count } = await prisma.account.deleteMany({ * where: { * // ... provide filter here * } * }) * */ deleteMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Accounts. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {AccountUpdateManyArgs} args - Arguments to update one or more rows. * @example * // Update many Accounts * const account = await prisma.account.updateMany({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ updateMany(args: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Accounts and returns the data updated in the database. * @param {AccountUpdateManyAndReturnArgs} args - Arguments to update many Accounts. * @example * // Update many Accounts * const account = await prisma.account.updateManyAndReturn({ * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * * // Update zero or more Accounts and only return the `id` * const accountWithIdOnly = await prisma.account.updateManyAndReturn({ * select: { id: true }, * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> /** * Create or update one Account. * @param {AccountUpsertArgs} args - Arguments to update or create a Account. * @example * // Update or create a Account * const account = await prisma.account.upsert({ * create: { * // ... data to create a Account * }, * update: { * // ... in case it already exists, update * }, * where: { * // ... the filter for the Account we want to update * } * }) */ upsert(args: SelectSubset>): Prisma__AccountClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Count the number of Accounts. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {AccountCountArgs} args - Arguments to filter Accounts to count. * @example * // Count the number of Accounts * const count = await prisma.account.count({ * where: { * // ... the filter for the Accounts we want to count * } * }) **/ count( args?: Subset, ): Prisma.PrismaPromise< T extends $Utils.Record<'select', any> ? T['select'] extends true ? number : GetScalarType : number > /** * Allows you to perform aggregations operations on a Account. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {AccountAggregateArgs} args - Select which aggregations you would like to apply and on what fields. * @example * // Ordered by age ascending * // Where email contains prisma.io * // Limited to the 10 users * const aggregations = await prisma.user.aggregate({ * _avg: { * age: true, * }, * where: { * email: { * contains: "prisma.io", * }, * }, * orderBy: { * age: "asc", * }, * take: 10, * }) **/ aggregate(args: Subset): Prisma.PrismaPromise> /** * Group by Account. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {AccountGroupByArgs} args - Group by arguments. * @example * // Group by city, order by createdAt, get count * const result = await prisma.user.groupBy({ * by: ['city', 'createdAt'], * orderBy: { * createdAt: true * }, * _count: { * _all: true * }, * }) * **/ groupBy< T extends AccountGroupByArgs, HasSelectOrTake extends Or< Extends<'skip', Keys>, Extends<'take', Keys> >, OrderByArg extends True extends HasSelectOrTake ? { orderBy: AccountGroupByArgs['orderBy'] } : { orderBy?: AccountGroupByArgs['orderBy'] }, OrderFields extends ExcludeUnderscoreKeys>>, ByFields extends MaybeTupleToUnion, ByValid extends Has, HavingFields extends GetHavingFields, HavingValid extends Has, ByEmpty extends T['by'] extends never[] ? True : False, InputErrors extends ByEmpty extends True ? `Error: "by" must not be empty.` : HavingValid extends False ? { [P in HavingFields]: P extends ByFields ? never : P extends string ? `Error: Field "${P}" used in "having" needs to be provided in "by".` : [ Error, 'Field ', P, ` in "having" needs to be provided in "by"`, ] }[HavingFields] : 'take' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "take", you also need to provide "orderBy"' : 'skip' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "skip", you also need to provide "orderBy"' : ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetAccountGroupByPayload : Prisma.PrismaPromise /** * Fields of the Account model */ readonly fields: AccountFieldRefs; } /** * The delegate class that acts as a "Promise-like" for Account. * Why is this prefixed with `Prisma__`? * Because we want to prevent naming conflicts as mentioned in * https://github.com/prisma/prisma-client-js/issues/707 */ export interface Prisma__AccountClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" user = {}>(args?: Subset>): Prisma__UserClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of which ever callback is executed. */ then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback for only the rejection of the Promise. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of the callback. */ catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The * resolved value cannot be modified from the callback. * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). * @returns A Promise for the completion of the callback. */ finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise } /** * Fields of the Account model */ interface AccountFieldRefs { readonly id: FieldRef<"Account", 'String'> readonly userId: FieldRef<"Account", 'String'> readonly type: FieldRef<"Account", 'String'> readonly provider: FieldRef<"Account", 'String'> readonly providerAccountId: FieldRef<"Account", 'String'> readonly refresh_token: FieldRef<"Account", 'String'> readonly access_token: FieldRef<"Account", 'String'> readonly expires_at: FieldRef<"Account", 'Int'> readonly token_type: FieldRef<"Account", 'String'> readonly scope: FieldRef<"Account", 'String'> readonly id_token: FieldRef<"Account", 'String'> readonly session_state: FieldRef<"Account", 'String'> } // Custom InputTypes /** * Account findUnique */ export type AccountFindUniqueArgs = { /** * Select specific fields to fetch from the Account */ select?: AccountSelect | null /** * Omit specific fields from the Account */ omit?: AccountOmit | null /** * Choose, which related nodes to fetch as well */ include?: AccountInclude | null /** * Filter, which Account to fetch. */ where: AccountWhereUniqueInput } /** * Account findUniqueOrThrow */ export type AccountFindUniqueOrThrowArgs = { /** * Select specific fields to fetch from the Account */ select?: AccountSelect | null /** * Omit specific fields from the Account */ omit?: AccountOmit | null /** * Choose, which related nodes to fetch as well */ include?: AccountInclude | null /** * Filter, which Account to fetch. */ where: AccountWhereUniqueInput } /** * Account findFirst */ export type AccountFindFirstArgs = { /** * Select specific fields to fetch from the Account */ select?: AccountSelect | null /** * Omit specific fields from the Account */ omit?: AccountOmit | null /** * Choose, which related nodes to fetch as well */ include?: AccountInclude | null /** * Filter, which Account to fetch. */ where?: AccountWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Accounts to fetch. */ orderBy?: AccountOrderByWithRelationInput | AccountOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Accounts. */ cursor?: AccountWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Accounts from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Accounts. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Accounts. */ distinct?: AccountScalarFieldEnum | AccountScalarFieldEnum[] } /** * Account findFirstOrThrow */ export type AccountFindFirstOrThrowArgs = { /** * Select specific fields to fetch from the Account */ select?: AccountSelect | null /** * Omit specific fields from the Account */ omit?: AccountOmit | null /** * Choose, which related nodes to fetch as well */ include?: AccountInclude | null /** * Filter, which Account to fetch. */ where?: AccountWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Accounts to fetch. */ orderBy?: AccountOrderByWithRelationInput | AccountOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Accounts. */ cursor?: AccountWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Accounts from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Accounts. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Accounts. */ distinct?: AccountScalarFieldEnum | AccountScalarFieldEnum[] } /** * Account findMany */ export type AccountFindManyArgs = { /** * Select specific fields to fetch from the Account */ select?: AccountSelect | null /** * Omit specific fields from the Account */ omit?: AccountOmit | null /** * Choose, which related nodes to fetch as well */ include?: AccountInclude | null /** * Filter, which Accounts to fetch. */ where?: AccountWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Accounts to fetch. */ orderBy?: AccountOrderByWithRelationInput | AccountOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for listing Accounts. */ cursor?: AccountWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Accounts from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Accounts. */ skip?: number distinct?: AccountScalarFieldEnum | AccountScalarFieldEnum[] } /** * Account create */ export type AccountCreateArgs = { /** * Select specific fields to fetch from the Account */ select?: AccountSelect | null /** * Omit specific fields from the Account */ omit?: AccountOmit | null /** * Choose, which related nodes to fetch as well */ include?: AccountInclude | null /** * The data needed to create a Account. */ data: XOR } /** * Account createMany */ export type AccountCreateManyArgs = { /** * The data used to create many Accounts. */ data: AccountCreateManyInput | AccountCreateManyInput[] skipDuplicates?: boolean } /** * Account createManyAndReturn */ export type AccountCreateManyAndReturnArgs = { /** * Select specific fields to fetch from the Account */ select?: AccountSelectCreateManyAndReturn | null /** * Omit specific fields from the Account */ omit?: AccountOmit | null /** * The data used to create many Accounts. */ data: AccountCreateManyInput | AccountCreateManyInput[] skipDuplicates?: boolean /** * Choose, which related nodes to fetch as well */ include?: AccountIncludeCreateManyAndReturn | null } /** * Account update */ export type AccountUpdateArgs = { /** * Select specific fields to fetch from the Account */ select?: AccountSelect | null /** * Omit specific fields from the Account */ omit?: AccountOmit | null /** * Choose, which related nodes to fetch as well */ include?: AccountInclude | null /** * The data needed to update a Account. */ data: XOR /** * Choose, which Account to update. */ where: AccountWhereUniqueInput } /** * Account updateMany */ export type AccountUpdateManyArgs = { /** * The data used to update Accounts. */ data: XOR /** * Filter which Accounts to update */ where?: AccountWhereInput /** * Limit how many Accounts to update. */ limit?: number } /** * Account updateManyAndReturn */ export type AccountUpdateManyAndReturnArgs = { /** * Select specific fields to fetch from the Account */ select?: AccountSelectUpdateManyAndReturn | null /** * Omit specific fields from the Account */ omit?: AccountOmit | null /** * The data used to update Accounts. */ data: XOR /** * Filter which Accounts to update */ where?: AccountWhereInput /** * Limit how many Accounts to update. */ limit?: number /** * Choose, which related nodes to fetch as well */ include?: AccountIncludeUpdateManyAndReturn | null } /** * Account upsert */ export type AccountUpsertArgs = { /** * Select specific fields to fetch from the Account */ select?: AccountSelect | null /** * Omit specific fields from the Account */ omit?: AccountOmit | null /** * Choose, which related nodes to fetch as well */ include?: AccountInclude | null /** * The filter to search for the Account to update in case it exists. */ where: AccountWhereUniqueInput /** * In case the Account found by the `where` argument doesn't exist, create a new Account with this data. */ create: XOR /** * In case the Account was found with the provided `where` argument, update it with this data. */ update: XOR } /** * Account delete */ export type AccountDeleteArgs = { /** * Select specific fields to fetch from the Account */ select?: AccountSelect | null /** * Omit specific fields from the Account */ omit?: AccountOmit | null /** * Choose, which related nodes to fetch as well */ include?: AccountInclude | null /** * Filter which Account to delete. */ where: AccountWhereUniqueInput } /** * Account deleteMany */ export type AccountDeleteManyArgs = { /** * Filter which Accounts to delete */ where?: AccountWhereInput /** * Limit how many Accounts to delete. */ limit?: number } /** * Account without action */ export type AccountDefaultArgs = { /** * Select specific fields to fetch from the Account */ select?: AccountSelect | null /** * Omit specific fields from the Account */ omit?: AccountOmit | null /** * Choose, which related nodes to fetch as well */ include?: AccountInclude | null } /** * Model Session */ export type AggregateSession = { _count: SessionCountAggregateOutputType | null _min: SessionMinAggregateOutputType | null _max: SessionMaxAggregateOutputType | null } export type SessionMinAggregateOutputType = { id: string | null sessionToken: string | null userId: string | null expires: Date | null } export type SessionMaxAggregateOutputType = { id: string | null sessionToken: string | null userId: string | null expires: Date | null } export type SessionCountAggregateOutputType = { id: number sessionToken: number userId: number expires: number _all: number } export type SessionMinAggregateInputType = { id?: true sessionToken?: true userId?: true expires?: true } export type SessionMaxAggregateInputType = { id?: true sessionToken?: true userId?: true expires?: true } export type SessionCountAggregateInputType = { id?: true sessionToken?: true userId?: true expires?: true _all?: true } export type SessionAggregateArgs = { /** * Filter which Session to aggregate. */ where?: SessionWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Sessions to fetch. */ orderBy?: SessionOrderByWithRelationInput | SessionOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the start position */ cursor?: SessionWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Sessions from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Sessions. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Count returned Sessions **/ _count?: true | SessionCountAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the minimum value **/ _min?: SessionMinAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the maximum value **/ _max?: SessionMaxAggregateInputType } export type GetSessionAggregateType = { [P in keyof T & keyof AggregateSession]: P extends '_count' | 'count' ? T[P] extends true ? number : GetScalarType : GetScalarType } export type SessionGroupByArgs = { where?: SessionWhereInput orderBy?: SessionOrderByWithAggregationInput | SessionOrderByWithAggregationInput[] by: SessionScalarFieldEnum[] | SessionScalarFieldEnum having?: SessionScalarWhereWithAggregatesInput take?: number skip?: number _count?: SessionCountAggregateInputType | true _min?: SessionMinAggregateInputType _max?: SessionMaxAggregateInputType } export type SessionGroupByOutputType = { id: string sessionToken: string userId: string expires: Date _count: SessionCountAggregateOutputType | null _min: SessionMinAggregateOutputType | null _max: SessionMaxAggregateOutputType | null } type GetSessionGroupByPayload = Prisma.PrismaPromise< Array< PickEnumerable & { [P in ((keyof T) & (keyof SessionGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : GetScalarType : GetScalarType } > > export type SessionSelect = $Extensions.GetSelect<{ id?: boolean sessionToken?: boolean userId?: boolean expires?: boolean user?: boolean | UserDefaultArgs }, ExtArgs["result"]["session"]> export type SessionSelectCreateManyAndReturn = $Extensions.GetSelect<{ id?: boolean sessionToken?: boolean userId?: boolean expires?: boolean user?: boolean | UserDefaultArgs }, ExtArgs["result"]["session"]> export type SessionSelectUpdateManyAndReturn = $Extensions.GetSelect<{ id?: boolean sessionToken?: boolean userId?: boolean expires?: boolean user?: boolean | UserDefaultArgs }, ExtArgs["result"]["session"]> export type SessionSelectScalar = { id?: boolean sessionToken?: boolean userId?: boolean expires?: boolean } export type SessionOmit = $Extensions.GetOmit<"id" | "sessionToken" | "userId" | "expires", ExtArgs["result"]["session"]> export type SessionInclude = { user?: boolean | UserDefaultArgs } export type SessionIncludeCreateManyAndReturn = { user?: boolean | UserDefaultArgs } export type SessionIncludeUpdateManyAndReturn = { user?: boolean | UserDefaultArgs } export type $SessionPayload = { name: "Session" objects: { user: Prisma.$UserPayload } scalars: $Extensions.GetPayloadResult<{ id: string sessionToken: string userId: string expires: Date }, ExtArgs["result"]["session"]> composites: {} } type SessionGetPayload = $Result.GetResult type SessionCountArgs = Omit & { select?: SessionCountAggregateInputType | true } export interface SessionDelegate { [K: symbol]: { types: Prisma.TypeMap['model']['Session'], meta: { name: 'Session' } } /** * Find zero or one Session that matches the filter. * @param {SessionFindUniqueArgs} args - Arguments to find a Session * @example * // Get one Session * const session = await prisma.session.findUnique({ * where: { * // ... provide filter here * } * }) */ findUnique(args: SelectSubset>): Prisma__SessionClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find one Session that matches the filter or throw an error with `error.code='P2025'` * if no matches were found. * @param {SessionFindUniqueOrThrowArgs} args - Arguments to find a Session * @example * // Get one Session * const session = await prisma.session.findUniqueOrThrow({ * where: { * // ... provide filter here * } * }) */ findUniqueOrThrow(args: SelectSubset>): Prisma__SessionClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find the first Session that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {SessionFindFirstArgs} args - Arguments to find a Session * @example * // Get one Session * const session = await prisma.session.findFirst({ * where: { * // ... provide filter here * } * }) */ findFirst(args?: SelectSubset>): Prisma__SessionClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find the first Session that matches the filter or * throw `PrismaKnownClientError` with `P2025` code if no matches were found. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {SessionFindFirstOrThrowArgs} args - Arguments to find a Session * @example * // Get one Session * const session = await prisma.session.findFirstOrThrow({ * where: { * // ... provide filter here * } * }) */ findFirstOrThrow(args?: SelectSubset>): Prisma__SessionClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find zero or more Sessions that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {SessionFindManyArgs} args - Arguments to filter and select certain fields only. * @example * // Get all Sessions * const sessions = await prisma.session.findMany() * * // Get first 10 Sessions * const sessions = await prisma.session.findMany({ take: 10 }) * * // Only select the `id` * const sessionWithIdOnly = await prisma.session.findMany({ select: { id: true } }) * */ findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> /** * Create a Session. * @param {SessionCreateArgs} args - Arguments to create a Session. * @example * // Create one Session * const Session = await prisma.session.create({ * data: { * // ... data to create a Session * } * }) * */ create(args: SelectSubset>): Prisma__SessionClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Create many Sessions. * @param {SessionCreateManyArgs} args - Arguments to create many Sessions. * @example * // Create many Sessions * const session = await prisma.session.createMany({ * data: [ * // ... provide data here * ] * }) * */ createMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Create many Sessions and returns the data saved in the database. * @param {SessionCreateManyAndReturnArgs} args - Arguments to create many Sessions. * @example * // Create many Sessions * const session = await prisma.session.createManyAndReturn({ * data: [ * // ... provide data here * ] * }) * * // Create many Sessions and only return the `id` * const sessionWithIdOnly = await prisma.session.createManyAndReturn({ * select: { id: true }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> /** * Delete a Session. * @param {SessionDeleteArgs} args - Arguments to delete one Session. * @example * // Delete one Session * const Session = await prisma.session.delete({ * where: { * // ... filter to delete one Session * } * }) * */ delete(args: SelectSubset>): Prisma__SessionClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Update one Session. * @param {SessionUpdateArgs} args - Arguments to update one Session. * @example * // Update one Session * const session = await prisma.session.update({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ update(args: SelectSubset>): Prisma__SessionClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Delete zero or more Sessions. * @param {SessionDeleteManyArgs} args - Arguments to filter Sessions to delete. * @example * // Delete a few Sessions * const { count } = await prisma.session.deleteMany({ * where: { * // ... provide filter here * } * }) * */ deleteMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Sessions. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {SessionUpdateManyArgs} args - Arguments to update one or more rows. * @example * // Update many Sessions * const session = await prisma.session.updateMany({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ updateMany(args: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Sessions and returns the data updated in the database. * @param {SessionUpdateManyAndReturnArgs} args - Arguments to update many Sessions. * @example * // Update many Sessions * const session = await prisma.session.updateManyAndReturn({ * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * * // Update zero or more Sessions and only return the `id` * const sessionWithIdOnly = await prisma.session.updateManyAndReturn({ * select: { id: true }, * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> /** * Create or update one Session. * @param {SessionUpsertArgs} args - Arguments to update or create a Session. * @example * // Update or create a Session * const session = await prisma.session.upsert({ * create: { * // ... data to create a Session * }, * update: { * // ... in case it already exists, update * }, * where: { * // ... the filter for the Session we want to update * } * }) */ upsert(args: SelectSubset>): Prisma__SessionClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Count the number of Sessions. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {SessionCountArgs} args - Arguments to filter Sessions to count. * @example * // Count the number of Sessions * const count = await prisma.session.count({ * where: { * // ... the filter for the Sessions we want to count * } * }) **/ count( args?: Subset, ): Prisma.PrismaPromise< T extends $Utils.Record<'select', any> ? T['select'] extends true ? number : GetScalarType : number > /** * Allows you to perform aggregations operations on a Session. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {SessionAggregateArgs} args - Select which aggregations you would like to apply and on what fields. * @example * // Ordered by age ascending * // Where email contains prisma.io * // Limited to the 10 users * const aggregations = await prisma.user.aggregate({ * _avg: { * age: true, * }, * where: { * email: { * contains: "prisma.io", * }, * }, * orderBy: { * age: "asc", * }, * take: 10, * }) **/ aggregate(args: Subset): Prisma.PrismaPromise> /** * Group by Session. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {SessionGroupByArgs} args - Group by arguments. * @example * // Group by city, order by createdAt, get count * const result = await prisma.user.groupBy({ * by: ['city', 'createdAt'], * orderBy: { * createdAt: true * }, * _count: { * _all: true * }, * }) * **/ groupBy< T extends SessionGroupByArgs, HasSelectOrTake extends Or< Extends<'skip', Keys>, Extends<'take', Keys> >, OrderByArg extends True extends HasSelectOrTake ? { orderBy: SessionGroupByArgs['orderBy'] } : { orderBy?: SessionGroupByArgs['orderBy'] }, OrderFields extends ExcludeUnderscoreKeys>>, ByFields extends MaybeTupleToUnion, ByValid extends Has, HavingFields extends GetHavingFields, HavingValid extends Has, ByEmpty extends T['by'] extends never[] ? True : False, InputErrors extends ByEmpty extends True ? `Error: "by" must not be empty.` : HavingValid extends False ? { [P in HavingFields]: P extends ByFields ? never : P extends string ? `Error: Field "${P}" used in "having" needs to be provided in "by".` : [ Error, 'Field ', P, ` in "having" needs to be provided in "by"`, ] }[HavingFields] : 'take' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "take", you also need to provide "orderBy"' : 'skip' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "skip", you also need to provide "orderBy"' : ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetSessionGroupByPayload : Prisma.PrismaPromise /** * Fields of the Session model */ readonly fields: SessionFieldRefs; } /** * The delegate class that acts as a "Promise-like" for Session. * Why is this prefixed with `Prisma__`? * Because we want to prevent naming conflicts as mentioned in * https://github.com/prisma/prisma-client-js/issues/707 */ export interface Prisma__SessionClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" user = {}>(args?: Subset>): Prisma__UserClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of which ever callback is executed. */ then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback for only the rejection of the Promise. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of the callback. */ catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The * resolved value cannot be modified from the callback. * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). * @returns A Promise for the completion of the callback. */ finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise } /** * Fields of the Session model */ interface SessionFieldRefs { readonly id: FieldRef<"Session", 'String'> readonly sessionToken: FieldRef<"Session", 'String'> readonly userId: FieldRef<"Session", 'String'> readonly expires: FieldRef<"Session", 'DateTime'> } // Custom InputTypes /** * Session findUnique */ export type SessionFindUniqueArgs = { /** * Select specific fields to fetch from the Session */ select?: SessionSelect | null /** * Omit specific fields from the Session */ omit?: SessionOmit | null /** * Choose, which related nodes to fetch as well */ include?: SessionInclude | null /** * Filter, which Session to fetch. */ where: SessionWhereUniqueInput } /** * Session findUniqueOrThrow */ export type SessionFindUniqueOrThrowArgs = { /** * Select specific fields to fetch from the Session */ select?: SessionSelect | null /** * Omit specific fields from the Session */ omit?: SessionOmit | null /** * Choose, which related nodes to fetch as well */ include?: SessionInclude | null /** * Filter, which Session to fetch. */ where: SessionWhereUniqueInput } /** * Session findFirst */ export type SessionFindFirstArgs = { /** * Select specific fields to fetch from the Session */ select?: SessionSelect | null /** * Omit specific fields from the Session */ omit?: SessionOmit | null /** * Choose, which related nodes to fetch as well */ include?: SessionInclude | null /** * Filter, which Session to fetch. */ where?: SessionWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Sessions to fetch. */ orderBy?: SessionOrderByWithRelationInput | SessionOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Sessions. */ cursor?: SessionWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Sessions from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Sessions. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Sessions. */ distinct?: SessionScalarFieldEnum | SessionScalarFieldEnum[] } /** * Session findFirstOrThrow */ export type SessionFindFirstOrThrowArgs = { /** * Select specific fields to fetch from the Session */ select?: SessionSelect | null /** * Omit specific fields from the Session */ omit?: SessionOmit | null /** * Choose, which related nodes to fetch as well */ include?: SessionInclude | null /** * Filter, which Session to fetch. */ where?: SessionWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Sessions to fetch. */ orderBy?: SessionOrderByWithRelationInput | SessionOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Sessions. */ cursor?: SessionWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Sessions from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Sessions. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Sessions. */ distinct?: SessionScalarFieldEnum | SessionScalarFieldEnum[] } /** * Session findMany */ export type SessionFindManyArgs = { /** * Select specific fields to fetch from the Session */ select?: SessionSelect | null /** * Omit specific fields from the Session */ omit?: SessionOmit | null /** * Choose, which related nodes to fetch as well */ include?: SessionInclude | null /** * Filter, which Sessions to fetch. */ where?: SessionWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Sessions to fetch. */ orderBy?: SessionOrderByWithRelationInput | SessionOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for listing Sessions. */ cursor?: SessionWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Sessions from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Sessions. */ skip?: number distinct?: SessionScalarFieldEnum | SessionScalarFieldEnum[] } /** * Session create */ export type SessionCreateArgs = { /** * Select specific fields to fetch from the Session */ select?: SessionSelect | null /** * Omit specific fields from the Session */ omit?: SessionOmit | null /** * Choose, which related nodes to fetch as well */ include?: SessionInclude | null /** * The data needed to create a Session. */ data: XOR } /** * Session createMany */ export type SessionCreateManyArgs = { /** * The data used to create many Sessions. */ data: SessionCreateManyInput | SessionCreateManyInput[] skipDuplicates?: boolean } /** * Session createManyAndReturn */ export type SessionCreateManyAndReturnArgs = { /** * Select specific fields to fetch from the Session */ select?: SessionSelectCreateManyAndReturn | null /** * Omit specific fields from the Session */ omit?: SessionOmit | null /** * The data used to create many Sessions. */ data: SessionCreateManyInput | SessionCreateManyInput[] skipDuplicates?: boolean /** * Choose, which related nodes to fetch as well */ include?: SessionIncludeCreateManyAndReturn | null } /** * Session update */ export type SessionUpdateArgs = { /** * Select specific fields to fetch from the Session */ select?: SessionSelect | null /** * Omit specific fields from the Session */ omit?: SessionOmit | null /** * Choose, which related nodes to fetch as well */ include?: SessionInclude | null /** * The data needed to update a Session. */ data: XOR /** * Choose, which Session to update. */ where: SessionWhereUniqueInput } /** * Session updateMany */ export type SessionUpdateManyArgs = { /** * The data used to update Sessions. */ data: XOR /** * Filter which Sessions to update */ where?: SessionWhereInput /** * Limit how many Sessions to update. */ limit?: number } /** * Session updateManyAndReturn */ export type SessionUpdateManyAndReturnArgs = { /** * Select specific fields to fetch from the Session */ select?: SessionSelectUpdateManyAndReturn | null /** * Omit specific fields from the Session */ omit?: SessionOmit | null /** * The data used to update Sessions. */ data: XOR /** * Filter which Sessions to update */ where?: SessionWhereInput /** * Limit how many Sessions to update. */ limit?: number /** * Choose, which related nodes to fetch as well */ include?: SessionIncludeUpdateManyAndReturn | null } /** * Session upsert */ export type SessionUpsertArgs = { /** * Select specific fields to fetch from the Session */ select?: SessionSelect | null /** * Omit specific fields from the Session */ omit?: SessionOmit | null /** * Choose, which related nodes to fetch as well */ include?: SessionInclude | null /** * The filter to search for the Session to update in case it exists. */ where: SessionWhereUniqueInput /** * In case the Session found by the `where` argument doesn't exist, create a new Session with this data. */ create: XOR /** * In case the Session was found with the provided `where` argument, update it with this data. */ update: XOR } /** * Session delete */ export type SessionDeleteArgs = { /** * Select specific fields to fetch from the Session */ select?: SessionSelect | null /** * Omit specific fields from the Session */ omit?: SessionOmit | null /** * Choose, which related nodes to fetch as well */ include?: SessionInclude | null /** * Filter which Session to delete. */ where: SessionWhereUniqueInput } /** * Session deleteMany */ export type SessionDeleteManyArgs = { /** * Filter which Sessions to delete */ where?: SessionWhereInput /** * Limit how many Sessions to delete. */ limit?: number } /** * Session without action */ export type SessionDefaultArgs = { /** * Select specific fields to fetch from the Session */ select?: SessionSelect | null /** * Omit specific fields from the Session */ omit?: SessionOmit | null /** * Choose, which related nodes to fetch as well */ include?: SessionInclude | null } /** * Model VerificationToken */ export type AggregateVerificationToken = { _count: VerificationTokenCountAggregateOutputType | null _min: VerificationTokenMinAggregateOutputType | null _max: VerificationTokenMaxAggregateOutputType | null } export type VerificationTokenMinAggregateOutputType = { identifier: string | null token: string | null expires: Date | null } export type VerificationTokenMaxAggregateOutputType = { identifier: string | null token: string | null expires: Date | null } export type VerificationTokenCountAggregateOutputType = { identifier: number token: number expires: number _all: number } export type VerificationTokenMinAggregateInputType = { identifier?: true token?: true expires?: true } export type VerificationTokenMaxAggregateInputType = { identifier?: true token?: true expires?: true } export type VerificationTokenCountAggregateInputType = { identifier?: true token?: true expires?: true _all?: true } export type VerificationTokenAggregateArgs = { /** * Filter which VerificationToken to aggregate. */ where?: VerificationTokenWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of VerificationTokens to fetch. */ orderBy?: VerificationTokenOrderByWithRelationInput | VerificationTokenOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the start position */ cursor?: VerificationTokenWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` VerificationTokens from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` VerificationTokens. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Count returned VerificationTokens **/ _count?: true | VerificationTokenCountAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the minimum value **/ _min?: VerificationTokenMinAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the maximum value **/ _max?: VerificationTokenMaxAggregateInputType } export type GetVerificationTokenAggregateType = { [P in keyof T & keyof AggregateVerificationToken]: P extends '_count' | 'count' ? T[P] extends true ? number : GetScalarType : GetScalarType } export type VerificationTokenGroupByArgs = { where?: VerificationTokenWhereInput orderBy?: VerificationTokenOrderByWithAggregationInput | VerificationTokenOrderByWithAggregationInput[] by: VerificationTokenScalarFieldEnum[] | VerificationTokenScalarFieldEnum having?: VerificationTokenScalarWhereWithAggregatesInput take?: number skip?: number _count?: VerificationTokenCountAggregateInputType | true _min?: VerificationTokenMinAggregateInputType _max?: VerificationTokenMaxAggregateInputType } export type VerificationTokenGroupByOutputType = { identifier: string token: string expires: Date _count: VerificationTokenCountAggregateOutputType | null _min: VerificationTokenMinAggregateOutputType | null _max: VerificationTokenMaxAggregateOutputType | null } type GetVerificationTokenGroupByPayload = Prisma.PrismaPromise< Array< PickEnumerable & { [P in ((keyof T) & (keyof VerificationTokenGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : GetScalarType : GetScalarType } > > export type VerificationTokenSelect = $Extensions.GetSelect<{ identifier?: boolean token?: boolean expires?: boolean }, ExtArgs["result"]["verificationToken"]> export type VerificationTokenSelectCreateManyAndReturn = $Extensions.GetSelect<{ identifier?: boolean token?: boolean expires?: boolean }, ExtArgs["result"]["verificationToken"]> export type VerificationTokenSelectUpdateManyAndReturn = $Extensions.GetSelect<{ identifier?: boolean token?: boolean expires?: boolean }, ExtArgs["result"]["verificationToken"]> export type VerificationTokenSelectScalar = { identifier?: boolean token?: boolean expires?: boolean } export type VerificationTokenOmit = $Extensions.GetOmit<"identifier" | "token" | "expires", ExtArgs["result"]["verificationToken"]> export type $VerificationTokenPayload = { name: "VerificationToken" objects: {} scalars: $Extensions.GetPayloadResult<{ identifier: string token: string expires: Date }, ExtArgs["result"]["verificationToken"]> composites: {} } type VerificationTokenGetPayload = $Result.GetResult type VerificationTokenCountArgs = Omit & { select?: VerificationTokenCountAggregateInputType | true } export interface VerificationTokenDelegate { [K: symbol]: { types: Prisma.TypeMap['model']['VerificationToken'], meta: { name: 'VerificationToken' } } /** * Find zero or one VerificationToken that matches the filter. * @param {VerificationTokenFindUniqueArgs} args - Arguments to find a VerificationToken * @example * // Get one VerificationToken * const verificationToken = await prisma.verificationToken.findUnique({ * where: { * // ... provide filter here * } * }) */ findUnique(args: SelectSubset>): Prisma__VerificationTokenClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find one VerificationToken that matches the filter or throw an error with `error.code='P2025'` * if no matches were found. * @param {VerificationTokenFindUniqueOrThrowArgs} args - Arguments to find a VerificationToken * @example * // Get one VerificationToken * const verificationToken = await prisma.verificationToken.findUniqueOrThrow({ * where: { * // ... provide filter here * } * }) */ findUniqueOrThrow(args: SelectSubset>): Prisma__VerificationTokenClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find the first VerificationToken that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {VerificationTokenFindFirstArgs} args - Arguments to find a VerificationToken * @example * // Get one VerificationToken * const verificationToken = await prisma.verificationToken.findFirst({ * where: { * // ... provide filter here * } * }) */ findFirst(args?: SelectSubset>): Prisma__VerificationTokenClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find the first VerificationToken that matches the filter or * throw `PrismaKnownClientError` with `P2025` code if no matches were found. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {VerificationTokenFindFirstOrThrowArgs} args - Arguments to find a VerificationToken * @example * // Get one VerificationToken * const verificationToken = await prisma.verificationToken.findFirstOrThrow({ * where: { * // ... provide filter here * } * }) */ findFirstOrThrow(args?: SelectSubset>): Prisma__VerificationTokenClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find zero or more VerificationTokens that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {VerificationTokenFindManyArgs} args - Arguments to filter and select certain fields only. * @example * // Get all VerificationTokens * const verificationTokens = await prisma.verificationToken.findMany() * * // Get first 10 VerificationTokens * const verificationTokens = await prisma.verificationToken.findMany({ take: 10 }) * * // Only select the `identifier` * const verificationTokenWithIdentifierOnly = await prisma.verificationToken.findMany({ select: { identifier: true } }) * */ findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> /** * Create a VerificationToken. * @param {VerificationTokenCreateArgs} args - Arguments to create a VerificationToken. * @example * // Create one VerificationToken * const VerificationToken = await prisma.verificationToken.create({ * data: { * // ... data to create a VerificationToken * } * }) * */ create(args: SelectSubset>): Prisma__VerificationTokenClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Create many VerificationTokens. * @param {VerificationTokenCreateManyArgs} args - Arguments to create many VerificationTokens. * @example * // Create many VerificationTokens * const verificationToken = await prisma.verificationToken.createMany({ * data: [ * // ... provide data here * ] * }) * */ createMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Create many VerificationTokens and returns the data saved in the database. * @param {VerificationTokenCreateManyAndReturnArgs} args - Arguments to create many VerificationTokens. * @example * // Create many VerificationTokens * const verificationToken = await prisma.verificationToken.createManyAndReturn({ * data: [ * // ... provide data here * ] * }) * * // Create many VerificationTokens and only return the `identifier` * const verificationTokenWithIdentifierOnly = await prisma.verificationToken.createManyAndReturn({ * select: { identifier: true }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> /** * Delete a VerificationToken. * @param {VerificationTokenDeleteArgs} args - Arguments to delete one VerificationToken. * @example * // Delete one VerificationToken * const VerificationToken = await prisma.verificationToken.delete({ * where: { * // ... filter to delete one VerificationToken * } * }) * */ delete(args: SelectSubset>): Prisma__VerificationTokenClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Update one VerificationToken. * @param {VerificationTokenUpdateArgs} args - Arguments to update one VerificationToken. * @example * // Update one VerificationToken * const verificationToken = await prisma.verificationToken.update({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ update(args: SelectSubset>): Prisma__VerificationTokenClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Delete zero or more VerificationTokens. * @param {VerificationTokenDeleteManyArgs} args - Arguments to filter VerificationTokens to delete. * @example * // Delete a few VerificationTokens * const { count } = await prisma.verificationToken.deleteMany({ * where: { * // ... provide filter here * } * }) * */ deleteMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more VerificationTokens. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {VerificationTokenUpdateManyArgs} args - Arguments to update one or more rows. * @example * // Update many VerificationTokens * const verificationToken = await prisma.verificationToken.updateMany({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ updateMany(args: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more VerificationTokens and returns the data updated in the database. * @param {VerificationTokenUpdateManyAndReturnArgs} args - Arguments to update many VerificationTokens. * @example * // Update many VerificationTokens * const verificationToken = await prisma.verificationToken.updateManyAndReturn({ * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * * // Update zero or more VerificationTokens and only return the `identifier` * const verificationTokenWithIdentifierOnly = await prisma.verificationToken.updateManyAndReturn({ * select: { identifier: true }, * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> /** * Create or update one VerificationToken. * @param {VerificationTokenUpsertArgs} args - Arguments to update or create a VerificationToken. * @example * // Update or create a VerificationToken * const verificationToken = await prisma.verificationToken.upsert({ * create: { * // ... data to create a VerificationToken * }, * update: { * // ... in case it already exists, update * }, * where: { * // ... the filter for the VerificationToken we want to update * } * }) */ upsert(args: SelectSubset>): Prisma__VerificationTokenClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Count the number of VerificationTokens. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {VerificationTokenCountArgs} args - Arguments to filter VerificationTokens to count. * @example * // Count the number of VerificationTokens * const count = await prisma.verificationToken.count({ * where: { * // ... the filter for the VerificationTokens we want to count * } * }) **/ count( args?: Subset, ): Prisma.PrismaPromise< T extends $Utils.Record<'select', any> ? T['select'] extends true ? number : GetScalarType : number > /** * Allows you to perform aggregations operations on a VerificationToken. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {VerificationTokenAggregateArgs} args - Select which aggregations you would like to apply and on what fields. * @example * // Ordered by age ascending * // Where email contains prisma.io * // Limited to the 10 users * const aggregations = await prisma.user.aggregate({ * _avg: { * age: true, * }, * where: { * email: { * contains: "prisma.io", * }, * }, * orderBy: { * age: "asc", * }, * take: 10, * }) **/ aggregate(args: Subset): Prisma.PrismaPromise> /** * Group by VerificationToken. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {VerificationTokenGroupByArgs} args - Group by arguments. * @example * // Group by city, order by createdAt, get count * const result = await prisma.user.groupBy({ * by: ['city', 'createdAt'], * orderBy: { * createdAt: true * }, * _count: { * _all: true * }, * }) * **/ groupBy< T extends VerificationTokenGroupByArgs, HasSelectOrTake extends Or< Extends<'skip', Keys>, Extends<'take', Keys> >, OrderByArg extends True extends HasSelectOrTake ? { orderBy: VerificationTokenGroupByArgs['orderBy'] } : { orderBy?: VerificationTokenGroupByArgs['orderBy'] }, OrderFields extends ExcludeUnderscoreKeys>>, ByFields extends MaybeTupleToUnion, ByValid extends Has, HavingFields extends GetHavingFields, HavingValid extends Has, ByEmpty extends T['by'] extends never[] ? True : False, InputErrors extends ByEmpty extends True ? `Error: "by" must not be empty.` : HavingValid extends False ? { [P in HavingFields]: P extends ByFields ? never : P extends string ? `Error: Field "${P}" used in "having" needs to be provided in "by".` : [ Error, 'Field ', P, ` in "having" needs to be provided in "by"`, ] }[HavingFields] : 'take' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "take", you also need to provide "orderBy"' : 'skip' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "skip", you also need to provide "orderBy"' : ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetVerificationTokenGroupByPayload : Prisma.PrismaPromise /** * Fields of the VerificationToken model */ readonly fields: VerificationTokenFieldRefs; } /** * The delegate class that acts as a "Promise-like" for VerificationToken. * Why is this prefixed with `Prisma__`? * Because we want to prevent naming conflicts as mentioned in * https://github.com/prisma/prisma-client-js/issues/707 */ export interface Prisma__VerificationTokenClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of which ever callback is executed. */ then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback for only the rejection of the Promise. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of the callback. */ catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The * resolved value cannot be modified from the callback. * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). * @returns A Promise for the completion of the callback. */ finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise } /** * Fields of the VerificationToken model */ interface VerificationTokenFieldRefs { readonly identifier: FieldRef<"VerificationToken", 'String'> readonly token: FieldRef<"VerificationToken", 'String'> readonly expires: FieldRef<"VerificationToken", 'DateTime'> } // Custom InputTypes /** * VerificationToken findUnique */ export type VerificationTokenFindUniqueArgs = { /** * Select specific fields to fetch from the VerificationToken */ select?: VerificationTokenSelect | null /** * Omit specific fields from the VerificationToken */ omit?: VerificationTokenOmit | null /** * Filter, which VerificationToken to fetch. */ where: VerificationTokenWhereUniqueInput } /** * VerificationToken findUniqueOrThrow */ export type VerificationTokenFindUniqueOrThrowArgs = { /** * Select specific fields to fetch from the VerificationToken */ select?: VerificationTokenSelect | null /** * Omit specific fields from the VerificationToken */ omit?: VerificationTokenOmit | null /** * Filter, which VerificationToken to fetch. */ where: VerificationTokenWhereUniqueInput } /** * VerificationToken findFirst */ export type VerificationTokenFindFirstArgs = { /** * Select specific fields to fetch from the VerificationToken */ select?: VerificationTokenSelect | null /** * Omit specific fields from the VerificationToken */ omit?: VerificationTokenOmit | null /** * Filter, which VerificationToken to fetch. */ where?: VerificationTokenWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of VerificationTokens to fetch. */ orderBy?: VerificationTokenOrderByWithRelationInput | VerificationTokenOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for VerificationTokens. */ cursor?: VerificationTokenWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` VerificationTokens from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` VerificationTokens. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of VerificationTokens. */ distinct?: VerificationTokenScalarFieldEnum | VerificationTokenScalarFieldEnum[] } /** * VerificationToken findFirstOrThrow */ export type VerificationTokenFindFirstOrThrowArgs = { /** * Select specific fields to fetch from the VerificationToken */ select?: VerificationTokenSelect | null /** * Omit specific fields from the VerificationToken */ omit?: VerificationTokenOmit | null /** * Filter, which VerificationToken to fetch. */ where?: VerificationTokenWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of VerificationTokens to fetch. */ orderBy?: VerificationTokenOrderByWithRelationInput | VerificationTokenOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for VerificationTokens. */ cursor?: VerificationTokenWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` VerificationTokens from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` VerificationTokens. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of VerificationTokens. */ distinct?: VerificationTokenScalarFieldEnum | VerificationTokenScalarFieldEnum[] } /** * VerificationToken findMany */ export type VerificationTokenFindManyArgs = { /** * Select specific fields to fetch from the VerificationToken */ select?: VerificationTokenSelect | null /** * Omit specific fields from the VerificationToken */ omit?: VerificationTokenOmit | null /** * Filter, which VerificationTokens to fetch. */ where?: VerificationTokenWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of VerificationTokens to fetch. */ orderBy?: VerificationTokenOrderByWithRelationInput | VerificationTokenOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for listing VerificationTokens. */ cursor?: VerificationTokenWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` VerificationTokens from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` VerificationTokens. */ skip?: number distinct?: VerificationTokenScalarFieldEnum | VerificationTokenScalarFieldEnum[] } /** * VerificationToken create */ export type VerificationTokenCreateArgs = { /** * Select specific fields to fetch from the VerificationToken */ select?: VerificationTokenSelect | null /** * Omit specific fields from the VerificationToken */ omit?: VerificationTokenOmit | null /** * The data needed to create a VerificationToken. */ data: XOR } /** * VerificationToken createMany */ export type VerificationTokenCreateManyArgs = { /** * The data used to create many VerificationTokens. */ data: VerificationTokenCreateManyInput | VerificationTokenCreateManyInput[] skipDuplicates?: boolean } /** * VerificationToken createManyAndReturn */ export type VerificationTokenCreateManyAndReturnArgs = { /** * Select specific fields to fetch from the VerificationToken */ select?: VerificationTokenSelectCreateManyAndReturn | null /** * Omit specific fields from the VerificationToken */ omit?: VerificationTokenOmit | null /** * The data used to create many VerificationTokens. */ data: VerificationTokenCreateManyInput | VerificationTokenCreateManyInput[] skipDuplicates?: boolean } /** * VerificationToken update */ export type VerificationTokenUpdateArgs = { /** * Select specific fields to fetch from the VerificationToken */ select?: VerificationTokenSelect | null /** * Omit specific fields from the VerificationToken */ omit?: VerificationTokenOmit | null /** * The data needed to update a VerificationToken. */ data: XOR /** * Choose, which VerificationToken to update. */ where: VerificationTokenWhereUniqueInput } /** * VerificationToken updateMany */ export type VerificationTokenUpdateManyArgs = { /** * The data used to update VerificationTokens. */ data: XOR /** * Filter which VerificationTokens to update */ where?: VerificationTokenWhereInput /** * Limit how many VerificationTokens to update. */ limit?: number } /** * VerificationToken updateManyAndReturn */ export type VerificationTokenUpdateManyAndReturnArgs = { /** * Select specific fields to fetch from the VerificationToken */ select?: VerificationTokenSelectUpdateManyAndReturn | null /** * Omit specific fields from the VerificationToken */ omit?: VerificationTokenOmit | null /** * The data used to update VerificationTokens. */ data: XOR /** * Filter which VerificationTokens to update */ where?: VerificationTokenWhereInput /** * Limit how many VerificationTokens to update. */ limit?: number } /** * VerificationToken upsert */ export type VerificationTokenUpsertArgs = { /** * Select specific fields to fetch from the VerificationToken */ select?: VerificationTokenSelect | null /** * Omit specific fields from the VerificationToken */ omit?: VerificationTokenOmit | null /** * The filter to search for the VerificationToken to update in case it exists. */ where: VerificationTokenWhereUniqueInput /** * In case the VerificationToken found by the `where` argument doesn't exist, create a new VerificationToken with this data. */ create: XOR /** * In case the VerificationToken was found with the provided `where` argument, update it with this data. */ update: XOR } /** * VerificationToken delete */ export type VerificationTokenDeleteArgs = { /** * Select specific fields to fetch from the VerificationToken */ select?: VerificationTokenSelect | null /** * Omit specific fields from the VerificationToken */ omit?: VerificationTokenOmit | null /** * Filter which VerificationToken to delete. */ where: VerificationTokenWhereUniqueInput } /** * VerificationToken deleteMany */ export type VerificationTokenDeleteManyArgs = { /** * Filter which VerificationTokens to delete */ where?: VerificationTokenWhereInput /** * Limit how many VerificationTokens to delete. */ limit?: number } /** * VerificationToken without action */ export type VerificationTokenDefaultArgs = { /** * Select specific fields to fetch from the VerificationToken */ select?: VerificationTokenSelect | null /** * Omit specific fields from the VerificationToken */ omit?: VerificationTokenOmit | null } /** * Model Course */ export type AggregateCourse = { _count: CourseCountAggregateOutputType | null _avg: CourseAvgAggregateOutputType | null _sum: CourseSumAggregateOutputType | null _min: CourseMinAggregateOutputType | null _max: CourseMaxAggregateOutputType | null } export type CourseAvgAggregateOutputType = { order: number | null } export type CourseSumAggregateOutputType = { order: number | null } export type CourseMinAggregateOutputType = { id: string | null slug: string | null category: $Enums.CourseCategory | null level: $Enums.CourseLevel | null thumbnailUrl: string | null published: boolean | null order: number | null createdAt: Date | null titleFr: string | null titleEn: string | null titleEs: string | null descFr: string | null descEn: string | null descEs: string | null } export type CourseMaxAggregateOutputType = { id: string | null slug: string | null category: $Enums.CourseCategory | null level: $Enums.CourseLevel | null thumbnailUrl: string | null published: boolean | null order: number | null createdAt: Date | null titleFr: string | null titleEn: string | null titleEs: string | null descFr: string | null descEn: string | null descEs: string | null } export type CourseCountAggregateOutputType = { id: number slug: number category: number level: number thumbnailUrl: number published: number order: number createdAt: number titleFr: number titleEn: number titleEs: number descFr: number descEn: number descEs: number _all: number } export type CourseAvgAggregateInputType = { order?: true } export type CourseSumAggregateInputType = { order?: true } export type CourseMinAggregateInputType = { id?: true slug?: true category?: true level?: true thumbnailUrl?: true published?: true order?: true createdAt?: true titleFr?: true titleEn?: true titleEs?: true descFr?: true descEn?: true descEs?: true } export type CourseMaxAggregateInputType = { id?: true slug?: true category?: true level?: true thumbnailUrl?: true published?: true order?: true createdAt?: true titleFr?: true titleEn?: true titleEs?: true descFr?: true descEn?: true descEs?: true } export type CourseCountAggregateInputType = { id?: true slug?: true category?: true level?: true thumbnailUrl?: true published?: true order?: true createdAt?: true titleFr?: true titleEn?: true titleEs?: true descFr?: true descEn?: true descEs?: true _all?: true } export type CourseAggregateArgs = { /** * Filter which Course to aggregate. */ where?: CourseWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Courses to fetch. */ orderBy?: CourseOrderByWithRelationInput | CourseOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the start position */ cursor?: CourseWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Courses from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Courses. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Count returned Courses **/ _count?: true | CourseCountAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to average **/ _avg?: CourseAvgAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to sum **/ _sum?: CourseSumAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the minimum value **/ _min?: CourseMinAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the maximum value **/ _max?: CourseMaxAggregateInputType } export type GetCourseAggregateType = { [P in keyof T & keyof AggregateCourse]: P extends '_count' | 'count' ? T[P] extends true ? number : GetScalarType : GetScalarType } export type CourseGroupByArgs = { where?: CourseWhereInput orderBy?: CourseOrderByWithAggregationInput | CourseOrderByWithAggregationInput[] by: CourseScalarFieldEnum[] | CourseScalarFieldEnum having?: CourseScalarWhereWithAggregatesInput take?: number skip?: number _count?: CourseCountAggregateInputType | true _avg?: CourseAvgAggregateInputType _sum?: CourseSumAggregateInputType _min?: CourseMinAggregateInputType _max?: CourseMaxAggregateInputType } export type CourseGroupByOutputType = { id: string slug: string category: $Enums.CourseCategory level: $Enums.CourseLevel thumbnailUrl: string | null published: boolean order: number createdAt: Date titleFr: string titleEn: string titleEs: string descFr: string descEn: string descEs: string _count: CourseCountAggregateOutputType | null _avg: CourseAvgAggregateOutputType | null _sum: CourseSumAggregateOutputType | null _min: CourseMinAggregateOutputType | null _max: CourseMaxAggregateOutputType | null } type GetCourseGroupByPayload = Prisma.PrismaPromise< Array< PickEnumerable & { [P in ((keyof T) & (keyof CourseGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : GetScalarType : GetScalarType } > > export type CourseSelect = $Extensions.GetSelect<{ id?: boolean slug?: boolean category?: boolean level?: boolean thumbnailUrl?: boolean published?: boolean order?: boolean createdAt?: boolean titleFr?: boolean titleEn?: boolean titleEs?: boolean descFr?: boolean descEn?: boolean descEs?: boolean modules?: boolean | Course$modulesArgs enrollments?: boolean | Course$enrollmentsArgs certificates?: boolean | Course$certificatesArgs _count?: boolean | CourseCountOutputTypeDefaultArgs }, ExtArgs["result"]["course"]> export type CourseSelectCreateManyAndReturn = $Extensions.GetSelect<{ id?: boolean slug?: boolean category?: boolean level?: boolean thumbnailUrl?: boolean published?: boolean order?: boolean createdAt?: boolean titleFr?: boolean titleEn?: boolean titleEs?: boolean descFr?: boolean descEn?: boolean descEs?: boolean }, ExtArgs["result"]["course"]> export type CourseSelectUpdateManyAndReturn = $Extensions.GetSelect<{ id?: boolean slug?: boolean category?: boolean level?: boolean thumbnailUrl?: boolean published?: boolean order?: boolean createdAt?: boolean titleFr?: boolean titleEn?: boolean titleEs?: boolean descFr?: boolean descEn?: boolean descEs?: boolean }, ExtArgs["result"]["course"]> export type CourseSelectScalar = { id?: boolean slug?: boolean category?: boolean level?: boolean thumbnailUrl?: boolean published?: boolean order?: boolean createdAt?: boolean titleFr?: boolean titleEn?: boolean titleEs?: boolean descFr?: boolean descEn?: boolean descEs?: boolean } export type CourseOmit = $Extensions.GetOmit<"id" | "slug" | "category" | "level" | "thumbnailUrl" | "published" | "order" | "createdAt" | "titleFr" | "titleEn" | "titleEs" | "descFr" | "descEn" | "descEs", ExtArgs["result"]["course"]> export type CourseInclude = { modules?: boolean | Course$modulesArgs enrollments?: boolean | Course$enrollmentsArgs certificates?: boolean | Course$certificatesArgs _count?: boolean | CourseCountOutputTypeDefaultArgs } export type CourseIncludeCreateManyAndReturn = {} export type CourseIncludeUpdateManyAndReturn = {} export type $CoursePayload = { name: "Course" objects: { modules: Prisma.$ModulePayload[] enrollments: Prisma.$EnrollmentPayload[] certificates: Prisma.$CertificatePayload[] } scalars: $Extensions.GetPayloadResult<{ id: string slug: string category: $Enums.CourseCategory level: $Enums.CourseLevel thumbnailUrl: string | null published: boolean order: number createdAt: Date titleFr: string titleEn: string titleEs: string descFr: string descEn: string descEs: string }, ExtArgs["result"]["course"]> composites: {} } type CourseGetPayload = $Result.GetResult type CourseCountArgs = Omit & { select?: CourseCountAggregateInputType | true } export interface CourseDelegate { [K: symbol]: { types: Prisma.TypeMap['model']['Course'], meta: { name: 'Course' } } /** * Find zero or one Course that matches the filter. * @param {CourseFindUniqueArgs} args - Arguments to find a Course * @example * // Get one Course * const course = await prisma.course.findUnique({ * where: { * // ... provide filter here * } * }) */ findUnique(args: SelectSubset>): Prisma__CourseClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find one Course that matches the filter or throw an error with `error.code='P2025'` * if no matches were found. * @param {CourseFindUniqueOrThrowArgs} args - Arguments to find a Course * @example * // Get one Course * const course = await prisma.course.findUniqueOrThrow({ * where: { * // ... provide filter here * } * }) */ findUniqueOrThrow(args: SelectSubset>): Prisma__CourseClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find the first Course that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {CourseFindFirstArgs} args - Arguments to find a Course * @example * // Get one Course * const course = await prisma.course.findFirst({ * where: { * // ... provide filter here * } * }) */ findFirst(args?: SelectSubset>): Prisma__CourseClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find the first Course that matches the filter or * throw `PrismaKnownClientError` with `P2025` code if no matches were found. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {CourseFindFirstOrThrowArgs} args - Arguments to find a Course * @example * // Get one Course * const course = await prisma.course.findFirstOrThrow({ * where: { * // ... provide filter here * } * }) */ findFirstOrThrow(args?: SelectSubset>): Prisma__CourseClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find zero or more Courses that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {CourseFindManyArgs} args - Arguments to filter and select certain fields only. * @example * // Get all Courses * const courses = await prisma.course.findMany() * * // Get first 10 Courses * const courses = await prisma.course.findMany({ take: 10 }) * * // Only select the `id` * const courseWithIdOnly = await prisma.course.findMany({ select: { id: true } }) * */ findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> /** * Create a Course. * @param {CourseCreateArgs} args - Arguments to create a Course. * @example * // Create one Course * const Course = await prisma.course.create({ * data: { * // ... data to create a Course * } * }) * */ create(args: SelectSubset>): Prisma__CourseClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Create many Courses. * @param {CourseCreateManyArgs} args - Arguments to create many Courses. * @example * // Create many Courses * const course = await prisma.course.createMany({ * data: [ * // ... provide data here * ] * }) * */ createMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Create many Courses and returns the data saved in the database. * @param {CourseCreateManyAndReturnArgs} args - Arguments to create many Courses. * @example * // Create many Courses * const course = await prisma.course.createManyAndReturn({ * data: [ * // ... provide data here * ] * }) * * // Create many Courses and only return the `id` * const courseWithIdOnly = await prisma.course.createManyAndReturn({ * select: { id: true }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> /** * Delete a Course. * @param {CourseDeleteArgs} args - Arguments to delete one Course. * @example * // Delete one Course * const Course = await prisma.course.delete({ * where: { * // ... filter to delete one Course * } * }) * */ delete(args: SelectSubset>): Prisma__CourseClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Update one Course. * @param {CourseUpdateArgs} args - Arguments to update one Course. * @example * // Update one Course * const course = await prisma.course.update({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ update(args: SelectSubset>): Prisma__CourseClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Delete zero or more Courses. * @param {CourseDeleteManyArgs} args - Arguments to filter Courses to delete. * @example * // Delete a few Courses * const { count } = await prisma.course.deleteMany({ * where: { * // ... provide filter here * } * }) * */ deleteMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Courses. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {CourseUpdateManyArgs} args - Arguments to update one or more rows. * @example * // Update many Courses * const course = await prisma.course.updateMany({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ updateMany(args: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Courses and returns the data updated in the database. * @param {CourseUpdateManyAndReturnArgs} args - Arguments to update many Courses. * @example * // Update many Courses * const course = await prisma.course.updateManyAndReturn({ * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * * // Update zero or more Courses and only return the `id` * const courseWithIdOnly = await prisma.course.updateManyAndReturn({ * select: { id: true }, * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> /** * Create or update one Course. * @param {CourseUpsertArgs} args - Arguments to update or create a Course. * @example * // Update or create a Course * const course = await prisma.course.upsert({ * create: { * // ... data to create a Course * }, * update: { * // ... in case it already exists, update * }, * where: { * // ... the filter for the Course we want to update * } * }) */ upsert(args: SelectSubset>): Prisma__CourseClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Count the number of Courses. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {CourseCountArgs} args - Arguments to filter Courses to count. * @example * // Count the number of Courses * const count = await prisma.course.count({ * where: { * // ... the filter for the Courses we want to count * } * }) **/ count( args?: Subset, ): Prisma.PrismaPromise< T extends $Utils.Record<'select', any> ? T['select'] extends true ? number : GetScalarType : number > /** * Allows you to perform aggregations operations on a Course. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {CourseAggregateArgs} args - Select which aggregations you would like to apply and on what fields. * @example * // Ordered by age ascending * // Where email contains prisma.io * // Limited to the 10 users * const aggregations = await prisma.user.aggregate({ * _avg: { * age: true, * }, * where: { * email: { * contains: "prisma.io", * }, * }, * orderBy: { * age: "asc", * }, * take: 10, * }) **/ aggregate(args: Subset): Prisma.PrismaPromise> /** * Group by Course. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {CourseGroupByArgs} args - Group by arguments. * @example * // Group by city, order by createdAt, get count * const result = await prisma.user.groupBy({ * by: ['city', 'createdAt'], * orderBy: { * createdAt: true * }, * _count: { * _all: true * }, * }) * **/ groupBy< T extends CourseGroupByArgs, HasSelectOrTake extends Or< Extends<'skip', Keys>, Extends<'take', Keys> >, OrderByArg extends True extends HasSelectOrTake ? { orderBy: CourseGroupByArgs['orderBy'] } : { orderBy?: CourseGroupByArgs['orderBy'] }, OrderFields extends ExcludeUnderscoreKeys>>, ByFields extends MaybeTupleToUnion, ByValid extends Has, HavingFields extends GetHavingFields, HavingValid extends Has, ByEmpty extends T['by'] extends never[] ? True : False, InputErrors extends ByEmpty extends True ? `Error: "by" must not be empty.` : HavingValid extends False ? { [P in HavingFields]: P extends ByFields ? never : P extends string ? `Error: Field "${P}" used in "having" needs to be provided in "by".` : [ Error, 'Field ', P, ` in "having" needs to be provided in "by"`, ] }[HavingFields] : 'take' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "take", you also need to provide "orderBy"' : 'skip' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "skip", you also need to provide "orderBy"' : ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetCourseGroupByPayload : Prisma.PrismaPromise /** * Fields of the Course model */ readonly fields: CourseFieldRefs; } /** * The delegate class that acts as a "Promise-like" for Course. * Why is this prefixed with `Prisma__`? * Because we want to prevent naming conflicts as mentioned in * https://github.com/prisma/prisma-client-js/issues/707 */ export interface Prisma__CourseClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" modules = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> enrollments = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> certificates = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of which ever callback is executed. */ then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback for only the rejection of the Promise. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of the callback. */ catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The * resolved value cannot be modified from the callback. * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). * @returns A Promise for the completion of the callback. */ finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise } /** * Fields of the Course model */ interface CourseFieldRefs { readonly id: FieldRef<"Course", 'String'> readonly slug: FieldRef<"Course", 'String'> readonly category: FieldRef<"Course", 'CourseCategory'> readonly level: FieldRef<"Course", 'CourseLevel'> readonly thumbnailUrl: FieldRef<"Course", 'String'> readonly published: FieldRef<"Course", 'Boolean'> readonly order: FieldRef<"Course", 'Int'> readonly createdAt: FieldRef<"Course", 'DateTime'> readonly titleFr: FieldRef<"Course", 'String'> readonly titleEn: FieldRef<"Course", 'String'> readonly titleEs: FieldRef<"Course", 'String'> readonly descFr: FieldRef<"Course", 'String'> readonly descEn: FieldRef<"Course", 'String'> readonly descEs: FieldRef<"Course", 'String'> } // Custom InputTypes /** * Course findUnique */ export type CourseFindUniqueArgs = { /** * Select specific fields to fetch from the Course */ select?: CourseSelect | null /** * Omit specific fields from the Course */ omit?: CourseOmit | null /** * Choose, which related nodes to fetch as well */ include?: CourseInclude | null /** * Filter, which Course to fetch. */ where: CourseWhereUniqueInput } /** * Course findUniqueOrThrow */ export type CourseFindUniqueOrThrowArgs = { /** * Select specific fields to fetch from the Course */ select?: CourseSelect | null /** * Omit specific fields from the Course */ omit?: CourseOmit | null /** * Choose, which related nodes to fetch as well */ include?: CourseInclude | null /** * Filter, which Course to fetch. */ where: CourseWhereUniqueInput } /** * Course findFirst */ export type CourseFindFirstArgs = { /** * Select specific fields to fetch from the Course */ select?: CourseSelect | null /** * Omit specific fields from the Course */ omit?: CourseOmit | null /** * Choose, which related nodes to fetch as well */ include?: CourseInclude | null /** * Filter, which Course to fetch. */ where?: CourseWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Courses to fetch. */ orderBy?: CourseOrderByWithRelationInput | CourseOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Courses. */ cursor?: CourseWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Courses from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Courses. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Courses. */ distinct?: CourseScalarFieldEnum | CourseScalarFieldEnum[] } /** * Course findFirstOrThrow */ export type CourseFindFirstOrThrowArgs = { /** * Select specific fields to fetch from the Course */ select?: CourseSelect | null /** * Omit specific fields from the Course */ omit?: CourseOmit | null /** * Choose, which related nodes to fetch as well */ include?: CourseInclude | null /** * Filter, which Course to fetch. */ where?: CourseWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Courses to fetch. */ orderBy?: CourseOrderByWithRelationInput | CourseOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Courses. */ cursor?: CourseWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Courses from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Courses. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Courses. */ distinct?: CourseScalarFieldEnum | CourseScalarFieldEnum[] } /** * Course findMany */ export type CourseFindManyArgs = { /** * Select specific fields to fetch from the Course */ select?: CourseSelect | null /** * Omit specific fields from the Course */ omit?: CourseOmit | null /** * Choose, which related nodes to fetch as well */ include?: CourseInclude | null /** * Filter, which Courses to fetch. */ where?: CourseWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Courses to fetch. */ orderBy?: CourseOrderByWithRelationInput | CourseOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for listing Courses. */ cursor?: CourseWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Courses from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Courses. */ skip?: number distinct?: CourseScalarFieldEnum | CourseScalarFieldEnum[] } /** * Course create */ export type CourseCreateArgs = { /** * Select specific fields to fetch from the Course */ select?: CourseSelect | null /** * Omit specific fields from the Course */ omit?: CourseOmit | null /** * Choose, which related nodes to fetch as well */ include?: CourseInclude | null /** * The data needed to create a Course. */ data: XOR } /** * Course createMany */ export type CourseCreateManyArgs = { /** * The data used to create many Courses. */ data: CourseCreateManyInput | CourseCreateManyInput[] skipDuplicates?: boolean } /** * Course createManyAndReturn */ export type CourseCreateManyAndReturnArgs = { /** * Select specific fields to fetch from the Course */ select?: CourseSelectCreateManyAndReturn | null /** * Omit specific fields from the Course */ omit?: CourseOmit | null /** * The data used to create many Courses. */ data: CourseCreateManyInput | CourseCreateManyInput[] skipDuplicates?: boolean } /** * Course update */ export type CourseUpdateArgs = { /** * Select specific fields to fetch from the Course */ select?: CourseSelect | null /** * Omit specific fields from the Course */ omit?: CourseOmit | null /** * Choose, which related nodes to fetch as well */ include?: CourseInclude | null /** * The data needed to update a Course. */ data: XOR /** * Choose, which Course to update. */ where: CourseWhereUniqueInput } /** * Course updateMany */ export type CourseUpdateManyArgs = { /** * The data used to update Courses. */ data: XOR /** * Filter which Courses to update */ where?: CourseWhereInput /** * Limit how many Courses to update. */ limit?: number } /** * Course updateManyAndReturn */ export type CourseUpdateManyAndReturnArgs = { /** * Select specific fields to fetch from the Course */ select?: CourseSelectUpdateManyAndReturn | null /** * Omit specific fields from the Course */ omit?: CourseOmit | null /** * The data used to update Courses. */ data: XOR /** * Filter which Courses to update */ where?: CourseWhereInput /** * Limit how many Courses to update. */ limit?: number } /** * Course upsert */ export type CourseUpsertArgs = { /** * Select specific fields to fetch from the Course */ select?: CourseSelect | null /** * Omit specific fields from the Course */ omit?: CourseOmit | null /** * Choose, which related nodes to fetch as well */ include?: CourseInclude | null /** * The filter to search for the Course to update in case it exists. */ where: CourseWhereUniqueInput /** * In case the Course found by the `where` argument doesn't exist, create a new Course with this data. */ create: XOR /** * In case the Course was found with the provided `where` argument, update it with this data. */ update: XOR } /** * Course delete */ export type CourseDeleteArgs = { /** * Select specific fields to fetch from the Course */ select?: CourseSelect | null /** * Omit specific fields from the Course */ omit?: CourseOmit | null /** * Choose, which related nodes to fetch as well */ include?: CourseInclude | null /** * Filter which Course to delete. */ where: CourseWhereUniqueInput } /** * Course deleteMany */ export type CourseDeleteManyArgs = { /** * Filter which Courses to delete */ where?: CourseWhereInput /** * Limit how many Courses to delete. */ limit?: number } /** * Course.modules */ export type Course$modulesArgs = { /** * Select specific fields to fetch from the Module */ select?: ModuleSelect | null /** * Omit specific fields from the Module */ omit?: ModuleOmit | null /** * Choose, which related nodes to fetch as well */ include?: ModuleInclude | null where?: ModuleWhereInput orderBy?: ModuleOrderByWithRelationInput | ModuleOrderByWithRelationInput[] cursor?: ModuleWhereUniqueInput take?: number skip?: number distinct?: ModuleScalarFieldEnum | ModuleScalarFieldEnum[] } /** * Course.enrollments */ export type Course$enrollmentsArgs = { /** * Select specific fields to fetch from the Enrollment */ select?: EnrollmentSelect | null /** * Omit specific fields from the Enrollment */ omit?: EnrollmentOmit | null /** * Choose, which related nodes to fetch as well */ include?: EnrollmentInclude | null where?: EnrollmentWhereInput orderBy?: EnrollmentOrderByWithRelationInput | EnrollmentOrderByWithRelationInput[] cursor?: EnrollmentWhereUniqueInput take?: number skip?: number distinct?: EnrollmentScalarFieldEnum | EnrollmentScalarFieldEnum[] } /** * Course.certificates */ export type Course$certificatesArgs = { /** * Select specific fields to fetch from the Certificate */ select?: CertificateSelect | null /** * Omit specific fields from the Certificate */ omit?: CertificateOmit | null /** * Choose, which related nodes to fetch as well */ include?: CertificateInclude | null where?: CertificateWhereInput orderBy?: CertificateOrderByWithRelationInput | CertificateOrderByWithRelationInput[] cursor?: CertificateWhereUniqueInput take?: number skip?: number distinct?: CertificateScalarFieldEnum | CertificateScalarFieldEnum[] } /** * Course without action */ export type CourseDefaultArgs = { /** * Select specific fields to fetch from the Course */ select?: CourseSelect | null /** * Omit specific fields from the Course */ omit?: CourseOmit | null /** * Choose, which related nodes to fetch as well */ include?: CourseInclude | null } /** * Model Module */ export type AggregateModule = { _count: ModuleCountAggregateOutputType | null _avg: ModuleAvgAggregateOutputType | null _sum: ModuleSumAggregateOutputType | null _min: ModuleMinAggregateOutputType | null _max: ModuleMaxAggregateOutputType | null } export type ModuleAvgAggregateOutputType = { order: number | null } export type ModuleSumAggregateOutputType = { order: number | null } export type ModuleMinAggregateOutputType = { id: string | null courseId: string | null order: number | null titleFr: string | null titleEn: string | null titleEs: string | null } export type ModuleMaxAggregateOutputType = { id: string | null courseId: string | null order: number | null titleFr: string | null titleEn: string | null titleEs: string | null } export type ModuleCountAggregateOutputType = { id: number courseId: number order: number titleFr: number titleEn: number titleEs: number _all: number } export type ModuleAvgAggregateInputType = { order?: true } export type ModuleSumAggregateInputType = { order?: true } export type ModuleMinAggregateInputType = { id?: true courseId?: true order?: true titleFr?: true titleEn?: true titleEs?: true } export type ModuleMaxAggregateInputType = { id?: true courseId?: true order?: true titleFr?: true titleEn?: true titleEs?: true } export type ModuleCountAggregateInputType = { id?: true courseId?: true order?: true titleFr?: true titleEn?: true titleEs?: true _all?: true } export type ModuleAggregateArgs = { /** * Filter which Module to aggregate. */ where?: ModuleWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Modules to fetch. */ orderBy?: ModuleOrderByWithRelationInput | ModuleOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the start position */ cursor?: ModuleWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Modules from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Modules. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Count returned Modules **/ _count?: true | ModuleCountAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to average **/ _avg?: ModuleAvgAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to sum **/ _sum?: ModuleSumAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the minimum value **/ _min?: ModuleMinAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the maximum value **/ _max?: ModuleMaxAggregateInputType } export type GetModuleAggregateType = { [P in keyof T & keyof AggregateModule]: P extends '_count' | 'count' ? T[P] extends true ? number : GetScalarType : GetScalarType } export type ModuleGroupByArgs = { where?: ModuleWhereInput orderBy?: ModuleOrderByWithAggregationInput | ModuleOrderByWithAggregationInput[] by: ModuleScalarFieldEnum[] | ModuleScalarFieldEnum having?: ModuleScalarWhereWithAggregatesInput take?: number skip?: number _count?: ModuleCountAggregateInputType | true _avg?: ModuleAvgAggregateInputType _sum?: ModuleSumAggregateInputType _min?: ModuleMinAggregateInputType _max?: ModuleMaxAggregateInputType } export type ModuleGroupByOutputType = { id: string courseId: string order: number titleFr: string titleEn: string titleEs: string _count: ModuleCountAggregateOutputType | null _avg: ModuleAvgAggregateOutputType | null _sum: ModuleSumAggregateOutputType | null _min: ModuleMinAggregateOutputType | null _max: ModuleMaxAggregateOutputType | null } type GetModuleGroupByPayload = Prisma.PrismaPromise< Array< PickEnumerable & { [P in ((keyof T) & (keyof ModuleGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : GetScalarType : GetScalarType } > > export type ModuleSelect = $Extensions.GetSelect<{ id?: boolean courseId?: boolean order?: boolean titleFr?: boolean titleEn?: boolean titleEs?: boolean course?: boolean | CourseDefaultArgs lessons?: boolean | Module$lessonsArgs quiz?: boolean | Module$quizArgs _count?: boolean | ModuleCountOutputTypeDefaultArgs }, ExtArgs["result"]["module"]> export type ModuleSelectCreateManyAndReturn = $Extensions.GetSelect<{ id?: boolean courseId?: boolean order?: boolean titleFr?: boolean titleEn?: boolean titleEs?: boolean course?: boolean | CourseDefaultArgs }, ExtArgs["result"]["module"]> export type ModuleSelectUpdateManyAndReturn = $Extensions.GetSelect<{ id?: boolean courseId?: boolean order?: boolean titleFr?: boolean titleEn?: boolean titleEs?: boolean course?: boolean | CourseDefaultArgs }, ExtArgs["result"]["module"]> export type ModuleSelectScalar = { id?: boolean courseId?: boolean order?: boolean titleFr?: boolean titleEn?: boolean titleEs?: boolean } export type ModuleOmit = $Extensions.GetOmit<"id" | "courseId" | "order" | "titleFr" | "titleEn" | "titleEs", ExtArgs["result"]["module"]> export type ModuleInclude = { course?: boolean | CourseDefaultArgs lessons?: boolean | Module$lessonsArgs quiz?: boolean | Module$quizArgs _count?: boolean | ModuleCountOutputTypeDefaultArgs } export type ModuleIncludeCreateManyAndReturn = { course?: boolean | CourseDefaultArgs } export type ModuleIncludeUpdateManyAndReturn = { course?: boolean | CourseDefaultArgs } export type $ModulePayload = { name: "Module" objects: { course: Prisma.$CoursePayload lessons: Prisma.$LessonPayload[] quiz: Prisma.$QuizPayload | null } scalars: $Extensions.GetPayloadResult<{ id: string courseId: string order: number titleFr: string titleEn: string titleEs: string }, ExtArgs["result"]["module"]> composites: {} } type ModuleGetPayload = $Result.GetResult type ModuleCountArgs = Omit & { select?: ModuleCountAggregateInputType | true } export interface ModuleDelegate { [K: symbol]: { types: Prisma.TypeMap['model']['Module'], meta: { name: 'Module' } } /** * Find zero or one Module that matches the filter. * @param {ModuleFindUniqueArgs} args - Arguments to find a Module * @example * // Get one Module * const module = await prisma.module.findUnique({ * where: { * // ... provide filter here * } * }) */ findUnique(args: SelectSubset>): Prisma__ModuleClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find one Module that matches the filter or throw an error with `error.code='P2025'` * if no matches were found. * @param {ModuleFindUniqueOrThrowArgs} args - Arguments to find a Module * @example * // Get one Module * const module = await prisma.module.findUniqueOrThrow({ * where: { * // ... provide filter here * } * }) */ findUniqueOrThrow(args: SelectSubset>): Prisma__ModuleClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find the first Module that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {ModuleFindFirstArgs} args - Arguments to find a Module * @example * // Get one Module * const module = await prisma.module.findFirst({ * where: { * // ... provide filter here * } * }) */ findFirst(args?: SelectSubset>): Prisma__ModuleClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find the first Module that matches the filter or * throw `PrismaKnownClientError` with `P2025` code if no matches were found. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {ModuleFindFirstOrThrowArgs} args - Arguments to find a Module * @example * // Get one Module * const module = await prisma.module.findFirstOrThrow({ * where: { * // ... provide filter here * } * }) */ findFirstOrThrow(args?: SelectSubset>): Prisma__ModuleClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find zero or more Modules that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {ModuleFindManyArgs} args - Arguments to filter and select certain fields only. * @example * // Get all Modules * const modules = await prisma.module.findMany() * * // Get first 10 Modules * const modules = await prisma.module.findMany({ take: 10 }) * * // Only select the `id` * const moduleWithIdOnly = await prisma.module.findMany({ select: { id: true } }) * */ findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> /** * Create a Module. * @param {ModuleCreateArgs} args - Arguments to create a Module. * @example * // Create one Module * const Module = await prisma.module.create({ * data: { * // ... data to create a Module * } * }) * */ create(args: SelectSubset>): Prisma__ModuleClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Create many Modules. * @param {ModuleCreateManyArgs} args - Arguments to create many Modules. * @example * // Create many Modules * const module = await prisma.module.createMany({ * data: [ * // ... provide data here * ] * }) * */ createMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Create many Modules and returns the data saved in the database. * @param {ModuleCreateManyAndReturnArgs} args - Arguments to create many Modules. * @example * // Create many Modules * const module = await prisma.module.createManyAndReturn({ * data: [ * // ... provide data here * ] * }) * * // Create many Modules and only return the `id` * const moduleWithIdOnly = await prisma.module.createManyAndReturn({ * select: { id: true }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> /** * Delete a Module. * @param {ModuleDeleteArgs} args - Arguments to delete one Module. * @example * // Delete one Module * const Module = await prisma.module.delete({ * where: { * // ... filter to delete one Module * } * }) * */ delete(args: SelectSubset>): Prisma__ModuleClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Update one Module. * @param {ModuleUpdateArgs} args - Arguments to update one Module. * @example * // Update one Module * const module = await prisma.module.update({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ update(args: SelectSubset>): Prisma__ModuleClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Delete zero or more Modules. * @param {ModuleDeleteManyArgs} args - Arguments to filter Modules to delete. * @example * // Delete a few Modules * const { count } = await prisma.module.deleteMany({ * where: { * // ... provide filter here * } * }) * */ deleteMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Modules. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {ModuleUpdateManyArgs} args - Arguments to update one or more rows. * @example * // Update many Modules * const module = await prisma.module.updateMany({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ updateMany(args: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Modules and returns the data updated in the database. * @param {ModuleUpdateManyAndReturnArgs} args - Arguments to update many Modules. * @example * // Update many Modules * const module = await prisma.module.updateManyAndReturn({ * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * * // Update zero or more Modules and only return the `id` * const moduleWithIdOnly = await prisma.module.updateManyAndReturn({ * select: { id: true }, * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> /** * Create or update one Module. * @param {ModuleUpsertArgs} args - Arguments to update or create a Module. * @example * // Update or create a Module * const module = await prisma.module.upsert({ * create: { * // ... data to create a Module * }, * update: { * // ... in case it already exists, update * }, * where: { * // ... the filter for the Module we want to update * } * }) */ upsert(args: SelectSubset>): Prisma__ModuleClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Count the number of Modules. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {ModuleCountArgs} args - Arguments to filter Modules to count. * @example * // Count the number of Modules * const count = await prisma.module.count({ * where: { * // ... the filter for the Modules we want to count * } * }) **/ count( args?: Subset, ): Prisma.PrismaPromise< T extends $Utils.Record<'select', any> ? T['select'] extends true ? number : GetScalarType : number > /** * Allows you to perform aggregations operations on a Module. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {ModuleAggregateArgs} args - Select which aggregations you would like to apply and on what fields. * @example * // Ordered by age ascending * // Where email contains prisma.io * // Limited to the 10 users * const aggregations = await prisma.user.aggregate({ * _avg: { * age: true, * }, * where: { * email: { * contains: "prisma.io", * }, * }, * orderBy: { * age: "asc", * }, * take: 10, * }) **/ aggregate(args: Subset): Prisma.PrismaPromise> /** * Group by Module. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {ModuleGroupByArgs} args - Group by arguments. * @example * // Group by city, order by createdAt, get count * const result = await prisma.user.groupBy({ * by: ['city', 'createdAt'], * orderBy: { * createdAt: true * }, * _count: { * _all: true * }, * }) * **/ groupBy< T extends ModuleGroupByArgs, HasSelectOrTake extends Or< Extends<'skip', Keys>, Extends<'take', Keys> >, OrderByArg extends True extends HasSelectOrTake ? { orderBy: ModuleGroupByArgs['orderBy'] } : { orderBy?: ModuleGroupByArgs['orderBy'] }, OrderFields extends ExcludeUnderscoreKeys>>, ByFields extends MaybeTupleToUnion, ByValid extends Has, HavingFields extends GetHavingFields, HavingValid extends Has, ByEmpty extends T['by'] extends never[] ? True : False, InputErrors extends ByEmpty extends True ? `Error: "by" must not be empty.` : HavingValid extends False ? { [P in HavingFields]: P extends ByFields ? never : P extends string ? `Error: Field "${P}" used in "having" needs to be provided in "by".` : [ Error, 'Field ', P, ` in "having" needs to be provided in "by"`, ] }[HavingFields] : 'take' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "take", you also need to provide "orderBy"' : 'skip' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "skip", you also need to provide "orderBy"' : ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetModuleGroupByPayload : Prisma.PrismaPromise /** * Fields of the Module model */ readonly fields: ModuleFieldRefs; } /** * The delegate class that acts as a "Promise-like" for Module. * Why is this prefixed with `Prisma__`? * Because we want to prevent naming conflicts as mentioned in * https://github.com/prisma/prisma-client-js/issues/707 */ export interface Prisma__ModuleClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" course = {}>(args?: Subset>): Prisma__CourseClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> lessons = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> quiz = {}>(args?: Subset>): Prisma__QuizClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of which ever callback is executed. */ then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback for only the rejection of the Promise. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of the callback. */ catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The * resolved value cannot be modified from the callback. * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). * @returns A Promise for the completion of the callback. */ finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise } /** * Fields of the Module model */ interface ModuleFieldRefs { readonly id: FieldRef<"Module", 'String'> readonly courseId: FieldRef<"Module", 'String'> readonly order: FieldRef<"Module", 'Int'> readonly titleFr: FieldRef<"Module", 'String'> readonly titleEn: FieldRef<"Module", 'String'> readonly titleEs: FieldRef<"Module", 'String'> } // Custom InputTypes /** * Module findUnique */ export type ModuleFindUniqueArgs = { /** * Select specific fields to fetch from the Module */ select?: ModuleSelect | null /** * Omit specific fields from the Module */ omit?: ModuleOmit | null /** * Choose, which related nodes to fetch as well */ include?: ModuleInclude | null /** * Filter, which Module to fetch. */ where: ModuleWhereUniqueInput } /** * Module findUniqueOrThrow */ export type ModuleFindUniqueOrThrowArgs = { /** * Select specific fields to fetch from the Module */ select?: ModuleSelect | null /** * Omit specific fields from the Module */ omit?: ModuleOmit | null /** * Choose, which related nodes to fetch as well */ include?: ModuleInclude | null /** * Filter, which Module to fetch. */ where: ModuleWhereUniqueInput } /** * Module findFirst */ export type ModuleFindFirstArgs = { /** * Select specific fields to fetch from the Module */ select?: ModuleSelect | null /** * Omit specific fields from the Module */ omit?: ModuleOmit | null /** * Choose, which related nodes to fetch as well */ include?: ModuleInclude | null /** * Filter, which Module to fetch. */ where?: ModuleWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Modules to fetch. */ orderBy?: ModuleOrderByWithRelationInput | ModuleOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Modules. */ cursor?: ModuleWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Modules from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Modules. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Modules. */ distinct?: ModuleScalarFieldEnum | ModuleScalarFieldEnum[] } /** * Module findFirstOrThrow */ export type ModuleFindFirstOrThrowArgs = { /** * Select specific fields to fetch from the Module */ select?: ModuleSelect | null /** * Omit specific fields from the Module */ omit?: ModuleOmit | null /** * Choose, which related nodes to fetch as well */ include?: ModuleInclude | null /** * Filter, which Module to fetch. */ where?: ModuleWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Modules to fetch. */ orderBy?: ModuleOrderByWithRelationInput | ModuleOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Modules. */ cursor?: ModuleWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Modules from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Modules. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Modules. */ distinct?: ModuleScalarFieldEnum | ModuleScalarFieldEnum[] } /** * Module findMany */ export type ModuleFindManyArgs = { /** * Select specific fields to fetch from the Module */ select?: ModuleSelect | null /** * Omit specific fields from the Module */ omit?: ModuleOmit | null /** * Choose, which related nodes to fetch as well */ include?: ModuleInclude | null /** * Filter, which Modules to fetch. */ where?: ModuleWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Modules to fetch. */ orderBy?: ModuleOrderByWithRelationInput | ModuleOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for listing Modules. */ cursor?: ModuleWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Modules from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Modules. */ skip?: number distinct?: ModuleScalarFieldEnum | ModuleScalarFieldEnum[] } /** * Module create */ export type ModuleCreateArgs = { /** * Select specific fields to fetch from the Module */ select?: ModuleSelect | null /** * Omit specific fields from the Module */ omit?: ModuleOmit | null /** * Choose, which related nodes to fetch as well */ include?: ModuleInclude | null /** * The data needed to create a Module. */ data: XOR } /** * Module createMany */ export type ModuleCreateManyArgs = { /** * The data used to create many Modules. */ data: ModuleCreateManyInput | ModuleCreateManyInput[] skipDuplicates?: boolean } /** * Module createManyAndReturn */ export type ModuleCreateManyAndReturnArgs = { /** * Select specific fields to fetch from the Module */ select?: ModuleSelectCreateManyAndReturn | null /** * Omit specific fields from the Module */ omit?: ModuleOmit | null /** * The data used to create many Modules. */ data: ModuleCreateManyInput | ModuleCreateManyInput[] skipDuplicates?: boolean /** * Choose, which related nodes to fetch as well */ include?: ModuleIncludeCreateManyAndReturn | null } /** * Module update */ export type ModuleUpdateArgs = { /** * Select specific fields to fetch from the Module */ select?: ModuleSelect | null /** * Omit specific fields from the Module */ omit?: ModuleOmit | null /** * Choose, which related nodes to fetch as well */ include?: ModuleInclude | null /** * The data needed to update a Module. */ data: XOR /** * Choose, which Module to update. */ where: ModuleWhereUniqueInput } /** * Module updateMany */ export type ModuleUpdateManyArgs = { /** * The data used to update Modules. */ data: XOR /** * Filter which Modules to update */ where?: ModuleWhereInput /** * Limit how many Modules to update. */ limit?: number } /** * Module updateManyAndReturn */ export type ModuleUpdateManyAndReturnArgs = { /** * Select specific fields to fetch from the Module */ select?: ModuleSelectUpdateManyAndReturn | null /** * Omit specific fields from the Module */ omit?: ModuleOmit | null /** * The data used to update Modules. */ data: XOR /** * Filter which Modules to update */ where?: ModuleWhereInput /** * Limit how many Modules to update. */ limit?: number /** * Choose, which related nodes to fetch as well */ include?: ModuleIncludeUpdateManyAndReturn | null } /** * Module upsert */ export type ModuleUpsertArgs = { /** * Select specific fields to fetch from the Module */ select?: ModuleSelect | null /** * Omit specific fields from the Module */ omit?: ModuleOmit | null /** * Choose, which related nodes to fetch as well */ include?: ModuleInclude | null /** * The filter to search for the Module to update in case it exists. */ where: ModuleWhereUniqueInput /** * In case the Module found by the `where` argument doesn't exist, create a new Module with this data. */ create: XOR /** * In case the Module was found with the provided `where` argument, update it with this data. */ update: XOR } /** * Module delete */ export type ModuleDeleteArgs = { /** * Select specific fields to fetch from the Module */ select?: ModuleSelect | null /** * Omit specific fields from the Module */ omit?: ModuleOmit | null /** * Choose, which related nodes to fetch as well */ include?: ModuleInclude | null /** * Filter which Module to delete. */ where: ModuleWhereUniqueInput } /** * Module deleteMany */ export type ModuleDeleteManyArgs = { /** * Filter which Modules to delete */ where?: ModuleWhereInput /** * Limit how many Modules to delete. */ limit?: number } /** * Module.lessons */ export type Module$lessonsArgs = { /** * Select specific fields to fetch from the Lesson */ select?: LessonSelect | null /** * Omit specific fields from the Lesson */ omit?: LessonOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonInclude | null where?: LessonWhereInput orderBy?: LessonOrderByWithRelationInput | LessonOrderByWithRelationInput[] cursor?: LessonWhereUniqueInput take?: number skip?: number distinct?: LessonScalarFieldEnum | LessonScalarFieldEnum[] } /** * Module.quiz */ export type Module$quizArgs = { /** * Select specific fields to fetch from the Quiz */ select?: QuizSelect | null /** * Omit specific fields from the Quiz */ omit?: QuizOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizInclude | null where?: QuizWhereInput } /** * Module without action */ export type ModuleDefaultArgs = { /** * Select specific fields to fetch from the Module */ select?: ModuleSelect | null /** * Omit specific fields from the Module */ omit?: ModuleOmit | null /** * Choose, which related nodes to fetch as well */ include?: ModuleInclude | null } /** * Model Lesson */ export type AggregateLesson = { _count: LessonCountAggregateOutputType | null _avg: LessonAvgAggregateOutputType | null _sum: LessonSumAggregateOutputType | null _min: LessonMinAggregateOutputType | null _max: LessonMaxAggregateOutputType | null } export type LessonAvgAggregateOutputType = { order: number | null duration: number | null } export type LessonSumAggregateOutputType = { order: number | null duration: number | null } export type LessonMinAggregateOutputType = { id: string | null moduleId: string | null order: number | null type: $Enums.LessonType | null videoUrl: string | null duration: number | null titleFr: string | null titleEn: string | null titleEs: string | null contentFr: string | null contentEn: string | null contentEs: string | null } export type LessonMaxAggregateOutputType = { id: string | null moduleId: string | null order: number | null type: $Enums.LessonType | null videoUrl: string | null duration: number | null titleFr: string | null titleEn: string | null titleEs: string | null contentFr: string | null contentEn: string | null contentEs: string | null } export type LessonCountAggregateOutputType = { id: number moduleId: number order: number type: number videoUrl: number duration: number titleFr: number titleEn: number titleEs: number contentFr: number contentEn: number contentEs: number _all: number } export type LessonAvgAggregateInputType = { order?: true duration?: true } export type LessonSumAggregateInputType = { order?: true duration?: true } export type LessonMinAggregateInputType = { id?: true moduleId?: true order?: true type?: true videoUrl?: true duration?: true titleFr?: true titleEn?: true titleEs?: true contentFr?: true contentEn?: true contentEs?: true } export type LessonMaxAggregateInputType = { id?: true moduleId?: true order?: true type?: true videoUrl?: true duration?: true titleFr?: true titleEn?: true titleEs?: true contentFr?: true contentEn?: true contentEs?: true } export type LessonCountAggregateInputType = { id?: true moduleId?: true order?: true type?: true videoUrl?: true duration?: true titleFr?: true titleEn?: true titleEs?: true contentFr?: true contentEn?: true contentEs?: true _all?: true } export type LessonAggregateArgs = { /** * Filter which Lesson to aggregate. */ where?: LessonWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Lessons to fetch. */ orderBy?: LessonOrderByWithRelationInput | LessonOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the start position */ cursor?: LessonWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Lessons from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Lessons. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Count returned Lessons **/ _count?: true | LessonCountAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to average **/ _avg?: LessonAvgAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to sum **/ _sum?: LessonSumAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the minimum value **/ _min?: LessonMinAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the maximum value **/ _max?: LessonMaxAggregateInputType } export type GetLessonAggregateType = { [P in keyof T & keyof AggregateLesson]: P extends '_count' | 'count' ? T[P] extends true ? number : GetScalarType : GetScalarType } export type LessonGroupByArgs = { where?: LessonWhereInput orderBy?: LessonOrderByWithAggregationInput | LessonOrderByWithAggregationInput[] by: LessonScalarFieldEnum[] | LessonScalarFieldEnum having?: LessonScalarWhereWithAggregatesInput take?: number skip?: number _count?: LessonCountAggregateInputType | true _avg?: LessonAvgAggregateInputType _sum?: LessonSumAggregateInputType _min?: LessonMinAggregateInputType _max?: LessonMaxAggregateInputType } export type LessonGroupByOutputType = { id: string moduleId: string order: number type: $Enums.LessonType videoUrl: string | null duration: number | null titleFr: string titleEn: string titleEs: string contentFr: string | null contentEn: string | null contentEs: string | null _count: LessonCountAggregateOutputType | null _avg: LessonAvgAggregateOutputType | null _sum: LessonSumAggregateOutputType | null _min: LessonMinAggregateOutputType | null _max: LessonMaxAggregateOutputType | null } type GetLessonGroupByPayload = Prisma.PrismaPromise< Array< PickEnumerable & { [P in ((keyof T) & (keyof LessonGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : GetScalarType : GetScalarType } > > export type LessonSelect = $Extensions.GetSelect<{ id?: boolean moduleId?: boolean order?: boolean type?: boolean videoUrl?: boolean duration?: boolean titleFr?: boolean titleEn?: boolean titleEs?: boolean contentFr?: boolean contentEn?: boolean contentEs?: boolean module?: boolean | ModuleDefaultArgs lessonProgress?: boolean | Lesson$lessonProgressArgs _count?: boolean | LessonCountOutputTypeDefaultArgs }, ExtArgs["result"]["lesson"]> export type LessonSelectCreateManyAndReturn = $Extensions.GetSelect<{ id?: boolean moduleId?: boolean order?: boolean type?: boolean videoUrl?: boolean duration?: boolean titleFr?: boolean titleEn?: boolean titleEs?: boolean contentFr?: boolean contentEn?: boolean contentEs?: boolean module?: boolean | ModuleDefaultArgs }, ExtArgs["result"]["lesson"]> export type LessonSelectUpdateManyAndReturn = $Extensions.GetSelect<{ id?: boolean moduleId?: boolean order?: boolean type?: boolean videoUrl?: boolean duration?: boolean titleFr?: boolean titleEn?: boolean titleEs?: boolean contentFr?: boolean contentEn?: boolean contentEs?: boolean module?: boolean | ModuleDefaultArgs }, ExtArgs["result"]["lesson"]> export type LessonSelectScalar = { id?: boolean moduleId?: boolean order?: boolean type?: boolean videoUrl?: boolean duration?: boolean titleFr?: boolean titleEn?: boolean titleEs?: boolean contentFr?: boolean contentEn?: boolean contentEs?: boolean } export type LessonOmit = $Extensions.GetOmit<"id" | "moduleId" | "order" | "type" | "videoUrl" | "duration" | "titleFr" | "titleEn" | "titleEs" | "contentFr" | "contentEn" | "contentEs", ExtArgs["result"]["lesson"]> export type LessonInclude = { module?: boolean | ModuleDefaultArgs lessonProgress?: boolean | Lesson$lessonProgressArgs _count?: boolean | LessonCountOutputTypeDefaultArgs } export type LessonIncludeCreateManyAndReturn = { module?: boolean | ModuleDefaultArgs } export type LessonIncludeUpdateManyAndReturn = { module?: boolean | ModuleDefaultArgs } export type $LessonPayload = { name: "Lesson" objects: { module: Prisma.$ModulePayload lessonProgress: Prisma.$LessonProgressPayload[] } scalars: $Extensions.GetPayloadResult<{ id: string moduleId: string order: number type: $Enums.LessonType videoUrl: string | null duration: number | null titleFr: string titleEn: string titleEs: string contentFr: string | null contentEn: string | null contentEs: string | null }, ExtArgs["result"]["lesson"]> composites: {} } type LessonGetPayload = $Result.GetResult type LessonCountArgs = Omit & { select?: LessonCountAggregateInputType | true } export interface LessonDelegate { [K: symbol]: { types: Prisma.TypeMap['model']['Lesson'], meta: { name: 'Lesson' } } /** * Find zero or one Lesson that matches the filter. * @param {LessonFindUniqueArgs} args - Arguments to find a Lesson * @example * // Get one Lesson * const lesson = await prisma.lesson.findUnique({ * where: { * // ... provide filter here * } * }) */ findUnique(args: SelectSubset>): Prisma__LessonClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find one Lesson that matches the filter or throw an error with `error.code='P2025'` * if no matches were found. * @param {LessonFindUniqueOrThrowArgs} args - Arguments to find a Lesson * @example * // Get one Lesson * const lesson = await prisma.lesson.findUniqueOrThrow({ * where: { * // ... provide filter here * } * }) */ findUniqueOrThrow(args: SelectSubset>): Prisma__LessonClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find the first Lesson that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {LessonFindFirstArgs} args - Arguments to find a Lesson * @example * // Get one Lesson * const lesson = await prisma.lesson.findFirst({ * where: { * // ... provide filter here * } * }) */ findFirst(args?: SelectSubset>): Prisma__LessonClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find the first Lesson that matches the filter or * throw `PrismaKnownClientError` with `P2025` code if no matches were found. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {LessonFindFirstOrThrowArgs} args - Arguments to find a Lesson * @example * // Get one Lesson * const lesson = await prisma.lesson.findFirstOrThrow({ * where: { * // ... provide filter here * } * }) */ findFirstOrThrow(args?: SelectSubset>): Prisma__LessonClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find zero or more Lessons that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {LessonFindManyArgs} args - Arguments to filter and select certain fields only. * @example * // Get all Lessons * const lessons = await prisma.lesson.findMany() * * // Get first 10 Lessons * const lessons = await prisma.lesson.findMany({ take: 10 }) * * // Only select the `id` * const lessonWithIdOnly = await prisma.lesson.findMany({ select: { id: true } }) * */ findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> /** * Create a Lesson. * @param {LessonCreateArgs} args - Arguments to create a Lesson. * @example * // Create one Lesson * const Lesson = await prisma.lesson.create({ * data: { * // ... data to create a Lesson * } * }) * */ create(args: SelectSubset>): Prisma__LessonClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Create many Lessons. * @param {LessonCreateManyArgs} args - Arguments to create many Lessons. * @example * // Create many Lessons * const lesson = await prisma.lesson.createMany({ * data: [ * // ... provide data here * ] * }) * */ createMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Create many Lessons and returns the data saved in the database. * @param {LessonCreateManyAndReturnArgs} args - Arguments to create many Lessons. * @example * // Create many Lessons * const lesson = await prisma.lesson.createManyAndReturn({ * data: [ * // ... provide data here * ] * }) * * // Create many Lessons and only return the `id` * const lessonWithIdOnly = await prisma.lesson.createManyAndReturn({ * select: { id: true }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> /** * Delete a Lesson. * @param {LessonDeleteArgs} args - Arguments to delete one Lesson. * @example * // Delete one Lesson * const Lesson = await prisma.lesson.delete({ * where: { * // ... filter to delete one Lesson * } * }) * */ delete(args: SelectSubset>): Prisma__LessonClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Update one Lesson. * @param {LessonUpdateArgs} args - Arguments to update one Lesson. * @example * // Update one Lesson * const lesson = await prisma.lesson.update({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ update(args: SelectSubset>): Prisma__LessonClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Delete zero or more Lessons. * @param {LessonDeleteManyArgs} args - Arguments to filter Lessons to delete. * @example * // Delete a few Lessons * const { count } = await prisma.lesson.deleteMany({ * where: { * // ... provide filter here * } * }) * */ deleteMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Lessons. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {LessonUpdateManyArgs} args - Arguments to update one or more rows. * @example * // Update many Lessons * const lesson = await prisma.lesson.updateMany({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ updateMany(args: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Lessons and returns the data updated in the database. * @param {LessonUpdateManyAndReturnArgs} args - Arguments to update many Lessons. * @example * // Update many Lessons * const lesson = await prisma.lesson.updateManyAndReturn({ * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * * // Update zero or more Lessons and only return the `id` * const lessonWithIdOnly = await prisma.lesson.updateManyAndReturn({ * select: { id: true }, * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> /** * Create or update one Lesson. * @param {LessonUpsertArgs} args - Arguments to update or create a Lesson. * @example * // Update or create a Lesson * const lesson = await prisma.lesson.upsert({ * create: { * // ... data to create a Lesson * }, * update: { * // ... in case it already exists, update * }, * where: { * // ... the filter for the Lesson we want to update * } * }) */ upsert(args: SelectSubset>): Prisma__LessonClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Count the number of Lessons. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {LessonCountArgs} args - Arguments to filter Lessons to count. * @example * // Count the number of Lessons * const count = await prisma.lesson.count({ * where: { * // ... the filter for the Lessons we want to count * } * }) **/ count( args?: Subset, ): Prisma.PrismaPromise< T extends $Utils.Record<'select', any> ? T['select'] extends true ? number : GetScalarType : number > /** * Allows you to perform aggregations operations on a Lesson. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {LessonAggregateArgs} args - Select which aggregations you would like to apply and on what fields. * @example * // Ordered by age ascending * // Where email contains prisma.io * // Limited to the 10 users * const aggregations = await prisma.user.aggregate({ * _avg: { * age: true, * }, * where: { * email: { * contains: "prisma.io", * }, * }, * orderBy: { * age: "asc", * }, * take: 10, * }) **/ aggregate(args: Subset): Prisma.PrismaPromise> /** * Group by Lesson. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {LessonGroupByArgs} args - Group by arguments. * @example * // Group by city, order by createdAt, get count * const result = await prisma.user.groupBy({ * by: ['city', 'createdAt'], * orderBy: { * createdAt: true * }, * _count: { * _all: true * }, * }) * **/ groupBy< T extends LessonGroupByArgs, HasSelectOrTake extends Or< Extends<'skip', Keys>, Extends<'take', Keys> >, OrderByArg extends True extends HasSelectOrTake ? { orderBy: LessonGroupByArgs['orderBy'] } : { orderBy?: LessonGroupByArgs['orderBy'] }, OrderFields extends ExcludeUnderscoreKeys>>, ByFields extends MaybeTupleToUnion, ByValid extends Has, HavingFields extends GetHavingFields, HavingValid extends Has, ByEmpty extends T['by'] extends never[] ? True : False, InputErrors extends ByEmpty extends True ? `Error: "by" must not be empty.` : HavingValid extends False ? { [P in HavingFields]: P extends ByFields ? never : P extends string ? `Error: Field "${P}" used in "having" needs to be provided in "by".` : [ Error, 'Field ', P, ` in "having" needs to be provided in "by"`, ] }[HavingFields] : 'take' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "take", you also need to provide "orderBy"' : 'skip' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "skip", you also need to provide "orderBy"' : ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetLessonGroupByPayload : Prisma.PrismaPromise /** * Fields of the Lesson model */ readonly fields: LessonFieldRefs; } /** * The delegate class that acts as a "Promise-like" for Lesson. * Why is this prefixed with `Prisma__`? * Because we want to prevent naming conflicts as mentioned in * https://github.com/prisma/prisma-client-js/issues/707 */ export interface Prisma__LessonClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" module = {}>(args?: Subset>): Prisma__ModuleClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> lessonProgress = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of which ever callback is executed. */ then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback for only the rejection of the Promise. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of the callback. */ catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The * resolved value cannot be modified from the callback. * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). * @returns A Promise for the completion of the callback. */ finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise } /** * Fields of the Lesson model */ interface LessonFieldRefs { readonly id: FieldRef<"Lesson", 'String'> readonly moduleId: FieldRef<"Lesson", 'String'> readonly order: FieldRef<"Lesson", 'Int'> readonly type: FieldRef<"Lesson", 'LessonType'> readonly videoUrl: FieldRef<"Lesson", 'String'> readonly duration: FieldRef<"Lesson", 'Int'> readonly titleFr: FieldRef<"Lesson", 'String'> readonly titleEn: FieldRef<"Lesson", 'String'> readonly titleEs: FieldRef<"Lesson", 'String'> readonly contentFr: FieldRef<"Lesson", 'String'> readonly contentEn: FieldRef<"Lesson", 'String'> readonly contentEs: FieldRef<"Lesson", 'String'> } // Custom InputTypes /** * Lesson findUnique */ export type LessonFindUniqueArgs = { /** * Select specific fields to fetch from the Lesson */ select?: LessonSelect | null /** * Omit specific fields from the Lesson */ omit?: LessonOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonInclude | null /** * Filter, which Lesson to fetch. */ where: LessonWhereUniqueInput } /** * Lesson findUniqueOrThrow */ export type LessonFindUniqueOrThrowArgs = { /** * Select specific fields to fetch from the Lesson */ select?: LessonSelect | null /** * Omit specific fields from the Lesson */ omit?: LessonOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonInclude | null /** * Filter, which Lesson to fetch. */ where: LessonWhereUniqueInput } /** * Lesson findFirst */ export type LessonFindFirstArgs = { /** * Select specific fields to fetch from the Lesson */ select?: LessonSelect | null /** * Omit specific fields from the Lesson */ omit?: LessonOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonInclude | null /** * Filter, which Lesson to fetch. */ where?: LessonWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Lessons to fetch. */ orderBy?: LessonOrderByWithRelationInput | LessonOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Lessons. */ cursor?: LessonWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Lessons from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Lessons. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Lessons. */ distinct?: LessonScalarFieldEnum | LessonScalarFieldEnum[] } /** * Lesson findFirstOrThrow */ export type LessonFindFirstOrThrowArgs = { /** * Select specific fields to fetch from the Lesson */ select?: LessonSelect | null /** * Omit specific fields from the Lesson */ omit?: LessonOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonInclude | null /** * Filter, which Lesson to fetch. */ where?: LessonWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Lessons to fetch. */ orderBy?: LessonOrderByWithRelationInput | LessonOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Lessons. */ cursor?: LessonWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Lessons from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Lessons. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Lessons. */ distinct?: LessonScalarFieldEnum | LessonScalarFieldEnum[] } /** * Lesson findMany */ export type LessonFindManyArgs = { /** * Select specific fields to fetch from the Lesson */ select?: LessonSelect | null /** * Omit specific fields from the Lesson */ omit?: LessonOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonInclude | null /** * Filter, which Lessons to fetch. */ where?: LessonWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Lessons to fetch. */ orderBy?: LessonOrderByWithRelationInput | LessonOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for listing Lessons. */ cursor?: LessonWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Lessons from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Lessons. */ skip?: number distinct?: LessonScalarFieldEnum | LessonScalarFieldEnum[] } /** * Lesson create */ export type LessonCreateArgs = { /** * Select specific fields to fetch from the Lesson */ select?: LessonSelect | null /** * Omit specific fields from the Lesson */ omit?: LessonOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonInclude | null /** * The data needed to create a Lesson. */ data: XOR } /** * Lesson createMany */ export type LessonCreateManyArgs = { /** * The data used to create many Lessons. */ data: LessonCreateManyInput | LessonCreateManyInput[] skipDuplicates?: boolean } /** * Lesson createManyAndReturn */ export type LessonCreateManyAndReturnArgs = { /** * Select specific fields to fetch from the Lesson */ select?: LessonSelectCreateManyAndReturn | null /** * Omit specific fields from the Lesson */ omit?: LessonOmit | null /** * The data used to create many Lessons. */ data: LessonCreateManyInput | LessonCreateManyInput[] skipDuplicates?: boolean /** * Choose, which related nodes to fetch as well */ include?: LessonIncludeCreateManyAndReturn | null } /** * Lesson update */ export type LessonUpdateArgs = { /** * Select specific fields to fetch from the Lesson */ select?: LessonSelect | null /** * Omit specific fields from the Lesson */ omit?: LessonOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonInclude | null /** * The data needed to update a Lesson. */ data: XOR /** * Choose, which Lesson to update. */ where: LessonWhereUniqueInput } /** * Lesson updateMany */ export type LessonUpdateManyArgs = { /** * The data used to update Lessons. */ data: XOR /** * Filter which Lessons to update */ where?: LessonWhereInput /** * Limit how many Lessons to update. */ limit?: number } /** * Lesson updateManyAndReturn */ export type LessonUpdateManyAndReturnArgs = { /** * Select specific fields to fetch from the Lesson */ select?: LessonSelectUpdateManyAndReturn | null /** * Omit specific fields from the Lesson */ omit?: LessonOmit | null /** * The data used to update Lessons. */ data: XOR /** * Filter which Lessons to update */ where?: LessonWhereInput /** * Limit how many Lessons to update. */ limit?: number /** * Choose, which related nodes to fetch as well */ include?: LessonIncludeUpdateManyAndReturn | null } /** * Lesson upsert */ export type LessonUpsertArgs = { /** * Select specific fields to fetch from the Lesson */ select?: LessonSelect | null /** * Omit specific fields from the Lesson */ omit?: LessonOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonInclude | null /** * The filter to search for the Lesson to update in case it exists. */ where: LessonWhereUniqueInput /** * In case the Lesson found by the `where` argument doesn't exist, create a new Lesson with this data. */ create: XOR /** * In case the Lesson was found with the provided `where` argument, update it with this data. */ update: XOR } /** * Lesson delete */ export type LessonDeleteArgs = { /** * Select specific fields to fetch from the Lesson */ select?: LessonSelect | null /** * Omit specific fields from the Lesson */ omit?: LessonOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonInclude | null /** * Filter which Lesson to delete. */ where: LessonWhereUniqueInput } /** * Lesson deleteMany */ export type LessonDeleteManyArgs = { /** * Filter which Lessons to delete */ where?: LessonWhereInput /** * Limit how many Lessons to delete. */ limit?: number } /** * Lesson.lessonProgress */ export type Lesson$lessonProgressArgs = { /** * Select specific fields to fetch from the LessonProgress */ select?: LessonProgressSelect | null /** * Omit specific fields from the LessonProgress */ omit?: LessonProgressOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonProgressInclude | null where?: LessonProgressWhereInput orderBy?: LessonProgressOrderByWithRelationInput | LessonProgressOrderByWithRelationInput[] cursor?: LessonProgressWhereUniqueInput take?: number skip?: number distinct?: LessonProgressScalarFieldEnum | LessonProgressScalarFieldEnum[] } /** * Lesson without action */ export type LessonDefaultArgs = { /** * Select specific fields to fetch from the Lesson */ select?: LessonSelect | null /** * Omit specific fields from the Lesson */ omit?: LessonOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonInclude | null } /** * Model Quiz */ export type AggregateQuiz = { _count: QuizCountAggregateOutputType | null _avg: QuizAvgAggregateOutputType | null _sum: QuizSumAggregateOutputType | null _min: QuizMinAggregateOutputType | null _max: QuizMaxAggregateOutputType | null } export type QuizAvgAggregateOutputType = { passMark: number | null } export type QuizSumAggregateOutputType = { passMark: number | null } export type QuizMinAggregateOutputType = { id: string | null moduleId: string | null passMark: number | null } export type QuizMaxAggregateOutputType = { id: string | null moduleId: string | null passMark: number | null } export type QuizCountAggregateOutputType = { id: number moduleId: number passMark: number _all: number } export type QuizAvgAggregateInputType = { passMark?: true } export type QuizSumAggregateInputType = { passMark?: true } export type QuizMinAggregateInputType = { id?: true moduleId?: true passMark?: true } export type QuizMaxAggregateInputType = { id?: true moduleId?: true passMark?: true } export type QuizCountAggregateInputType = { id?: true moduleId?: true passMark?: true _all?: true } export type QuizAggregateArgs = { /** * Filter which Quiz to aggregate. */ where?: QuizWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Quizzes to fetch. */ orderBy?: QuizOrderByWithRelationInput | QuizOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the start position */ cursor?: QuizWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Quizzes from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Quizzes. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Count returned Quizzes **/ _count?: true | QuizCountAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to average **/ _avg?: QuizAvgAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to sum **/ _sum?: QuizSumAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the minimum value **/ _min?: QuizMinAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the maximum value **/ _max?: QuizMaxAggregateInputType } export type GetQuizAggregateType = { [P in keyof T & keyof AggregateQuiz]: P extends '_count' | 'count' ? T[P] extends true ? number : GetScalarType : GetScalarType } export type QuizGroupByArgs = { where?: QuizWhereInput orderBy?: QuizOrderByWithAggregationInput | QuizOrderByWithAggregationInput[] by: QuizScalarFieldEnum[] | QuizScalarFieldEnum having?: QuizScalarWhereWithAggregatesInput take?: number skip?: number _count?: QuizCountAggregateInputType | true _avg?: QuizAvgAggregateInputType _sum?: QuizSumAggregateInputType _min?: QuizMinAggregateInputType _max?: QuizMaxAggregateInputType } export type QuizGroupByOutputType = { id: string moduleId: string passMark: number _count: QuizCountAggregateOutputType | null _avg: QuizAvgAggregateOutputType | null _sum: QuizSumAggregateOutputType | null _min: QuizMinAggregateOutputType | null _max: QuizMaxAggregateOutputType | null } type GetQuizGroupByPayload = Prisma.PrismaPromise< Array< PickEnumerable & { [P in ((keyof T) & (keyof QuizGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : GetScalarType : GetScalarType } > > export type QuizSelect = $Extensions.GetSelect<{ id?: boolean moduleId?: boolean passMark?: boolean module?: boolean | ModuleDefaultArgs questions?: boolean | Quiz$questionsArgs attempts?: boolean | Quiz$attemptsArgs _count?: boolean | QuizCountOutputTypeDefaultArgs }, ExtArgs["result"]["quiz"]> export type QuizSelectCreateManyAndReturn = $Extensions.GetSelect<{ id?: boolean moduleId?: boolean passMark?: boolean module?: boolean | ModuleDefaultArgs }, ExtArgs["result"]["quiz"]> export type QuizSelectUpdateManyAndReturn = $Extensions.GetSelect<{ id?: boolean moduleId?: boolean passMark?: boolean module?: boolean | ModuleDefaultArgs }, ExtArgs["result"]["quiz"]> export type QuizSelectScalar = { id?: boolean moduleId?: boolean passMark?: boolean } export type QuizOmit = $Extensions.GetOmit<"id" | "moduleId" | "passMark", ExtArgs["result"]["quiz"]> export type QuizInclude = { module?: boolean | ModuleDefaultArgs questions?: boolean | Quiz$questionsArgs attempts?: boolean | Quiz$attemptsArgs _count?: boolean | QuizCountOutputTypeDefaultArgs } export type QuizIncludeCreateManyAndReturn = { module?: boolean | ModuleDefaultArgs } export type QuizIncludeUpdateManyAndReturn = { module?: boolean | ModuleDefaultArgs } export type $QuizPayload = { name: "Quiz" objects: { module: Prisma.$ModulePayload questions: Prisma.$QuestionPayload[] attempts: Prisma.$QuizAttemptPayload[] } scalars: $Extensions.GetPayloadResult<{ id: string moduleId: string passMark: number }, ExtArgs["result"]["quiz"]> composites: {} } type QuizGetPayload = $Result.GetResult type QuizCountArgs = Omit & { select?: QuizCountAggregateInputType | true } export interface QuizDelegate { [K: symbol]: { types: Prisma.TypeMap['model']['Quiz'], meta: { name: 'Quiz' } } /** * Find zero or one Quiz that matches the filter. * @param {QuizFindUniqueArgs} args - Arguments to find a Quiz * @example * // Get one Quiz * const quiz = await prisma.quiz.findUnique({ * where: { * // ... provide filter here * } * }) */ findUnique(args: SelectSubset>): Prisma__QuizClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find one Quiz that matches the filter or throw an error with `error.code='P2025'` * if no matches were found. * @param {QuizFindUniqueOrThrowArgs} args - Arguments to find a Quiz * @example * // Get one Quiz * const quiz = await prisma.quiz.findUniqueOrThrow({ * where: { * // ... provide filter here * } * }) */ findUniqueOrThrow(args: SelectSubset>): Prisma__QuizClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find the first Quiz that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuizFindFirstArgs} args - Arguments to find a Quiz * @example * // Get one Quiz * const quiz = await prisma.quiz.findFirst({ * where: { * // ... provide filter here * } * }) */ findFirst(args?: SelectSubset>): Prisma__QuizClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find the first Quiz that matches the filter or * throw `PrismaKnownClientError` with `P2025` code if no matches were found. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuizFindFirstOrThrowArgs} args - Arguments to find a Quiz * @example * // Get one Quiz * const quiz = await prisma.quiz.findFirstOrThrow({ * where: { * // ... provide filter here * } * }) */ findFirstOrThrow(args?: SelectSubset>): Prisma__QuizClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find zero or more Quizzes that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuizFindManyArgs} args - Arguments to filter and select certain fields only. * @example * // Get all Quizzes * const quizzes = await prisma.quiz.findMany() * * // Get first 10 Quizzes * const quizzes = await prisma.quiz.findMany({ take: 10 }) * * // Only select the `id` * const quizWithIdOnly = await prisma.quiz.findMany({ select: { id: true } }) * */ findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> /** * Create a Quiz. * @param {QuizCreateArgs} args - Arguments to create a Quiz. * @example * // Create one Quiz * const Quiz = await prisma.quiz.create({ * data: { * // ... data to create a Quiz * } * }) * */ create(args: SelectSubset>): Prisma__QuizClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Create many Quizzes. * @param {QuizCreateManyArgs} args - Arguments to create many Quizzes. * @example * // Create many Quizzes * const quiz = await prisma.quiz.createMany({ * data: [ * // ... provide data here * ] * }) * */ createMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Create many Quizzes and returns the data saved in the database. * @param {QuizCreateManyAndReturnArgs} args - Arguments to create many Quizzes. * @example * // Create many Quizzes * const quiz = await prisma.quiz.createManyAndReturn({ * data: [ * // ... provide data here * ] * }) * * // Create many Quizzes and only return the `id` * const quizWithIdOnly = await prisma.quiz.createManyAndReturn({ * select: { id: true }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> /** * Delete a Quiz. * @param {QuizDeleteArgs} args - Arguments to delete one Quiz. * @example * // Delete one Quiz * const Quiz = await prisma.quiz.delete({ * where: { * // ... filter to delete one Quiz * } * }) * */ delete(args: SelectSubset>): Prisma__QuizClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Update one Quiz. * @param {QuizUpdateArgs} args - Arguments to update one Quiz. * @example * // Update one Quiz * const quiz = await prisma.quiz.update({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ update(args: SelectSubset>): Prisma__QuizClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Delete zero or more Quizzes. * @param {QuizDeleteManyArgs} args - Arguments to filter Quizzes to delete. * @example * // Delete a few Quizzes * const { count } = await prisma.quiz.deleteMany({ * where: { * // ... provide filter here * } * }) * */ deleteMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Quizzes. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuizUpdateManyArgs} args - Arguments to update one or more rows. * @example * // Update many Quizzes * const quiz = await prisma.quiz.updateMany({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ updateMany(args: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Quizzes and returns the data updated in the database. * @param {QuizUpdateManyAndReturnArgs} args - Arguments to update many Quizzes. * @example * // Update many Quizzes * const quiz = await prisma.quiz.updateManyAndReturn({ * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * * // Update zero or more Quizzes and only return the `id` * const quizWithIdOnly = await prisma.quiz.updateManyAndReturn({ * select: { id: true }, * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> /** * Create or update one Quiz. * @param {QuizUpsertArgs} args - Arguments to update or create a Quiz. * @example * // Update or create a Quiz * const quiz = await prisma.quiz.upsert({ * create: { * // ... data to create a Quiz * }, * update: { * // ... in case it already exists, update * }, * where: { * // ... the filter for the Quiz we want to update * } * }) */ upsert(args: SelectSubset>): Prisma__QuizClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Count the number of Quizzes. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuizCountArgs} args - Arguments to filter Quizzes to count. * @example * // Count the number of Quizzes * const count = await prisma.quiz.count({ * where: { * // ... the filter for the Quizzes we want to count * } * }) **/ count( args?: Subset, ): Prisma.PrismaPromise< T extends $Utils.Record<'select', any> ? T['select'] extends true ? number : GetScalarType : number > /** * Allows you to perform aggregations operations on a Quiz. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuizAggregateArgs} args - Select which aggregations you would like to apply and on what fields. * @example * // Ordered by age ascending * // Where email contains prisma.io * // Limited to the 10 users * const aggregations = await prisma.user.aggregate({ * _avg: { * age: true, * }, * where: { * email: { * contains: "prisma.io", * }, * }, * orderBy: { * age: "asc", * }, * take: 10, * }) **/ aggregate(args: Subset): Prisma.PrismaPromise> /** * Group by Quiz. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuizGroupByArgs} args - Group by arguments. * @example * // Group by city, order by createdAt, get count * const result = await prisma.user.groupBy({ * by: ['city', 'createdAt'], * orderBy: { * createdAt: true * }, * _count: { * _all: true * }, * }) * **/ groupBy< T extends QuizGroupByArgs, HasSelectOrTake extends Or< Extends<'skip', Keys>, Extends<'take', Keys> >, OrderByArg extends True extends HasSelectOrTake ? { orderBy: QuizGroupByArgs['orderBy'] } : { orderBy?: QuizGroupByArgs['orderBy'] }, OrderFields extends ExcludeUnderscoreKeys>>, ByFields extends MaybeTupleToUnion, ByValid extends Has, HavingFields extends GetHavingFields, HavingValid extends Has, ByEmpty extends T['by'] extends never[] ? True : False, InputErrors extends ByEmpty extends True ? `Error: "by" must not be empty.` : HavingValid extends False ? { [P in HavingFields]: P extends ByFields ? never : P extends string ? `Error: Field "${P}" used in "having" needs to be provided in "by".` : [ Error, 'Field ', P, ` in "having" needs to be provided in "by"`, ] }[HavingFields] : 'take' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "take", you also need to provide "orderBy"' : 'skip' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "skip", you also need to provide "orderBy"' : ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetQuizGroupByPayload : Prisma.PrismaPromise /** * Fields of the Quiz model */ readonly fields: QuizFieldRefs; } /** * The delegate class that acts as a "Promise-like" for Quiz. * Why is this prefixed with `Prisma__`? * Because we want to prevent naming conflicts as mentioned in * https://github.com/prisma/prisma-client-js/issues/707 */ export interface Prisma__QuizClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" module = {}>(args?: Subset>): Prisma__ModuleClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> questions = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> attempts = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of which ever callback is executed. */ then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback for only the rejection of the Promise. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of the callback. */ catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The * resolved value cannot be modified from the callback. * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). * @returns A Promise for the completion of the callback. */ finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise } /** * Fields of the Quiz model */ interface QuizFieldRefs { readonly id: FieldRef<"Quiz", 'String'> readonly moduleId: FieldRef<"Quiz", 'String'> readonly passMark: FieldRef<"Quiz", 'Int'> } // Custom InputTypes /** * Quiz findUnique */ export type QuizFindUniqueArgs = { /** * Select specific fields to fetch from the Quiz */ select?: QuizSelect | null /** * Omit specific fields from the Quiz */ omit?: QuizOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizInclude | null /** * Filter, which Quiz to fetch. */ where: QuizWhereUniqueInput } /** * Quiz findUniqueOrThrow */ export type QuizFindUniqueOrThrowArgs = { /** * Select specific fields to fetch from the Quiz */ select?: QuizSelect | null /** * Omit specific fields from the Quiz */ omit?: QuizOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizInclude | null /** * Filter, which Quiz to fetch. */ where: QuizWhereUniqueInput } /** * Quiz findFirst */ export type QuizFindFirstArgs = { /** * Select specific fields to fetch from the Quiz */ select?: QuizSelect | null /** * Omit specific fields from the Quiz */ omit?: QuizOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizInclude | null /** * Filter, which Quiz to fetch. */ where?: QuizWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Quizzes to fetch. */ orderBy?: QuizOrderByWithRelationInput | QuizOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Quizzes. */ cursor?: QuizWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Quizzes from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Quizzes. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Quizzes. */ distinct?: QuizScalarFieldEnum | QuizScalarFieldEnum[] } /** * Quiz findFirstOrThrow */ export type QuizFindFirstOrThrowArgs = { /** * Select specific fields to fetch from the Quiz */ select?: QuizSelect | null /** * Omit specific fields from the Quiz */ omit?: QuizOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizInclude | null /** * Filter, which Quiz to fetch. */ where?: QuizWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Quizzes to fetch. */ orderBy?: QuizOrderByWithRelationInput | QuizOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Quizzes. */ cursor?: QuizWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Quizzes from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Quizzes. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Quizzes. */ distinct?: QuizScalarFieldEnum | QuizScalarFieldEnum[] } /** * Quiz findMany */ export type QuizFindManyArgs = { /** * Select specific fields to fetch from the Quiz */ select?: QuizSelect | null /** * Omit specific fields from the Quiz */ omit?: QuizOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizInclude | null /** * Filter, which Quizzes to fetch. */ where?: QuizWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Quizzes to fetch. */ orderBy?: QuizOrderByWithRelationInput | QuizOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for listing Quizzes. */ cursor?: QuizWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Quizzes from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Quizzes. */ skip?: number distinct?: QuizScalarFieldEnum | QuizScalarFieldEnum[] } /** * Quiz create */ export type QuizCreateArgs = { /** * Select specific fields to fetch from the Quiz */ select?: QuizSelect | null /** * Omit specific fields from the Quiz */ omit?: QuizOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizInclude | null /** * The data needed to create a Quiz. */ data: XOR } /** * Quiz createMany */ export type QuizCreateManyArgs = { /** * The data used to create many Quizzes. */ data: QuizCreateManyInput | QuizCreateManyInput[] skipDuplicates?: boolean } /** * Quiz createManyAndReturn */ export type QuizCreateManyAndReturnArgs = { /** * Select specific fields to fetch from the Quiz */ select?: QuizSelectCreateManyAndReturn | null /** * Omit specific fields from the Quiz */ omit?: QuizOmit | null /** * The data used to create many Quizzes. */ data: QuizCreateManyInput | QuizCreateManyInput[] skipDuplicates?: boolean /** * Choose, which related nodes to fetch as well */ include?: QuizIncludeCreateManyAndReturn | null } /** * Quiz update */ export type QuizUpdateArgs = { /** * Select specific fields to fetch from the Quiz */ select?: QuizSelect | null /** * Omit specific fields from the Quiz */ omit?: QuizOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizInclude | null /** * The data needed to update a Quiz. */ data: XOR /** * Choose, which Quiz to update. */ where: QuizWhereUniqueInput } /** * Quiz updateMany */ export type QuizUpdateManyArgs = { /** * The data used to update Quizzes. */ data: XOR /** * Filter which Quizzes to update */ where?: QuizWhereInput /** * Limit how many Quizzes to update. */ limit?: number } /** * Quiz updateManyAndReturn */ export type QuizUpdateManyAndReturnArgs = { /** * Select specific fields to fetch from the Quiz */ select?: QuizSelectUpdateManyAndReturn | null /** * Omit specific fields from the Quiz */ omit?: QuizOmit | null /** * The data used to update Quizzes. */ data: XOR /** * Filter which Quizzes to update */ where?: QuizWhereInput /** * Limit how many Quizzes to update. */ limit?: number /** * Choose, which related nodes to fetch as well */ include?: QuizIncludeUpdateManyAndReturn | null } /** * Quiz upsert */ export type QuizUpsertArgs = { /** * Select specific fields to fetch from the Quiz */ select?: QuizSelect | null /** * Omit specific fields from the Quiz */ omit?: QuizOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizInclude | null /** * The filter to search for the Quiz to update in case it exists. */ where: QuizWhereUniqueInput /** * In case the Quiz found by the `where` argument doesn't exist, create a new Quiz with this data. */ create: XOR /** * In case the Quiz was found with the provided `where` argument, update it with this data. */ update: XOR } /** * Quiz delete */ export type QuizDeleteArgs = { /** * Select specific fields to fetch from the Quiz */ select?: QuizSelect | null /** * Omit specific fields from the Quiz */ omit?: QuizOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizInclude | null /** * Filter which Quiz to delete. */ where: QuizWhereUniqueInput } /** * Quiz deleteMany */ export type QuizDeleteManyArgs = { /** * Filter which Quizzes to delete */ where?: QuizWhereInput /** * Limit how many Quizzes to delete. */ limit?: number } /** * Quiz.questions */ export type Quiz$questionsArgs = { /** * Select specific fields to fetch from the Question */ select?: QuestionSelect | null /** * Omit specific fields from the Question */ omit?: QuestionOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuestionInclude | null where?: QuestionWhereInput orderBy?: QuestionOrderByWithRelationInput | QuestionOrderByWithRelationInput[] cursor?: QuestionWhereUniqueInput take?: number skip?: number distinct?: QuestionScalarFieldEnum | QuestionScalarFieldEnum[] } /** * Quiz.attempts */ export type Quiz$attemptsArgs = { /** * Select specific fields to fetch from the QuizAttempt */ select?: QuizAttemptSelect | null /** * Omit specific fields from the QuizAttempt */ omit?: QuizAttemptOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizAttemptInclude | null where?: QuizAttemptWhereInput orderBy?: QuizAttemptOrderByWithRelationInput | QuizAttemptOrderByWithRelationInput[] cursor?: QuizAttemptWhereUniqueInput take?: number skip?: number distinct?: QuizAttemptScalarFieldEnum | QuizAttemptScalarFieldEnum[] } /** * Quiz without action */ export type QuizDefaultArgs = { /** * Select specific fields to fetch from the Quiz */ select?: QuizSelect | null /** * Omit specific fields from the Quiz */ omit?: QuizOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizInclude | null } /** * Model Question */ export type AggregateQuestion = { _count: QuestionCountAggregateOutputType | null _avg: QuestionAvgAggregateOutputType | null _sum: QuestionSumAggregateOutputType | null _min: QuestionMinAggregateOutputType | null _max: QuestionMaxAggregateOutputType | null } export type QuestionAvgAggregateOutputType = { order: number | null correctIndex: number | null } export type QuestionSumAggregateOutputType = { order: number | null correctIndex: number | null } export type QuestionMinAggregateOutputType = { id: string | null quizId: string | null order: number | null textFr: string | null textEn: string | null textEs: string | null correctIndex: number | null } export type QuestionMaxAggregateOutputType = { id: string | null quizId: string | null order: number | null textFr: string | null textEn: string | null textEs: string | null correctIndex: number | null } export type QuestionCountAggregateOutputType = { id: number quizId: number order: number textFr: number textEn: number textEs: number optionsFr: number optionsEn: number optionsEs: number correctIndex: number _all: number } export type QuestionAvgAggregateInputType = { order?: true correctIndex?: true } export type QuestionSumAggregateInputType = { order?: true correctIndex?: true } export type QuestionMinAggregateInputType = { id?: true quizId?: true order?: true textFr?: true textEn?: true textEs?: true correctIndex?: true } export type QuestionMaxAggregateInputType = { id?: true quizId?: true order?: true textFr?: true textEn?: true textEs?: true correctIndex?: true } export type QuestionCountAggregateInputType = { id?: true quizId?: true order?: true textFr?: true textEn?: true textEs?: true optionsFr?: true optionsEn?: true optionsEs?: true correctIndex?: true _all?: true } export type QuestionAggregateArgs = { /** * Filter which Question to aggregate. */ where?: QuestionWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Questions to fetch. */ orderBy?: QuestionOrderByWithRelationInput | QuestionOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the start position */ cursor?: QuestionWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Questions from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Questions. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Count returned Questions **/ _count?: true | QuestionCountAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to average **/ _avg?: QuestionAvgAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to sum **/ _sum?: QuestionSumAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the minimum value **/ _min?: QuestionMinAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the maximum value **/ _max?: QuestionMaxAggregateInputType } export type GetQuestionAggregateType = { [P in keyof T & keyof AggregateQuestion]: P extends '_count' | 'count' ? T[P] extends true ? number : GetScalarType : GetScalarType } export type QuestionGroupByArgs = { where?: QuestionWhereInput orderBy?: QuestionOrderByWithAggregationInput | QuestionOrderByWithAggregationInput[] by: QuestionScalarFieldEnum[] | QuestionScalarFieldEnum having?: QuestionScalarWhereWithAggregatesInput take?: number skip?: number _count?: QuestionCountAggregateInputType | true _avg?: QuestionAvgAggregateInputType _sum?: QuestionSumAggregateInputType _min?: QuestionMinAggregateInputType _max?: QuestionMaxAggregateInputType } export type QuestionGroupByOutputType = { id: string quizId: string order: number textFr: string textEn: string textEs: string optionsFr: string[] optionsEn: string[] optionsEs: string[] correctIndex: number _count: QuestionCountAggregateOutputType | null _avg: QuestionAvgAggregateOutputType | null _sum: QuestionSumAggregateOutputType | null _min: QuestionMinAggregateOutputType | null _max: QuestionMaxAggregateOutputType | null } type GetQuestionGroupByPayload = Prisma.PrismaPromise< Array< PickEnumerable & { [P in ((keyof T) & (keyof QuestionGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : GetScalarType : GetScalarType } > > export type QuestionSelect = $Extensions.GetSelect<{ id?: boolean quizId?: boolean order?: boolean textFr?: boolean textEn?: boolean textEs?: boolean optionsFr?: boolean optionsEn?: boolean optionsEs?: boolean correctIndex?: boolean quiz?: boolean | QuizDefaultArgs }, ExtArgs["result"]["question"]> export type QuestionSelectCreateManyAndReturn = $Extensions.GetSelect<{ id?: boolean quizId?: boolean order?: boolean textFr?: boolean textEn?: boolean textEs?: boolean optionsFr?: boolean optionsEn?: boolean optionsEs?: boolean correctIndex?: boolean quiz?: boolean | QuizDefaultArgs }, ExtArgs["result"]["question"]> export type QuestionSelectUpdateManyAndReturn = $Extensions.GetSelect<{ id?: boolean quizId?: boolean order?: boolean textFr?: boolean textEn?: boolean textEs?: boolean optionsFr?: boolean optionsEn?: boolean optionsEs?: boolean correctIndex?: boolean quiz?: boolean | QuizDefaultArgs }, ExtArgs["result"]["question"]> export type QuestionSelectScalar = { id?: boolean quizId?: boolean order?: boolean textFr?: boolean textEn?: boolean textEs?: boolean optionsFr?: boolean optionsEn?: boolean optionsEs?: boolean correctIndex?: boolean } export type QuestionOmit = $Extensions.GetOmit<"id" | "quizId" | "order" | "textFr" | "textEn" | "textEs" | "optionsFr" | "optionsEn" | "optionsEs" | "correctIndex", ExtArgs["result"]["question"]> export type QuestionInclude = { quiz?: boolean | QuizDefaultArgs } export type QuestionIncludeCreateManyAndReturn = { quiz?: boolean | QuizDefaultArgs } export type QuestionIncludeUpdateManyAndReturn = { quiz?: boolean | QuizDefaultArgs } export type $QuestionPayload = { name: "Question" objects: { quiz: Prisma.$QuizPayload } scalars: $Extensions.GetPayloadResult<{ id: string quizId: string order: number textFr: string textEn: string textEs: string optionsFr: string[] optionsEn: string[] optionsEs: string[] correctIndex: number }, ExtArgs["result"]["question"]> composites: {} } type QuestionGetPayload = $Result.GetResult type QuestionCountArgs = Omit & { select?: QuestionCountAggregateInputType | true } export interface QuestionDelegate { [K: symbol]: { types: Prisma.TypeMap['model']['Question'], meta: { name: 'Question' } } /** * Find zero or one Question that matches the filter. * @param {QuestionFindUniqueArgs} args - Arguments to find a Question * @example * // Get one Question * const question = await prisma.question.findUnique({ * where: { * // ... provide filter here * } * }) */ findUnique(args: SelectSubset>): Prisma__QuestionClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find one Question that matches the filter or throw an error with `error.code='P2025'` * if no matches were found. * @param {QuestionFindUniqueOrThrowArgs} args - Arguments to find a Question * @example * // Get one Question * const question = await prisma.question.findUniqueOrThrow({ * where: { * // ... provide filter here * } * }) */ findUniqueOrThrow(args: SelectSubset>): Prisma__QuestionClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find the first Question that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuestionFindFirstArgs} args - Arguments to find a Question * @example * // Get one Question * const question = await prisma.question.findFirst({ * where: { * // ... provide filter here * } * }) */ findFirst(args?: SelectSubset>): Prisma__QuestionClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find the first Question that matches the filter or * throw `PrismaKnownClientError` with `P2025` code if no matches were found. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuestionFindFirstOrThrowArgs} args - Arguments to find a Question * @example * // Get one Question * const question = await prisma.question.findFirstOrThrow({ * where: { * // ... provide filter here * } * }) */ findFirstOrThrow(args?: SelectSubset>): Prisma__QuestionClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find zero or more Questions that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuestionFindManyArgs} args - Arguments to filter and select certain fields only. * @example * // Get all Questions * const questions = await prisma.question.findMany() * * // Get first 10 Questions * const questions = await prisma.question.findMany({ take: 10 }) * * // Only select the `id` * const questionWithIdOnly = await prisma.question.findMany({ select: { id: true } }) * */ findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> /** * Create a Question. * @param {QuestionCreateArgs} args - Arguments to create a Question. * @example * // Create one Question * const Question = await prisma.question.create({ * data: { * // ... data to create a Question * } * }) * */ create(args: SelectSubset>): Prisma__QuestionClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Create many Questions. * @param {QuestionCreateManyArgs} args - Arguments to create many Questions. * @example * // Create many Questions * const question = await prisma.question.createMany({ * data: [ * // ... provide data here * ] * }) * */ createMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Create many Questions and returns the data saved in the database. * @param {QuestionCreateManyAndReturnArgs} args - Arguments to create many Questions. * @example * // Create many Questions * const question = await prisma.question.createManyAndReturn({ * data: [ * // ... provide data here * ] * }) * * // Create many Questions and only return the `id` * const questionWithIdOnly = await prisma.question.createManyAndReturn({ * select: { id: true }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> /** * Delete a Question. * @param {QuestionDeleteArgs} args - Arguments to delete one Question. * @example * // Delete one Question * const Question = await prisma.question.delete({ * where: { * // ... filter to delete one Question * } * }) * */ delete(args: SelectSubset>): Prisma__QuestionClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Update one Question. * @param {QuestionUpdateArgs} args - Arguments to update one Question. * @example * // Update one Question * const question = await prisma.question.update({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ update(args: SelectSubset>): Prisma__QuestionClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Delete zero or more Questions. * @param {QuestionDeleteManyArgs} args - Arguments to filter Questions to delete. * @example * // Delete a few Questions * const { count } = await prisma.question.deleteMany({ * where: { * // ... provide filter here * } * }) * */ deleteMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Questions. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuestionUpdateManyArgs} args - Arguments to update one or more rows. * @example * // Update many Questions * const question = await prisma.question.updateMany({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ updateMany(args: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Questions and returns the data updated in the database. * @param {QuestionUpdateManyAndReturnArgs} args - Arguments to update many Questions. * @example * // Update many Questions * const question = await prisma.question.updateManyAndReturn({ * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * * // Update zero or more Questions and only return the `id` * const questionWithIdOnly = await prisma.question.updateManyAndReturn({ * select: { id: true }, * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> /** * Create or update one Question. * @param {QuestionUpsertArgs} args - Arguments to update or create a Question. * @example * // Update or create a Question * const question = await prisma.question.upsert({ * create: { * // ... data to create a Question * }, * update: { * // ... in case it already exists, update * }, * where: { * // ... the filter for the Question we want to update * } * }) */ upsert(args: SelectSubset>): Prisma__QuestionClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Count the number of Questions. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuestionCountArgs} args - Arguments to filter Questions to count. * @example * // Count the number of Questions * const count = await prisma.question.count({ * where: { * // ... the filter for the Questions we want to count * } * }) **/ count( args?: Subset, ): Prisma.PrismaPromise< T extends $Utils.Record<'select', any> ? T['select'] extends true ? number : GetScalarType : number > /** * Allows you to perform aggregations operations on a Question. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuestionAggregateArgs} args - Select which aggregations you would like to apply and on what fields. * @example * // Ordered by age ascending * // Where email contains prisma.io * // Limited to the 10 users * const aggregations = await prisma.user.aggregate({ * _avg: { * age: true, * }, * where: { * email: { * contains: "prisma.io", * }, * }, * orderBy: { * age: "asc", * }, * take: 10, * }) **/ aggregate(args: Subset): Prisma.PrismaPromise> /** * Group by Question. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuestionGroupByArgs} args - Group by arguments. * @example * // Group by city, order by createdAt, get count * const result = await prisma.user.groupBy({ * by: ['city', 'createdAt'], * orderBy: { * createdAt: true * }, * _count: { * _all: true * }, * }) * **/ groupBy< T extends QuestionGroupByArgs, HasSelectOrTake extends Or< Extends<'skip', Keys>, Extends<'take', Keys> >, OrderByArg extends True extends HasSelectOrTake ? { orderBy: QuestionGroupByArgs['orderBy'] } : { orderBy?: QuestionGroupByArgs['orderBy'] }, OrderFields extends ExcludeUnderscoreKeys>>, ByFields extends MaybeTupleToUnion, ByValid extends Has, HavingFields extends GetHavingFields, HavingValid extends Has, ByEmpty extends T['by'] extends never[] ? True : False, InputErrors extends ByEmpty extends True ? `Error: "by" must not be empty.` : HavingValid extends False ? { [P in HavingFields]: P extends ByFields ? never : P extends string ? `Error: Field "${P}" used in "having" needs to be provided in "by".` : [ Error, 'Field ', P, ` in "having" needs to be provided in "by"`, ] }[HavingFields] : 'take' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "take", you also need to provide "orderBy"' : 'skip' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "skip", you also need to provide "orderBy"' : ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetQuestionGroupByPayload : Prisma.PrismaPromise /** * Fields of the Question model */ readonly fields: QuestionFieldRefs; } /** * The delegate class that acts as a "Promise-like" for Question. * Why is this prefixed with `Prisma__`? * Because we want to prevent naming conflicts as mentioned in * https://github.com/prisma/prisma-client-js/issues/707 */ export interface Prisma__QuestionClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" quiz = {}>(args?: Subset>): Prisma__QuizClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of which ever callback is executed. */ then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback for only the rejection of the Promise. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of the callback. */ catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The * resolved value cannot be modified from the callback. * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). * @returns A Promise for the completion of the callback. */ finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise } /** * Fields of the Question model */ interface QuestionFieldRefs { readonly id: FieldRef<"Question", 'String'> readonly quizId: FieldRef<"Question", 'String'> readonly order: FieldRef<"Question", 'Int'> readonly textFr: FieldRef<"Question", 'String'> readonly textEn: FieldRef<"Question", 'String'> readonly textEs: FieldRef<"Question", 'String'> readonly optionsFr: FieldRef<"Question", 'String[]'> readonly optionsEn: FieldRef<"Question", 'String[]'> readonly optionsEs: FieldRef<"Question", 'String[]'> readonly correctIndex: FieldRef<"Question", 'Int'> } // Custom InputTypes /** * Question findUnique */ export type QuestionFindUniqueArgs = { /** * Select specific fields to fetch from the Question */ select?: QuestionSelect | null /** * Omit specific fields from the Question */ omit?: QuestionOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuestionInclude | null /** * Filter, which Question to fetch. */ where: QuestionWhereUniqueInput } /** * Question findUniqueOrThrow */ export type QuestionFindUniqueOrThrowArgs = { /** * Select specific fields to fetch from the Question */ select?: QuestionSelect | null /** * Omit specific fields from the Question */ omit?: QuestionOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuestionInclude | null /** * Filter, which Question to fetch. */ where: QuestionWhereUniqueInput } /** * Question findFirst */ export type QuestionFindFirstArgs = { /** * Select specific fields to fetch from the Question */ select?: QuestionSelect | null /** * Omit specific fields from the Question */ omit?: QuestionOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuestionInclude | null /** * Filter, which Question to fetch. */ where?: QuestionWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Questions to fetch. */ orderBy?: QuestionOrderByWithRelationInput | QuestionOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Questions. */ cursor?: QuestionWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Questions from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Questions. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Questions. */ distinct?: QuestionScalarFieldEnum | QuestionScalarFieldEnum[] } /** * Question findFirstOrThrow */ export type QuestionFindFirstOrThrowArgs = { /** * Select specific fields to fetch from the Question */ select?: QuestionSelect | null /** * Omit specific fields from the Question */ omit?: QuestionOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuestionInclude | null /** * Filter, which Question to fetch. */ where?: QuestionWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Questions to fetch. */ orderBy?: QuestionOrderByWithRelationInput | QuestionOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Questions. */ cursor?: QuestionWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Questions from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Questions. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Questions. */ distinct?: QuestionScalarFieldEnum | QuestionScalarFieldEnum[] } /** * Question findMany */ export type QuestionFindManyArgs = { /** * Select specific fields to fetch from the Question */ select?: QuestionSelect | null /** * Omit specific fields from the Question */ omit?: QuestionOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuestionInclude | null /** * Filter, which Questions to fetch. */ where?: QuestionWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Questions to fetch. */ orderBy?: QuestionOrderByWithRelationInput | QuestionOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for listing Questions. */ cursor?: QuestionWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Questions from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Questions. */ skip?: number distinct?: QuestionScalarFieldEnum | QuestionScalarFieldEnum[] } /** * Question create */ export type QuestionCreateArgs = { /** * Select specific fields to fetch from the Question */ select?: QuestionSelect | null /** * Omit specific fields from the Question */ omit?: QuestionOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuestionInclude | null /** * The data needed to create a Question. */ data: XOR } /** * Question createMany */ export type QuestionCreateManyArgs = { /** * The data used to create many Questions. */ data: QuestionCreateManyInput | QuestionCreateManyInput[] skipDuplicates?: boolean } /** * Question createManyAndReturn */ export type QuestionCreateManyAndReturnArgs = { /** * Select specific fields to fetch from the Question */ select?: QuestionSelectCreateManyAndReturn | null /** * Omit specific fields from the Question */ omit?: QuestionOmit | null /** * The data used to create many Questions. */ data: QuestionCreateManyInput | QuestionCreateManyInput[] skipDuplicates?: boolean /** * Choose, which related nodes to fetch as well */ include?: QuestionIncludeCreateManyAndReturn | null } /** * Question update */ export type QuestionUpdateArgs = { /** * Select specific fields to fetch from the Question */ select?: QuestionSelect | null /** * Omit specific fields from the Question */ omit?: QuestionOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuestionInclude | null /** * The data needed to update a Question. */ data: XOR /** * Choose, which Question to update. */ where: QuestionWhereUniqueInput } /** * Question updateMany */ export type QuestionUpdateManyArgs = { /** * The data used to update Questions. */ data: XOR /** * Filter which Questions to update */ where?: QuestionWhereInput /** * Limit how many Questions to update. */ limit?: number } /** * Question updateManyAndReturn */ export type QuestionUpdateManyAndReturnArgs = { /** * Select specific fields to fetch from the Question */ select?: QuestionSelectUpdateManyAndReturn | null /** * Omit specific fields from the Question */ omit?: QuestionOmit | null /** * The data used to update Questions. */ data: XOR /** * Filter which Questions to update */ where?: QuestionWhereInput /** * Limit how many Questions to update. */ limit?: number /** * Choose, which related nodes to fetch as well */ include?: QuestionIncludeUpdateManyAndReturn | null } /** * Question upsert */ export type QuestionUpsertArgs = { /** * Select specific fields to fetch from the Question */ select?: QuestionSelect | null /** * Omit specific fields from the Question */ omit?: QuestionOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuestionInclude | null /** * The filter to search for the Question to update in case it exists. */ where: QuestionWhereUniqueInput /** * In case the Question found by the `where` argument doesn't exist, create a new Question with this data. */ create: XOR /** * In case the Question was found with the provided `where` argument, update it with this data. */ update: XOR } /** * Question delete */ export type QuestionDeleteArgs = { /** * Select specific fields to fetch from the Question */ select?: QuestionSelect | null /** * Omit specific fields from the Question */ omit?: QuestionOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuestionInclude | null /** * Filter which Question to delete. */ where: QuestionWhereUniqueInput } /** * Question deleteMany */ export type QuestionDeleteManyArgs = { /** * Filter which Questions to delete */ where?: QuestionWhereInput /** * Limit how many Questions to delete. */ limit?: number } /** * Question without action */ export type QuestionDefaultArgs = { /** * Select specific fields to fetch from the Question */ select?: QuestionSelect | null /** * Omit specific fields from the Question */ omit?: QuestionOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuestionInclude | null } /** * Model Enrollment */ export type AggregateEnrollment = { _count: EnrollmentCountAggregateOutputType | null _min: EnrollmentMinAggregateOutputType | null _max: EnrollmentMaxAggregateOutputType | null } export type EnrollmentMinAggregateOutputType = { id: string | null userId: string | null courseId: string | null enrolledAt: Date | null completedAt: Date | null } export type EnrollmentMaxAggregateOutputType = { id: string | null userId: string | null courseId: string | null enrolledAt: Date | null completedAt: Date | null } export type EnrollmentCountAggregateOutputType = { id: number userId: number courseId: number enrolledAt: number completedAt: number _all: number } export type EnrollmentMinAggregateInputType = { id?: true userId?: true courseId?: true enrolledAt?: true completedAt?: true } export type EnrollmentMaxAggregateInputType = { id?: true userId?: true courseId?: true enrolledAt?: true completedAt?: true } export type EnrollmentCountAggregateInputType = { id?: true userId?: true courseId?: true enrolledAt?: true completedAt?: true _all?: true } export type EnrollmentAggregateArgs = { /** * Filter which Enrollment to aggregate. */ where?: EnrollmentWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Enrollments to fetch. */ orderBy?: EnrollmentOrderByWithRelationInput | EnrollmentOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the start position */ cursor?: EnrollmentWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Enrollments from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Enrollments. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Count returned Enrollments **/ _count?: true | EnrollmentCountAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the minimum value **/ _min?: EnrollmentMinAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the maximum value **/ _max?: EnrollmentMaxAggregateInputType } export type GetEnrollmentAggregateType = { [P in keyof T & keyof AggregateEnrollment]: P extends '_count' | 'count' ? T[P] extends true ? number : GetScalarType : GetScalarType } export type EnrollmentGroupByArgs = { where?: EnrollmentWhereInput orderBy?: EnrollmentOrderByWithAggregationInput | EnrollmentOrderByWithAggregationInput[] by: EnrollmentScalarFieldEnum[] | EnrollmentScalarFieldEnum having?: EnrollmentScalarWhereWithAggregatesInput take?: number skip?: number _count?: EnrollmentCountAggregateInputType | true _min?: EnrollmentMinAggregateInputType _max?: EnrollmentMaxAggregateInputType } export type EnrollmentGroupByOutputType = { id: string userId: string courseId: string enrolledAt: Date completedAt: Date | null _count: EnrollmentCountAggregateOutputType | null _min: EnrollmentMinAggregateOutputType | null _max: EnrollmentMaxAggregateOutputType | null } type GetEnrollmentGroupByPayload = Prisma.PrismaPromise< Array< PickEnumerable & { [P in ((keyof T) & (keyof EnrollmentGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : GetScalarType : GetScalarType } > > export type EnrollmentSelect = $Extensions.GetSelect<{ id?: boolean userId?: boolean courseId?: boolean enrolledAt?: boolean completedAt?: boolean user?: boolean | UserDefaultArgs course?: boolean | CourseDefaultArgs }, ExtArgs["result"]["enrollment"]> export type EnrollmentSelectCreateManyAndReturn = $Extensions.GetSelect<{ id?: boolean userId?: boolean courseId?: boolean enrolledAt?: boolean completedAt?: boolean user?: boolean | UserDefaultArgs course?: boolean | CourseDefaultArgs }, ExtArgs["result"]["enrollment"]> export type EnrollmentSelectUpdateManyAndReturn = $Extensions.GetSelect<{ id?: boolean userId?: boolean courseId?: boolean enrolledAt?: boolean completedAt?: boolean user?: boolean | UserDefaultArgs course?: boolean | CourseDefaultArgs }, ExtArgs["result"]["enrollment"]> export type EnrollmentSelectScalar = { id?: boolean userId?: boolean courseId?: boolean enrolledAt?: boolean completedAt?: boolean } export type EnrollmentOmit = $Extensions.GetOmit<"id" | "userId" | "courseId" | "enrolledAt" | "completedAt", ExtArgs["result"]["enrollment"]> export type EnrollmentInclude = { user?: boolean | UserDefaultArgs course?: boolean | CourseDefaultArgs } export type EnrollmentIncludeCreateManyAndReturn = { user?: boolean | UserDefaultArgs course?: boolean | CourseDefaultArgs } export type EnrollmentIncludeUpdateManyAndReturn = { user?: boolean | UserDefaultArgs course?: boolean | CourseDefaultArgs } export type $EnrollmentPayload = { name: "Enrollment" objects: { user: Prisma.$UserPayload course: Prisma.$CoursePayload } scalars: $Extensions.GetPayloadResult<{ id: string userId: string courseId: string enrolledAt: Date completedAt: Date | null }, ExtArgs["result"]["enrollment"]> composites: {} } type EnrollmentGetPayload = $Result.GetResult type EnrollmentCountArgs = Omit & { select?: EnrollmentCountAggregateInputType | true } export interface EnrollmentDelegate { [K: symbol]: { types: Prisma.TypeMap['model']['Enrollment'], meta: { name: 'Enrollment' } } /** * Find zero or one Enrollment that matches the filter. * @param {EnrollmentFindUniqueArgs} args - Arguments to find a Enrollment * @example * // Get one Enrollment * const enrollment = await prisma.enrollment.findUnique({ * where: { * // ... provide filter here * } * }) */ findUnique(args: SelectSubset>): Prisma__EnrollmentClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find one Enrollment that matches the filter or throw an error with `error.code='P2025'` * if no matches were found. * @param {EnrollmentFindUniqueOrThrowArgs} args - Arguments to find a Enrollment * @example * // Get one Enrollment * const enrollment = await prisma.enrollment.findUniqueOrThrow({ * where: { * // ... provide filter here * } * }) */ findUniqueOrThrow(args: SelectSubset>): Prisma__EnrollmentClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find the first Enrollment that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {EnrollmentFindFirstArgs} args - Arguments to find a Enrollment * @example * // Get one Enrollment * const enrollment = await prisma.enrollment.findFirst({ * where: { * // ... provide filter here * } * }) */ findFirst(args?: SelectSubset>): Prisma__EnrollmentClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find the first Enrollment that matches the filter or * throw `PrismaKnownClientError` with `P2025` code if no matches were found. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {EnrollmentFindFirstOrThrowArgs} args - Arguments to find a Enrollment * @example * // Get one Enrollment * const enrollment = await prisma.enrollment.findFirstOrThrow({ * where: { * // ... provide filter here * } * }) */ findFirstOrThrow(args?: SelectSubset>): Prisma__EnrollmentClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find zero or more Enrollments that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {EnrollmentFindManyArgs} args - Arguments to filter and select certain fields only. * @example * // Get all Enrollments * const enrollments = await prisma.enrollment.findMany() * * // Get first 10 Enrollments * const enrollments = await prisma.enrollment.findMany({ take: 10 }) * * // Only select the `id` * const enrollmentWithIdOnly = await prisma.enrollment.findMany({ select: { id: true } }) * */ findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> /** * Create a Enrollment. * @param {EnrollmentCreateArgs} args - Arguments to create a Enrollment. * @example * // Create one Enrollment * const Enrollment = await prisma.enrollment.create({ * data: { * // ... data to create a Enrollment * } * }) * */ create(args: SelectSubset>): Prisma__EnrollmentClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Create many Enrollments. * @param {EnrollmentCreateManyArgs} args - Arguments to create many Enrollments. * @example * // Create many Enrollments * const enrollment = await prisma.enrollment.createMany({ * data: [ * // ... provide data here * ] * }) * */ createMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Create many Enrollments and returns the data saved in the database. * @param {EnrollmentCreateManyAndReturnArgs} args - Arguments to create many Enrollments. * @example * // Create many Enrollments * const enrollment = await prisma.enrollment.createManyAndReturn({ * data: [ * // ... provide data here * ] * }) * * // Create many Enrollments and only return the `id` * const enrollmentWithIdOnly = await prisma.enrollment.createManyAndReturn({ * select: { id: true }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> /** * Delete a Enrollment. * @param {EnrollmentDeleteArgs} args - Arguments to delete one Enrollment. * @example * // Delete one Enrollment * const Enrollment = await prisma.enrollment.delete({ * where: { * // ... filter to delete one Enrollment * } * }) * */ delete(args: SelectSubset>): Prisma__EnrollmentClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Update one Enrollment. * @param {EnrollmentUpdateArgs} args - Arguments to update one Enrollment. * @example * // Update one Enrollment * const enrollment = await prisma.enrollment.update({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ update(args: SelectSubset>): Prisma__EnrollmentClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Delete zero or more Enrollments. * @param {EnrollmentDeleteManyArgs} args - Arguments to filter Enrollments to delete. * @example * // Delete a few Enrollments * const { count } = await prisma.enrollment.deleteMany({ * where: { * // ... provide filter here * } * }) * */ deleteMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Enrollments. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {EnrollmentUpdateManyArgs} args - Arguments to update one or more rows. * @example * // Update many Enrollments * const enrollment = await prisma.enrollment.updateMany({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ updateMany(args: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Enrollments and returns the data updated in the database. * @param {EnrollmentUpdateManyAndReturnArgs} args - Arguments to update many Enrollments. * @example * // Update many Enrollments * const enrollment = await prisma.enrollment.updateManyAndReturn({ * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * * // Update zero or more Enrollments and only return the `id` * const enrollmentWithIdOnly = await prisma.enrollment.updateManyAndReturn({ * select: { id: true }, * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> /** * Create or update one Enrollment. * @param {EnrollmentUpsertArgs} args - Arguments to update or create a Enrollment. * @example * // Update or create a Enrollment * const enrollment = await prisma.enrollment.upsert({ * create: { * // ... data to create a Enrollment * }, * update: { * // ... in case it already exists, update * }, * where: { * // ... the filter for the Enrollment we want to update * } * }) */ upsert(args: SelectSubset>): Prisma__EnrollmentClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Count the number of Enrollments. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {EnrollmentCountArgs} args - Arguments to filter Enrollments to count. * @example * // Count the number of Enrollments * const count = await prisma.enrollment.count({ * where: { * // ... the filter for the Enrollments we want to count * } * }) **/ count( args?: Subset, ): Prisma.PrismaPromise< T extends $Utils.Record<'select', any> ? T['select'] extends true ? number : GetScalarType : number > /** * Allows you to perform aggregations operations on a Enrollment. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {EnrollmentAggregateArgs} args - Select which aggregations you would like to apply and on what fields. * @example * // Ordered by age ascending * // Where email contains prisma.io * // Limited to the 10 users * const aggregations = await prisma.user.aggregate({ * _avg: { * age: true, * }, * where: { * email: { * contains: "prisma.io", * }, * }, * orderBy: { * age: "asc", * }, * take: 10, * }) **/ aggregate(args: Subset): Prisma.PrismaPromise> /** * Group by Enrollment. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {EnrollmentGroupByArgs} args - Group by arguments. * @example * // Group by city, order by createdAt, get count * const result = await prisma.user.groupBy({ * by: ['city', 'createdAt'], * orderBy: { * createdAt: true * }, * _count: { * _all: true * }, * }) * **/ groupBy< T extends EnrollmentGroupByArgs, HasSelectOrTake extends Or< Extends<'skip', Keys>, Extends<'take', Keys> >, OrderByArg extends True extends HasSelectOrTake ? { orderBy: EnrollmentGroupByArgs['orderBy'] } : { orderBy?: EnrollmentGroupByArgs['orderBy'] }, OrderFields extends ExcludeUnderscoreKeys>>, ByFields extends MaybeTupleToUnion, ByValid extends Has, HavingFields extends GetHavingFields, HavingValid extends Has, ByEmpty extends T['by'] extends never[] ? True : False, InputErrors extends ByEmpty extends True ? `Error: "by" must not be empty.` : HavingValid extends False ? { [P in HavingFields]: P extends ByFields ? never : P extends string ? `Error: Field "${P}" used in "having" needs to be provided in "by".` : [ Error, 'Field ', P, ` in "having" needs to be provided in "by"`, ] }[HavingFields] : 'take' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "take", you also need to provide "orderBy"' : 'skip' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "skip", you also need to provide "orderBy"' : ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetEnrollmentGroupByPayload : Prisma.PrismaPromise /** * Fields of the Enrollment model */ readonly fields: EnrollmentFieldRefs; } /** * The delegate class that acts as a "Promise-like" for Enrollment. * Why is this prefixed with `Prisma__`? * Because we want to prevent naming conflicts as mentioned in * https://github.com/prisma/prisma-client-js/issues/707 */ export interface Prisma__EnrollmentClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" user = {}>(args?: Subset>): Prisma__UserClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> course = {}>(args?: Subset>): Prisma__CourseClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of which ever callback is executed. */ then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback for only the rejection of the Promise. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of the callback. */ catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The * resolved value cannot be modified from the callback. * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). * @returns A Promise for the completion of the callback. */ finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise } /** * Fields of the Enrollment model */ interface EnrollmentFieldRefs { readonly id: FieldRef<"Enrollment", 'String'> readonly userId: FieldRef<"Enrollment", 'String'> readonly courseId: FieldRef<"Enrollment", 'String'> readonly enrolledAt: FieldRef<"Enrollment", 'DateTime'> readonly completedAt: FieldRef<"Enrollment", 'DateTime'> } // Custom InputTypes /** * Enrollment findUnique */ export type EnrollmentFindUniqueArgs = { /** * Select specific fields to fetch from the Enrollment */ select?: EnrollmentSelect | null /** * Omit specific fields from the Enrollment */ omit?: EnrollmentOmit | null /** * Choose, which related nodes to fetch as well */ include?: EnrollmentInclude | null /** * Filter, which Enrollment to fetch. */ where: EnrollmentWhereUniqueInput } /** * Enrollment findUniqueOrThrow */ export type EnrollmentFindUniqueOrThrowArgs = { /** * Select specific fields to fetch from the Enrollment */ select?: EnrollmentSelect | null /** * Omit specific fields from the Enrollment */ omit?: EnrollmentOmit | null /** * Choose, which related nodes to fetch as well */ include?: EnrollmentInclude | null /** * Filter, which Enrollment to fetch. */ where: EnrollmentWhereUniqueInput } /** * Enrollment findFirst */ export type EnrollmentFindFirstArgs = { /** * Select specific fields to fetch from the Enrollment */ select?: EnrollmentSelect | null /** * Omit specific fields from the Enrollment */ omit?: EnrollmentOmit | null /** * Choose, which related nodes to fetch as well */ include?: EnrollmentInclude | null /** * Filter, which Enrollment to fetch. */ where?: EnrollmentWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Enrollments to fetch. */ orderBy?: EnrollmentOrderByWithRelationInput | EnrollmentOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Enrollments. */ cursor?: EnrollmentWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Enrollments from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Enrollments. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Enrollments. */ distinct?: EnrollmentScalarFieldEnum | EnrollmentScalarFieldEnum[] } /** * Enrollment findFirstOrThrow */ export type EnrollmentFindFirstOrThrowArgs = { /** * Select specific fields to fetch from the Enrollment */ select?: EnrollmentSelect | null /** * Omit specific fields from the Enrollment */ omit?: EnrollmentOmit | null /** * Choose, which related nodes to fetch as well */ include?: EnrollmentInclude | null /** * Filter, which Enrollment to fetch. */ where?: EnrollmentWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Enrollments to fetch. */ orderBy?: EnrollmentOrderByWithRelationInput | EnrollmentOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Enrollments. */ cursor?: EnrollmentWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Enrollments from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Enrollments. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Enrollments. */ distinct?: EnrollmentScalarFieldEnum | EnrollmentScalarFieldEnum[] } /** * Enrollment findMany */ export type EnrollmentFindManyArgs = { /** * Select specific fields to fetch from the Enrollment */ select?: EnrollmentSelect | null /** * Omit specific fields from the Enrollment */ omit?: EnrollmentOmit | null /** * Choose, which related nodes to fetch as well */ include?: EnrollmentInclude | null /** * Filter, which Enrollments to fetch. */ where?: EnrollmentWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Enrollments to fetch. */ orderBy?: EnrollmentOrderByWithRelationInput | EnrollmentOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for listing Enrollments. */ cursor?: EnrollmentWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Enrollments from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Enrollments. */ skip?: number distinct?: EnrollmentScalarFieldEnum | EnrollmentScalarFieldEnum[] } /** * Enrollment create */ export type EnrollmentCreateArgs = { /** * Select specific fields to fetch from the Enrollment */ select?: EnrollmentSelect | null /** * Omit specific fields from the Enrollment */ omit?: EnrollmentOmit | null /** * Choose, which related nodes to fetch as well */ include?: EnrollmentInclude | null /** * The data needed to create a Enrollment. */ data: XOR } /** * Enrollment createMany */ export type EnrollmentCreateManyArgs = { /** * The data used to create many Enrollments. */ data: EnrollmentCreateManyInput | EnrollmentCreateManyInput[] skipDuplicates?: boolean } /** * Enrollment createManyAndReturn */ export type EnrollmentCreateManyAndReturnArgs = { /** * Select specific fields to fetch from the Enrollment */ select?: EnrollmentSelectCreateManyAndReturn | null /** * Omit specific fields from the Enrollment */ omit?: EnrollmentOmit | null /** * The data used to create many Enrollments. */ data: EnrollmentCreateManyInput | EnrollmentCreateManyInput[] skipDuplicates?: boolean /** * Choose, which related nodes to fetch as well */ include?: EnrollmentIncludeCreateManyAndReturn | null } /** * Enrollment update */ export type EnrollmentUpdateArgs = { /** * Select specific fields to fetch from the Enrollment */ select?: EnrollmentSelect | null /** * Omit specific fields from the Enrollment */ omit?: EnrollmentOmit | null /** * Choose, which related nodes to fetch as well */ include?: EnrollmentInclude | null /** * The data needed to update a Enrollment. */ data: XOR /** * Choose, which Enrollment to update. */ where: EnrollmentWhereUniqueInput } /** * Enrollment updateMany */ export type EnrollmentUpdateManyArgs = { /** * The data used to update Enrollments. */ data: XOR /** * Filter which Enrollments to update */ where?: EnrollmentWhereInput /** * Limit how many Enrollments to update. */ limit?: number } /** * Enrollment updateManyAndReturn */ export type EnrollmentUpdateManyAndReturnArgs = { /** * Select specific fields to fetch from the Enrollment */ select?: EnrollmentSelectUpdateManyAndReturn | null /** * Omit specific fields from the Enrollment */ omit?: EnrollmentOmit | null /** * The data used to update Enrollments. */ data: XOR /** * Filter which Enrollments to update */ where?: EnrollmentWhereInput /** * Limit how many Enrollments to update. */ limit?: number /** * Choose, which related nodes to fetch as well */ include?: EnrollmentIncludeUpdateManyAndReturn | null } /** * Enrollment upsert */ export type EnrollmentUpsertArgs = { /** * Select specific fields to fetch from the Enrollment */ select?: EnrollmentSelect | null /** * Omit specific fields from the Enrollment */ omit?: EnrollmentOmit | null /** * Choose, which related nodes to fetch as well */ include?: EnrollmentInclude | null /** * The filter to search for the Enrollment to update in case it exists. */ where: EnrollmentWhereUniqueInput /** * In case the Enrollment found by the `where` argument doesn't exist, create a new Enrollment with this data. */ create: XOR /** * In case the Enrollment was found with the provided `where` argument, update it with this data. */ update: XOR } /** * Enrollment delete */ export type EnrollmentDeleteArgs = { /** * Select specific fields to fetch from the Enrollment */ select?: EnrollmentSelect | null /** * Omit specific fields from the Enrollment */ omit?: EnrollmentOmit | null /** * Choose, which related nodes to fetch as well */ include?: EnrollmentInclude | null /** * Filter which Enrollment to delete. */ where: EnrollmentWhereUniqueInput } /** * Enrollment deleteMany */ export type EnrollmentDeleteManyArgs = { /** * Filter which Enrollments to delete */ where?: EnrollmentWhereInput /** * Limit how many Enrollments to delete. */ limit?: number } /** * Enrollment without action */ export type EnrollmentDefaultArgs = { /** * Select specific fields to fetch from the Enrollment */ select?: EnrollmentSelect | null /** * Omit specific fields from the Enrollment */ omit?: EnrollmentOmit | null /** * Choose, which related nodes to fetch as well */ include?: EnrollmentInclude | null } /** * Model LessonProgress */ export type AggregateLessonProgress = { _count: LessonProgressCountAggregateOutputType | null _min: LessonProgressMinAggregateOutputType | null _max: LessonProgressMaxAggregateOutputType | null } export type LessonProgressMinAggregateOutputType = { id: string | null userId: string | null lessonId: string | null completedAt: Date | null } export type LessonProgressMaxAggregateOutputType = { id: string | null userId: string | null lessonId: string | null completedAt: Date | null } export type LessonProgressCountAggregateOutputType = { id: number userId: number lessonId: number completedAt: number _all: number } export type LessonProgressMinAggregateInputType = { id?: true userId?: true lessonId?: true completedAt?: true } export type LessonProgressMaxAggregateInputType = { id?: true userId?: true lessonId?: true completedAt?: true } export type LessonProgressCountAggregateInputType = { id?: true userId?: true lessonId?: true completedAt?: true _all?: true } export type LessonProgressAggregateArgs = { /** * Filter which LessonProgress to aggregate. */ where?: LessonProgressWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of LessonProgresses to fetch. */ orderBy?: LessonProgressOrderByWithRelationInput | LessonProgressOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the start position */ cursor?: LessonProgressWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` LessonProgresses from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` LessonProgresses. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Count returned LessonProgresses **/ _count?: true | LessonProgressCountAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the minimum value **/ _min?: LessonProgressMinAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the maximum value **/ _max?: LessonProgressMaxAggregateInputType } export type GetLessonProgressAggregateType = { [P in keyof T & keyof AggregateLessonProgress]: P extends '_count' | 'count' ? T[P] extends true ? number : GetScalarType : GetScalarType } export type LessonProgressGroupByArgs = { where?: LessonProgressWhereInput orderBy?: LessonProgressOrderByWithAggregationInput | LessonProgressOrderByWithAggregationInput[] by: LessonProgressScalarFieldEnum[] | LessonProgressScalarFieldEnum having?: LessonProgressScalarWhereWithAggregatesInput take?: number skip?: number _count?: LessonProgressCountAggregateInputType | true _min?: LessonProgressMinAggregateInputType _max?: LessonProgressMaxAggregateInputType } export type LessonProgressGroupByOutputType = { id: string userId: string lessonId: string completedAt: Date _count: LessonProgressCountAggregateOutputType | null _min: LessonProgressMinAggregateOutputType | null _max: LessonProgressMaxAggregateOutputType | null } type GetLessonProgressGroupByPayload = Prisma.PrismaPromise< Array< PickEnumerable & { [P in ((keyof T) & (keyof LessonProgressGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : GetScalarType : GetScalarType } > > export type LessonProgressSelect = $Extensions.GetSelect<{ id?: boolean userId?: boolean lessonId?: boolean completedAt?: boolean user?: boolean | UserDefaultArgs lesson?: boolean | LessonDefaultArgs }, ExtArgs["result"]["lessonProgress"]> export type LessonProgressSelectCreateManyAndReturn = $Extensions.GetSelect<{ id?: boolean userId?: boolean lessonId?: boolean completedAt?: boolean user?: boolean | UserDefaultArgs lesson?: boolean | LessonDefaultArgs }, ExtArgs["result"]["lessonProgress"]> export type LessonProgressSelectUpdateManyAndReturn = $Extensions.GetSelect<{ id?: boolean userId?: boolean lessonId?: boolean completedAt?: boolean user?: boolean | UserDefaultArgs lesson?: boolean | LessonDefaultArgs }, ExtArgs["result"]["lessonProgress"]> export type LessonProgressSelectScalar = { id?: boolean userId?: boolean lessonId?: boolean completedAt?: boolean } export type LessonProgressOmit = $Extensions.GetOmit<"id" | "userId" | "lessonId" | "completedAt", ExtArgs["result"]["lessonProgress"]> export type LessonProgressInclude = { user?: boolean | UserDefaultArgs lesson?: boolean | LessonDefaultArgs } export type LessonProgressIncludeCreateManyAndReturn = { user?: boolean | UserDefaultArgs lesson?: boolean | LessonDefaultArgs } export type LessonProgressIncludeUpdateManyAndReturn = { user?: boolean | UserDefaultArgs lesson?: boolean | LessonDefaultArgs } export type $LessonProgressPayload = { name: "LessonProgress" objects: { user: Prisma.$UserPayload lesson: Prisma.$LessonPayload } scalars: $Extensions.GetPayloadResult<{ id: string userId: string lessonId: string completedAt: Date }, ExtArgs["result"]["lessonProgress"]> composites: {} } type LessonProgressGetPayload = $Result.GetResult type LessonProgressCountArgs = Omit & { select?: LessonProgressCountAggregateInputType | true } export interface LessonProgressDelegate { [K: symbol]: { types: Prisma.TypeMap['model']['LessonProgress'], meta: { name: 'LessonProgress' } } /** * Find zero or one LessonProgress that matches the filter. * @param {LessonProgressFindUniqueArgs} args - Arguments to find a LessonProgress * @example * // Get one LessonProgress * const lessonProgress = await prisma.lessonProgress.findUnique({ * where: { * // ... provide filter here * } * }) */ findUnique(args: SelectSubset>): Prisma__LessonProgressClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find one LessonProgress that matches the filter or throw an error with `error.code='P2025'` * if no matches were found. * @param {LessonProgressFindUniqueOrThrowArgs} args - Arguments to find a LessonProgress * @example * // Get one LessonProgress * const lessonProgress = await prisma.lessonProgress.findUniqueOrThrow({ * where: { * // ... provide filter here * } * }) */ findUniqueOrThrow(args: SelectSubset>): Prisma__LessonProgressClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find the first LessonProgress that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {LessonProgressFindFirstArgs} args - Arguments to find a LessonProgress * @example * // Get one LessonProgress * const lessonProgress = await prisma.lessonProgress.findFirst({ * where: { * // ... provide filter here * } * }) */ findFirst(args?: SelectSubset>): Prisma__LessonProgressClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find the first LessonProgress that matches the filter or * throw `PrismaKnownClientError` with `P2025` code if no matches were found. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {LessonProgressFindFirstOrThrowArgs} args - Arguments to find a LessonProgress * @example * // Get one LessonProgress * const lessonProgress = await prisma.lessonProgress.findFirstOrThrow({ * where: { * // ... provide filter here * } * }) */ findFirstOrThrow(args?: SelectSubset>): Prisma__LessonProgressClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find zero or more LessonProgresses that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {LessonProgressFindManyArgs} args - Arguments to filter and select certain fields only. * @example * // Get all LessonProgresses * const lessonProgresses = await prisma.lessonProgress.findMany() * * // Get first 10 LessonProgresses * const lessonProgresses = await prisma.lessonProgress.findMany({ take: 10 }) * * // Only select the `id` * const lessonProgressWithIdOnly = await prisma.lessonProgress.findMany({ select: { id: true } }) * */ findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> /** * Create a LessonProgress. * @param {LessonProgressCreateArgs} args - Arguments to create a LessonProgress. * @example * // Create one LessonProgress * const LessonProgress = await prisma.lessonProgress.create({ * data: { * // ... data to create a LessonProgress * } * }) * */ create(args: SelectSubset>): Prisma__LessonProgressClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Create many LessonProgresses. * @param {LessonProgressCreateManyArgs} args - Arguments to create many LessonProgresses. * @example * // Create many LessonProgresses * const lessonProgress = await prisma.lessonProgress.createMany({ * data: [ * // ... provide data here * ] * }) * */ createMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Create many LessonProgresses and returns the data saved in the database. * @param {LessonProgressCreateManyAndReturnArgs} args - Arguments to create many LessonProgresses. * @example * // Create many LessonProgresses * const lessonProgress = await prisma.lessonProgress.createManyAndReturn({ * data: [ * // ... provide data here * ] * }) * * // Create many LessonProgresses and only return the `id` * const lessonProgressWithIdOnly = await prisma.lessonProgress.createManyAndReturn({ * select: { id: true }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> /** * Delete a LessonProgress. * @param {LessonProgressDeleteArgs} args - Arguments to delete one LessonProgress. * @example * // Delete one LessonProgress * const LessonProgress = await prisma.lessonProgress.delete({ * where: { * // ... filter to delete one LessonProgress * } * }) * */ delete(args: SelectSubset>): Prisma__LessonProgressClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Update one LessonProgress. * @param {LessonProgressUpdateArgs} args - Arguments to update one LessonProgress. * @example * // Update one LessonProgress * const lessonProgress = await prisma.lessonProgress.update({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ update(args: SelectSubset>): Prisma__LessonProgressClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Delete zero or more LessonProgresses. * @param {LessonProgressDeleteManyArgs} args - Arguments to filter LessonProgresses to delete. * @example * // Delete a few LessonProgresses * const { count } = await prisma.lessonProgress.deleteMany({ * where: { * // ... provide filter here * } * }) * */ deleteMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more LessonProgresses. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {LessonProgressUpdateManyArgs} args - Arguments to update one or more rows. * @example * // Update many LessonProgresses * const lessonProgress = await prisma.lessonProgress.updateMany({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ updateMany(args: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more LessonProgresses and returns the data updated in the database. * @param {LessonProgressUpdateManyAndReturnArgs} args - Arguments to update many LessonProgresses. * @example * // Update many LessonProgresses * const lessonProgress = await prisma.lessonProgress.updateManyAndReturn({ * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * * // Update zero or more LessonProgresses and only return the `id` * const lessonProgressWithIdOnly = await prisma.lessonProgress.updateManyAndReturn({ * select: { id: true }, * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> /** * Create or update one LessonProgress. * @param {LessonProgressUpsertArgs} args - Arguments to update or create a LessonProgress. * @example * // Update or create a LessonProgress * const lessonProgress = await prisma.lessonProgress.upsert({ * create: { * // ... data to create a LessonProgress * }, * update: { * // ... in case it already exists, update * }, * where: { * // ... the filter for the LessonProgress we want to update * } * }) */ upsert(args: SelectSubset>): Prisma__LessonProgressClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Count the number of LessonProgresses. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {LessonProgressCountArgs} args - Arguments to filter LessonProgresses to count. * @example * // Count the number of LessonProgresses * const count = await prisma.lessonProgress.count({ * where: { * // ... the filter for the LessonProgresses we want to count * } * }) **/ count( args?: Subset, ): Prisma.PrismaPromise< T extends $Utils.Record<'select', any> ? T['select'] extends true ? number : GetScalarType : number > /** * Allows you to perform aggregations operations on a LessonProgress. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {LessonProgressAggregateArgs} args - Select which aggregations you would like to apply and on what fields. * @example * // Ordered by age ascending * // Where email contains prisma.io * // Limited to the 10 users * const aggregations = await prisma.user.aggregate({ * _avg: { * age: true, * }, * where: { * email: { * contains: "prisma.io", * }, * }, * orderBy: { * age: "asc", * }, * take: 10, * }) **/ aggregate(args: Subset): Prisma.PrismaPromise> /** * Group by LessonProgress. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {LessonProgressGroupByArgs} args - Group by arguments. * @example * // Group by city, order by createdAt, get count * const result = await prisma.user.groupBy({ * by: ['city', 'createdAt'], * orderBy: { * createdAt: true * }, * _count: { * _all: true * }, * }) * **/ groupBy< T extends LessonProgressGroupByArgs, HasSelectOrTake extends Or< Extends<'skip', Keys>, Extends<'take', Keys> >, OrderByArg extends True extends HasSelectOrTake ? { orderBy: LessonProgressGroupByArgs['orderBy'] } : { orderBy?: LessonProgressGroupByArgs['orderBy'] }, OrderFields extends ExcludeUnderscoreKeys>>, ByFields extends MaybeTupleToUnion, ByValid extends Has, HavingFields extends GetHavingFields, HavingValid extends Has, ByEmpty extends T['by'] extends never[] ? True : False, InputErrors extends ByEmpty extends True ? `Error: "by" must not be empty.` : HavingValid extends False ? { [P in HavingFields]: P extends ByFields ? never : P extends string ? `Error: Field "${P}" used in "having" needs to be provided in "by".` : [ Error, 'Field ', P, ` in "having" needs to be provided in "by"`, ] }[HavingFields] : 'take' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "take", you also need to provide "orderBy"' : 'skip' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "skip", you also need to provide "orderBy"' : ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetLessonProgressGroupByPayload : Prisma.PrismaPromise /** * Fields of the LessonProgress model */ readonly fields: LessonProgressFieldRefs; } /** * The delegate class that acts as a "Promise-like" for LessonProgress. * Why is this prefixed with `Prisma__`? * Because we want to prevent naming conflicts as mentioned in * https://github.com/prisma/prisma-client-js/issues/707 */ export interface Prisma__LessonProgressClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" user = {}>(args?: Subset>): Prisma__UserClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> lesson = {}>(args?: Subset>): Prisma__LessonClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of which ever callback is executed. */ then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback for only the rejection of the Promise. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of the callback. */ catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The * resolved value cannot be modified from the callback. * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). * @returns A Promise for the completion of the callback. */ finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise } /** * Fields of the LessonProgress model */ interface LessonProgressFieldRefs { readonly id: FieldRef<"LessonProgress", 'String'> readonly userId: FieldRef<"LessonProgress", 'String'> readonly lessonId: FieldRef<"LessonProgress", 'String'> readonly completedAt: FieldRef<"LessonProgress", 'DateTime'> } // Custom InputTypes /** * LessonProgress findUnique */ export type LessonProgressFindUniqueArgs = { /** * Select specific fields to fetch from the LessonProgress */ select?: LessonProgressSelect | null /** * Omit specific fields from the LessonProgress */ omit?: LessonProgressOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonProgressInclude | null /** * Filter, which LessonProgress to fetch. */ where: LessonProgressWhereUniqueInput } /** * LessonProgress findUniqueOrThrow */ export type LessonProgressFindUniqueOrThrowArgs = { /** * Select specific fields to fetch from the LessonProgress */ select?: LessonProgressSelect | null /** * Omit specific fields from the LessonProgress */ omit?: LessonProgressOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonProgressInclude | null /** * Filter, which LessonProgress to fetch. */ where: LessonProgressWhereUniqueInput } /** * LessonProgress findFirst */ export type LessonProgressFindFirstArgs = { /** * Select specific fields to fetch from the LessonProgress */ select?: LessonProgressSelect | null /** * Omit specific fields from the LessonProgress */ omit?: LessonProgressOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonProgressInclude | null /** * Filter, which LessonProgress to fetch. */ where?: LessonProgressWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of LessonProgresses to fetch. */ orderBy?: LessonProgressOrderByWithRelationInput | LessonProgressOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for LessonProgresses. */ cursor?: LessonProgressWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` LessonProgresses from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` LessonProgresses. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of LessonProgresses. */ distinct?: LessonProgressScalarFieldEnum | LessonProgressScalarFieldEnum[] } /** * LessonProgress findFirstOrThrow */ export type LessonProgressFindFirstOrThrowArgs = { /** * Select specific fields to fetch from the LessonProgress */ select?: LessonProgressSelect | null /** * Omit specific fields from the LessonProgress */ omit?: LessonProgressOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonProgressInclude | null /** * Filter, which LessonProgress to fetch. */ where?: LessonProgressWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of LessonProgresses to fetch. */ orderBy?: LessonProgressOrderByWithRelationInput | LessonProgressOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for LessonProgresses. */ cursor?: LessonProgressWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` LessonProgresses from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` LessonProgresses. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of LessonProgresses. */ distinct?: LessonProgressScalarFieldEnum | LessonProgressScalarFieldEnum[] } /** * LessonProgress findMany */ export type LessonProgressFindManyArgs = { /** * Select specific fields to fetch from the LessonProgress */ select?: LessonProgressSelect | null /** * Omit specific fields from the LessonProgress */ omit?: LessonProgressOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonProgressInclude | null /** * Filter, which LessonProgresses to fetch. */ where?: LessonProgressWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of LessonProgresses to fetch. */ orderBy?: LessonProgressOrderByWithRelationInput | LessonProgressOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for listing LessonProgresses. */ cursor?: LessonProgressWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` LessonProgresses from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` LessonProgresses. */ skip?: number distinct?: LessonProgressScalarFieldEnum | LessonProgressScalarFieldEnum[] } /** * LessonProgress create */ export type LessonProgressCreateArgs = { /** * Select specific fields to fetch from the LessonProgress */ select?: LessonProgressSelect | null /** * Omit specific fields from the LessonProgress */ omit?: LessonProgressOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonProgressInclude | null /** * The data needed to create a LessonProgress. */ data: XOR } /** * LessonProgress createMany */ export type LessonProgressCreateManyArgs = { /** * The data used to create many LessonProgresses. */ data: LessonProgressCreateManyInput | LessonProgressCreateManyInput[] skipDuplicates?: boolean } /** * LessonProgress createManyAndReturn */ export type LessonProgressCreateManyAndReturnArgs = { /** * Select specific fields to fetch from the LessonProgress */ select?: LessonProgressSelectCreateManyAndReturn | null /** * Omit specific fields from the LessonProgress */ omit?: LessonProgressOmit | null /** * The data used to create many LessonProgresses. */ data: LessonProgressCreateManyInput | LessonProgressCreateManyInput[] skipDuplicates?: boolean /** * Choose, which related nodes to fetch as well */ include?: LessonProgressIncludeCreateManyAndReturn | null } /** * LessonProgress update */ export type LessonProgressUpdateArgs = { /** * Select specific fields to fetch from the LessonProgress */ select?: LessonProgressSelect | null /** * Omit specific fields from the LessonProgress */ omit?: LessonProgressOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonProgressInclude | null /** * The data needed to update a LessonProgress. */ data: XOR /** * Choose, which LessonProgress to update. */ where: LessonProgressWhereUniqueInput } /** * LessonProgress updateMany */ export type LessonProgressUpdateManyArgs = { /** * The data used to update LessonProgresses. */ data: XOR /** * Filter which LessonProgresses to update */ where?: LessonProgressWhereInput /** * Limit how many LessonProgresses to update. */ limit?: number } /** * LessonProgress updateManyAndReturn */ export type LessonProgressUpdateManyAndReturnArgs = { /** * Select specific fields to fetch from the LessonProgress */ select?: LessonProgressSelectUpdateManyAndReturn | null /** * Omit specific fields from the LessonProgress */ omit?: LessonProgressOmit | null /** * The data used to update LessonProgresses. */ data: XOR /** * Filter which LessonProgresses to update */ where?: LessonProgressWhereInput /** * Limit how many LessonProgresses to update. */ limit?: number /** * Choose, which related nodes to fetch as well */ include?: LessonProgressIncludeUpdateManyAndReturn | null } /** * LessonProgress upsert */ export type LessonProgressUpsertArgs = { /** * Select specific fields to fetch from the LessonProgress */ select?: LessonProgressSelect | null /** * Omit specific fields from the LessonProgress */ omit?: LessonProgressOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonProgressInclude | null /** * The filter to search for the LessonProgress to update in case it exists. */ where: LessonProgressWhereUniqueInput /** * In case the LessonProgress found by the `where` argument doesn't exist, create a new LessonProgress with this data. */ create: XOR /** * In case the LessonProgress was found with the provided `where` argument, update it with this data. */ update: XOR } /** * LessonProgress delete */ export type LessonProgressDeleteArgs = { /** * Select specific fields to fetch from the LessonProgress */ select?: LessonProgressSelect | null /** * Omit specific fields from the LessonProgress */ omit?: LessonProgressOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonProgressInclude | null /** * Filter which LessonProgress to delete. */ where: LessonProgressWhereUniqueInput } /** * LessonProgress deleteMany */ export type LessonProgressDeleteManyArgs = { /** * Filter which LessonProgresses to delete */ where?: LessonProgressWhereInput /** * Limit how many LessonProgresses to delete. */ limit?: number } /** * LessonProgress without action */ export type LessonProgressDefaultArgs = { /** * Select specific fields to fetch from the LessonProgress */ select?: LessonProgressSelect | null /** * Omit specific fields from the LessonProgress */ omit?: LessonProgressOmit | null /** * Choose, which related nodes to fetch as well */ include?: LessonProgressInclude | null } /** * Model QuizAttempt */ export type AggregateQuizAttempt = { _count: QuizAttemptCountAggregateOutputType | null _avg: QuizAttemptAvgAggregateOutputType | null _sum: QuizAttemptSumAggregateOutputType | null _min: QuizAttemptMinAggregateOutputType | null _max: QuizAttemptMaxAggregateOutputType | null } export type QuizAttemptAvgAggregateOutputType = { score: number | null answers: number | null } export type QuizAttemptSumAggregateOutputType = { score: number | null answers: number[] } export type QuizAttemptMinAggregateOutputType = { id: string | null userId: string | null quizId: string | null score: number | null passed: boolean | null completedAt: Date | null } export type QuizAttemptMaxAggregateOutputType = { id: string | null userId: string | null quizId: string | null score: number | null passed: boolean | null completedAt: Date | null } export type QuizAttemptCountAggregateOutputType = { id: number userId: number quizId: number score: number passed: number answers: number completedAt: number _all: number } export type QuizAttemptAvgAggregateInputType = { score?: true answers?: true } export type QuizAttemptSumAggregateInputType = { score?: true answers?: true } export type QuizAttemptMinAggregateInputType = { id?: true userId?: true quizId?: true score?: true passed?: true completedAt?: true } export type QuizAttemptMaxAggregateInputType = { id?: true userId?: true quizId?: true score?: true passed?: true completedAt?: true } export type QuizAttemptCountAggregateInputType = { id?: true userId?: true quizId?: true score?: true passed?: true answers?: true completedAt?: true _all?: true } export type QuizAttemptAggregateArgs = { /** * Filter which QuizAttempt to aggregate. */ where?: QuizAttemptWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of QuizAttempts to fetch. */ orderBy?: QuizAttemptOrderByWithRelationInput | QuizAttemptOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the start position */ cursor?: QuizAttemptWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` QuizAttempts from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` QuizAttempts. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Count returned QuizAttempts **/ _count?: true | QuizAttemptCountAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to average **/ _avg?: QuizAttemptAvgAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to sum **/ _sum?: QuizAttemptSumAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the minimum value **/ _min?: QuizAttemptMinAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the maximum value **/ _max?: QuizAttemptMaxAggregateInputType } export type GetQuizAttemptAggregateType = { [P in keyof T & keyof AggregateQuizAttempt]: P extends '_count' | 'count' ? T[P] extends true ? number : GetScalarType : GetScalarType } export type QuizAttemptGroupByArgs = { where?: QuizAttemptWhereInput orderBy?: QuizAttemptOrderByWithAggregationInput | QuizAttemptOrderByWithAggregationInput[] by: QuizAttemptScalarFieldEnum[] | QuizAttemptScalarFieldEnum having?: QuizAttemptScalarWhereWithAggregatesInput take?: number skip?: number _count?: QuizAttemptCountAggregateInputType | true _avg?: QuizAttemptAvgAggregateInputType _sum?: QuizAttemptSumAggregateInputType _min?: QuizAttemptMinAggregateInputType _max?: QuizAttemptMaxAggregateInputType } export type QuizAttemptGroupByOutputType = { id: string userId: string quizId: string score: number passed: boolean answers: number[] completedAt: Date _count: QuizAttemptCountAggregateOutputType | null _avg: QuizAttemptAvgAggregateOutputType | null _sum: QuizAttemptSumAggregateOutputType | null _min: QuizAttemptMinAggregateOutputType | null _max: QuizAttemptMaxAggregateOutputType | null } type GetQuizAttemptGroupByPayload = Prisma.PrismaPromise< Array< PickEnumerable & { [P in ((keyof T) & (keyof QuizAttemptGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : GetScalarType : GetScalarType } > > export type QuizAttemptSelect = $Extensions.GetSelect<{ id?: boolean userId?: boolean quizId?: boolean score?: boolean passed?: boolean answers?: boolean completedAt?: boolean user?: boolean | UserDefaultArgs quiz?: boolean | QuizDefaultArgs }, ExtArgs["result"]["quizAttempt"]> export type QuizAttemptSelectCreateManyAndReturn = $Extensions.GetSelect<{ id?: boolean userId?: boolean quizId?: boolean score?: boolean passed?: boolean answers?: boolean completedAt?: boolean user?: boolean | UserDefaultArgs quiz?: boolean | QuizDefaultArgs }, ExtArgs["result"]["quizAttempt"]> export type QuizAttemptSelectUpdateManyAndReturn = $Extensions.GetSelect<{ id?: boolean userId?: boolean quizId?: boolean score?: boolean passed?: boolean answers?: boolean completedAt?: boolean user?: boolean | UserDefaultArgs quiz?: boolean | QuizDefaultArgs }, ExtArgs["result"]["quizAttempt"]> export type QuizAttemptSelectScalar = { id?: boolean userId?: boolean quizId?: boolean score?: boolean passed?: boolean answers?: boolean completedAt?: boolean } export type QuizAttemptOmit = $Extensions.GetOmit<"id" | "userId" | "quizId" | "score" | "passed" | "answers" | "completedAt", ExtArgs["result"]["quizAttempt"]> export type QuizAttemptInclude = { user?: boolean | UserDefaultArgs quiz?: boolean | QuizDefaultArgs } export type QuizAttemptIncludeCreateManyAndReturn = { user?: boolean | UserDefaultArgs quiz?: boolean | QuizDefaultArgs } export type QuizAttemptIncludeUpdateManyAndReturn = { user?: boolean | UserDefaultArgs quiz?: boolean | QuizDefaultArgs } export type $QuizAttemptPayload = { name: "QuizAttempt" objects: { user: Prisma.$UserPayload quiz: Prisma.$QuizPayload } scalars: $Extensions.GetPayloadResult<{ id: string userId: string quizId: string score: number passed: boolean answers: number[] completedAt: Date }, ExtArgs["result"]["quizAttempt"]> composites: {} } type QuizAttemptGetPayload = $Result.GetResult type QuizAttemptCountArgs = Omit & { select?: QuizAttemptCountAggregateInputType | true } export interface QuizAttemptDelegate { [K: symbol]: { types: Prisma.TypeMap['model']['QuizAttempt'], meta: { name: 'QuizAttempt' } } /** * Find zero or one QuizAttempt that matches the filter. * @param {QuizAttemptFindUniqueArgs} args - Arguments to find a QuizAttempt * @example * // Get one QuizAttempt * const quizAttempt = await prisma.quizAttempt.findUnique({ * where: { * // ... provide filter here * } * }) */ findUnique(args: SelectSubset>): Prisma__QuizAttemptClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find one QuizAttempt that matches the filter or throw an error with `error.code='P2025'` * if no matches were found. * @param {QuizAttemptFindUniqueOrThrowArgs} args - Arguments to find a QuizAttempt * @example * // Get one QuizAttempt * const quizAttempt = await prisma.quizAttempt.findUniqueOrThrow({ * where: { * // ... provide filter here * } * }) */ findUniqueOrThrow(args: SelectSubset>): Prisma__QuizAttemptClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find the first QuizAttempt that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuizAttemptFindFirstArgs} args - Arguments to find a QuizAttempt * @example * // Get one QuizAttempt * const quizAttempt = await prisma.quizAttempt.findFirst({ * where: { * // ... provide filter here * } * }) */ findFirst(args?: SelectSubset>): Prisma__QuizAttemptClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find the first QuizAttempt that matches the filter or * throw `PrismaKnownClientError` with `P2025` code if no matches were found. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuizAttemptFindFirstOrThrowArgs} args - Arguments to find a QuizAttempt * @example * // Get one QuizAttempt * const quizAttempt = await prisma.quizAttempt.findFirstOrThrow({ * where: { * // ... provide filter here * } * }) */ findFirstOrThrow(args?: SelectSubset>): Prisma__QuizAttemptClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find zero or more QuizAttempts that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuizAttemptFindManyArgs} args - Arguments to filter and select certain fields only. * @example * // Get all QuizAttempts * const quizAttempts = await prisma.quizAttempt.findMany() * * // Get first 10 QuizAttempts * const quizAttempts = await prisma.quizAttempt.findMany({ take: 10 }) * * // Only select the `id` * const quizAttemptWithIdOnly = await prisma.quizAttempt.findMany({ select: { id: true } }) * */ findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> /** * Create a QuizAttempt. * @param {QuizAttemptCreateArgs} args - Arguments to create a QuizAttempt. * @example * // Create one QuizAttempt * const QuizAttempt = await prisma.quizAttempt.create({ * data: { * // ... data to create a QuizAttempt * } * }) * */ create(args: SelectSubset>): Prisma__QuizAttemptClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Create many QuizAttempts. * @param {QuizAttemptCreateManyArgs} args - Arguments to create many QuizAttempts. * @example * // Create many QuizAttempts * const quizAttempt = await prisma.quizAttempt.createMany({ * data: [ * // ... provide data here * ] * }) * */ createMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Create many QuizAttempts and returns the data saved in the database. * @param {QuizAttemptCreateManyAndReturnArgs} args - Arguments to create many QuizAttempts. * @example * // Create many QuizAttempts * const quizAttempt = await prisma.quizAttempt.createManyAndReturn({ * data: [ * // ... provide data here * ] * }) * * // Create many QuizAttempts and only return the `id` * const quizAttemptWithIdOnly = await prisma.quizAttempt.createManyAndReturn({ * select: { id: true }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> /** * Delete a QuizAttempt. * @param {QuizAttemptDeleteArgs} args - Arguments to delete one QuizAttempt. * @example * // Delete one QuizAttempt * const QuizAttempt = await prisma.quizAttempt.delete({ * where: { * // ... filter to delete one QuizAttempt * } * }) * */ delete(args: SelectSubset>): Prisma__QuizAttemptClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Update one QuizAttempt. * @param {QuizAttemptUpdateArgs} args - Arguments to update one QuizAttempt. * @example * // Update one QuizAttempt * const quizAttempt = await prisma.quizAttempt.update({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ update(args: SelectSubset>): Prisma__QuizAttemptClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Delete zero or more QuizAttempts. * @param {QuizAttemptDeleteManyArgs} args - Arguments to filter QuizAttempts to delete. * @example * // Delete a few QuizAttempts * const { count } = await prisma.quizAttempt.deleteMany({ * where: { * // ... provide filter here * } * }) * */ deleteMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more QuizAttempts. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuizAttemptUpdateManyArgs} args - Arguments to update one or more rows. * @example * // Update many QuizAttempts * const quizAttempt = await prisma.quizAttempt.updateMany({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ updateMany(args: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more QuizAttempts and returns the data updated in the database. * @param {QuizAttemptUpdateManyAndReturnArgs} args - Arguments to update many QuizAttempts. * @example * // Update many QuizAttempts * const quizAttempt = await prisma.quizAttempt.updateManyAndReturn({ * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * * // Update zero or more QuizAttempts and only return the `id` * const quizAttemptWithIdOnly = await prisma.quizAttempt.updateManyAndReturn({ * select: { id: true }, * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> /** * Create or update one QuizAttempt. * @param {QuizAttemptUpsertArgs} args - Arguments to update or create a QuizAttempt. * @example * // Update or create a QuizAttempt * const quizAttempt = await prisma.quizAttempt.upsert({ * create: { * // ... data to create a QuizAttempt * }, * update: { * // ... in case it already exists, update * }, * where: { * // ... the filter for the QuizAttempt we want to update * } * }) */ upsert(args: SelectSubset>): Prisma__QuizAttemptClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Count the number of QuizAttempts. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuizAttemptCountArgs} args - Arguments to filter QuizAttempts to count. * @example * // Count the number of QuizAttempts * const count = await prisma.quizAttempt.count({ * where: { * // ... the filter for the QuizAttempts we want to count * } * }) **/ count( args?: Subset, ): Prisma.PrismaPromise< T extends $Utils.Record<'select', any> ? T['select'] extends true ? number : GetScalarType : number > /** * Allows you to perform aggregations operations on a QuizAttempt. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuizAttemptAggregateArgs} args - Select which aggregations you would like to apply and on what fields. * @example * // Ordered by age ascending * // Where email contains prisma.io * // Limited to the 10 users * const aggregations = await prisma.user.aggregate({ * _avg: { * age: true, * }, * where: { * email: { * contains: "prisma.io", * }, * }, * orderBy: { * age: "asc", * }, * take: 10, * }) **/ aggregate(args: Subset): Prisma.PrismaPromise> /** * Group by QuizAttempt. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {QuizAttemptGroupByArgs} args - Group by arguments. * @example * // Group by city, order by createdAt, get count * const result = await prisma.user.groupBy({ * by: ['city', 'createdAt'], * orderBy: { * createdAt: true * }, * _count: { * _all: true * }, * }) * **/ groupBy< T extends QuizAttemptGroupByArgs, HasSelectOrTake extends Or< Extends<'skip', Keys>, Extends<'take', Keys> >, OrderByArg extends True extends HasSelectOrTake ? { orderBy: QuizAttemptGroupByArgs['orderBy'] } : { orderBy?: QuizAttemptGroupByArgs['orderBy'] }, OrderFields extends ExcludeUnderscoreKeys>>, ByFields extends MaybeTupleToUnion, ByValid extends Has, HavingFields extends GetHavingFields, HavingValid extends Has, ByEmpty extends T['by'] extends never[] ? True : False, InputErrors extends ByEmpty extends True ? `Error: "by" must not be empty.` : HavingValid extends False ? { [P in HavingFields]: P extends ByFields ? never : P extends string ? `Error: Field "${P}" used in "having" needs to be provided in "by".` : [ Error, 'Field ', P, ` in "having" needs to be provided in "by"`, ] }[HavingFields] : 'take' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "take", you also need to provide "orderBy"' : 'skip' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "skip", you also need to provide "orderBy"' : ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetQuizAttemptGroupByPayload : Prisma.PrismaPromise /** * Fields of the QuizAttempt model */ readonly fields: QuizAttemptFieldRefs; } /** * The delegate class that acts as a "Promise-like" for QuizAttempt. * Why is this prefixed with `Prisma__`? * Because we want to prevent naming conflicts as mentioned in * https://github.com/prisma/prisma-client-js/issues/707 */ export interface Prisma__QuizAttemptClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" user = {}>(args?: Subset>): Prisma__UserClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> quiz = {}>(args?: Subset>): Prisma__QuizClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of which ever callback is executed. */ then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback for only the rejection of the Promise. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of the callback. */ catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The * resolved value cannot be modified from the callback. * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). * @returns A Promise for the completion of the callback. */ finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise } /** * Fields of the QuizAttempt model */ interface QuizAttemptFieldRefs { readonly id: FieldRef<"QuizAttempt", 'String'> readonly userId: FieldRef<"QuizAttempt", 'String'> readonly quizId: FieldRef<"QuizAttempt", 'String'> readonly score: FieldRef<"QuizAttempt", 'Int'> readonly passed: FieldRef<"QuizAttempt", 'Boolean'> readonly answers: FieldRef<"QuizAttempt", 'Int[]'> readonly completedAt: FieldRef<"QuizAttempt", 'DateTime'> } // Custom InputTypes /** * QuizAttempt findUnique */ export type QuizAttemptFindUniqueArgs = { /** * Select specific fields to fetch from the QuizAttempt */ select?: QuizAttemptSelect | null /** * Omit specific fields from the QuizAttempt */ omit?: QuizAttemptOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizAttemptInclude | null /** * Filter, which QuizAttempt to fetch. */ where: QuizAttemptWhereUniqueInput } /** * QuizAttempt findUniqueOrThrow */ export type QuizAttemptFindUniqueOrThrowArgs = { /** * Select specific fields to fetch from the QuizAttempt */ select?: QuizAttemptSelect | null /** * Omit specific fields from the QuizAttempt */ omit?: QuizAttemptOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizAttemptInclude | null /** * Filter, which QuizAttempt to fetch. */ where: QuizAttemptWhereUniqueInput } /** * QuizAttempt findFirst */ export type QuizAttemptFindFirstArgs = { /** * Select specific fields to fetch from the QuizAttempt */ select?: QuizAttemptSelect | null /** * Omit specific fields from the QuizAttempt */ omit?: QuizAttemptOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizAttemptInclude | null /** * Filter, which QuizAttempt to fetch. */ where?: QuizAttemptWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of QuizAttempts to fetch. */ orderBy?: QuizAttemptOrderByWithRelationInput | QuizAttemptOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for QuizAttempts. */ cursor?: QuizAttemptWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` QuizAttempts from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` QuizAttempts. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of QuizAttempts. */ distinct?: QuizAttemptScalarFieldEnum | QuizAttemptScalarFieldEnum[] } /** * QuizAttempt findFirstOrThrow */ export type QuizAttemptFindFirstOrThrowArgs = { /** * Select specific fields to fetch from the QuizAttempt */ select?: QuizAttemptSelect | null /** * Omit specific fields from the QuizAttempt */ omit?: QuizAttemptOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizAttemptInclude | null /** * Filter, which QuizAttempt to fetch. */ where?: QuizAttemptWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of QuizAttempts to fetch. */ orderBy?: QuizAttemptOrderByWithRelationInput | QuizAttemptOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for QuizAttempts. */ cursor?: QuizAttemptWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` QuizAttempts from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` QuizAttempts. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of QuizAttempts. */ distinct?: QuizAttemptScalarFieldEnum | QuizAttemptScalarFieldEnum[] } /** * QuizAttempt findMany */ export type QuizAttemptFindManyArgs = { /** * Select specific fields to fetch from the QuizAttempt */ select?: QuizAttemptSelect | null /** * Omit specific fields from the QuizAttempt */ omit?: QuizAttemptOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizAttemptInclude | null /** * Filter, which QuizAttempts to fetch. */ where?: QuizAttemptWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of QuizAttempts to fetch. */ orderBy?: QuizAttemptOrderByWithRelationInput | QuizAttemptOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for listing QuizAttempts. */ cursor?: QuizAttemptWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` QuizAttempts from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` QuizAttempts. */ skip?: number distinct?: QuizAttemptScalarFieldEnum | QuizAttemptScalarFieldEnum[] } /** * QuizAttempt create */ export type QuizAttemptCreateArgs = { /** * Select specific fields to fetch from the QuizAttempt */ select?: QuizAttemptSelect | null /** * Omit specific fields from the QuizAttempt */ omit?: QuizAttemptOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizAttemptInclude | null /** * The data needed to create a QuizAttempt. */ data: XOR } /** * QuizAttempt createMany */ export type QuizAttemptCreateManyArgs = { /** * The data used to create many QuizAttempts. */ data: QuizAttemptCreateManyInput | QuizAttemptCreateManyInput[] skipDuplicates?: boolean } /** * QuizAttempt createManyAndReturn */ export type QuizAttemptCreateManyAndReturnArgs = { /** * Select specific fields to fetch from the QuizAttempt */ select?: QuizAttemptSelectCreateManyAndReturn | null /** * Omit specific fields from the QuizAttempt */ omit?: QuizAttemptOmit | null /** * The data used to create many QuizAttempts. */ data: QuizAttemptCreateManyInput | QuizAttemptCreateManyInput[] skipDuplicates?: boolean /** * Choose, which related nodes to fetch as well */ include?: QuizAttemptIncludeCreateManyAndReturn | null } /** * QuizAttempt update */ export type QuizAttemptUpdateArgs = { /** * Select specific fields to fetch from the QuizAttempt */ select?: QuizAttemptSelect | null /** * Omit specific fields from the QuizAttempt */ omit?: QuizAttemptOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizAttemptInclude | null /** * The data needed to update a QuizAttempt. */ data: XOR /** * Choose, which QuizAttempt to update. */ where: QuizAttemptWhereUniqueInput } /** * QuizAttempt updateMany */ export type QuizAttemptUpdateManyArgs = { /** * The data used to update QuizAttempts. */ data: XOR /** * Filter which QuizAttempts to update */ where?: QuizAttemptWhereInput /** * Limit how many QuizAttempts to update. */ limit?: number } /** * QuizAttempt updateManyAndReturn */ export type QuizAttemptUpdateManyAndReturnArgs = { /** * Select specific fields to fetch from the QuizAttempt */ select?: QuizAttemptSelectUpdateManyAndReturn | null /** * Omit specific fields from the QuizAttempt */ omit?: QuizAttemptOmit | null /** * The data used to update QuizAttempts. */ data: XOR /** * Filter which QuizAttempts to update */ where?: QuizAttemptWhereInput /** * Limit how many QuizAttempts to update. */ limit?: number /** * Choose, which related nodes to fetch as well */ include?: QuizAttemptIncludeUpdateManyAndReturn | null } /** * QuizAttempt upsert */ export type QuizAttemptUpsertArgs = { /** * Select specific fields to fetch from the QuizAttempt */ select?: QuizAttemptSelect | null /** * Omit specific fields from the QuizAttempt */ omit?: QuizAttemptOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizAttemptInclude | null /** * The filter to search for the QuizAttempt to update in case it exists. */ where: QuizAttemptWhereUniqueInput /** * In case the QuizAttempt found by the `where` argument doesn't exist, create a new QuizAttempt with this data. */ create: XOR /** * In case the QuizAttempt was found with the provided `where` argument, update it with this data. */ update: XOR } /** * QuizAttempt delete */ export type QuizAttemptDeleteArgs = { /** * Select specific fields to fetch from the QuizAttempt */ select?: QuizAttemptSelect | null /** * Omit specific fields from the QuizAttempt */ omit?: QuizAttemptOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizAttemptInclude | null /** * Filter which QuizAttempt to delete. */ where: QuizAttemptWhereUniqueInput } /** * QuizAttempt deleteMany */ export type QuizAttemptDeleteManyArgs = { /** * Filter which QuizAttempts to delete */ where?: QuizAttemptWhereInput /** * Limit how many QuizAttempts to delete. */ limit?: number } /** * QuizAttempt without action */ export type QuizAttemptDefaultArgs = { /** * Select specific fields to fetch from the QuizAttempt */ select?: QuizAttemptSelect | null /** * Omit specific fields from the QuizAttempt */ omit?: QuizAttemptOmit | null /** * Choose, which related nodes to fetch as well */ include?: QuizAttemptInclude | null } /** * Model Certificate */ export type AggregateCertificate = { _count: CertificateCountAggregateOutputType | null _min: CertificateMinAggregateOutputType | null _max: CertificateMaxAggregateOutputType | null } export type CertificateMinAggregateOutputType = { id: string | null userId: string | null courseId: string | null issuedAt: Date | null pdfUrl: string | null isPaid: boolean | null } export type CertificateMaxAggregateOutputType = { id: string | null userId: string | null courseId: string | null issuedAt: Date | null pdfUrl: string | null isPaid: boolean | null } export type CertificateCountAggregateOutputType = { id: number userId: number courseId: number issuedAt: number pdfUrl: number isPaid: number _all: number } export type CertificateMinAggregateInputType = { id?: true userId?: true courseId?: true issuedAt?: true pdfUrl?: true isPaid?: true } export type CertificateMaxAggregateInputType = { id?: true userId?: true courseId?: true issuedAt?: true pdfUrl?: true isPaid?: true } export type CertificateCountAggregateInputType = { id?: true userId?: true courseId?: true issuedAt?: true pdfUrl?: true isPaid?: true _all?: true } export type CertificateAggregateArgs = { /** * Filter which Certificate to aggregate. */ where?: CertificateWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Certificates to fetch. */ orderBy?: CertificateOrderByWithRelationInput | CertificateOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the start position */ cursor?: CertificateWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Certificates from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Certificates. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Count returned Certificates **/ _count?: true | CertificateCountAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the minimum value **/ _min?: CertificateMinAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the maximum value **/ _max?: CertificateMaxAggregateInputType } export type GetCertificateAggregateType = { [P in keyof T & keyof AggregateCertificate]: P extends '_count' | 'count' ? T[P] extends true ? number : GetScalarType : GetScalarType } export type CertificateGroupByArgs = { where?: CertificateWhereInput orderBy?: CertificateOrderByWithAggregationInput | CertificateOrderByWithAggregationInput[] by: CertificateScalarFieldEnum[] | CertificateScalarFieldEnum having?: CertificateScalarWhereWithAggregatesInput take?: number skip?: number _count?: CertificateCountAggregateInputType | true _min?: CertificateMinAggregateInputType _max?: CertificateMaxAggregateInputType } export type CertificateGroupByOutputType = { id: string userId: string courseId: string issuedAt: Date pdfUrl: string | null isPaid: boolean _count: CertificateCountAggregateOutputType | null _min: CertificateMinAggregateOutputType | null _max: CertificateMaxAggregateOutputType | null } type GetCertificateGroupByPayload = Prisma.PrismaPromise< Array< PickEnumerable & { [P in ((keyof T) & (keyof CertificateGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : GetScalarType : GetScalarType } > > export type CertificateSelect = $Extensions.GetSelect<{ id?: boolean userId?: boolean courseId?: boolean issuedAt?: boolean pdfUrl?: boolean isPaid?: boolean user?: boolean | UserDefaultArgs course?: boolean | CourseDefaultArgs }, ExtArgs["result"]["certificate"]> export type CertificateSelectCreateManyAndReturn = $Extensions.GetSelect<{ id?: boolean userId?: boolean courseId?: boolean issuedAt?: boolean pdfUrl?: boolean isPaid?: boolean user?: boolean | UserDefaultArgs course?: boolean | CourseDefaultArgs }, ExtArgs["result"]["certificate"]> export type CertificateSelectUpdateManyAndReturn = $Extensions.GetSelect<{ id?: boolean userId?: boolean courseId?: boolean issuedAt?: boolean pdfUrl?: boolean isPaid?: boolean user?: boolean | UserDefaultArgs course?: boolean | CourseDefaultArgs }, ExtArgs["result"]["certificate"]> export type CertificateSelectScalar = { id?: boolean userId?: boolean courseId?: boolean issuedAt?: boolean pdfUrl?: boolean isPaid?: boolean } export type CertificateOmit = $Extensions.GetOmit<"id" | "userId" | "courseId" | "issuedAt" | "pdfUrl" | "isPaid", ExtArgs["result"]["certificate"]> export type CertificateInclude = { user?: boolean | UserDefaultArgs course?: boolean | CourseDefaultArgs } export type CertificateIncludeCreateManyAndReturn = { user?: boolean | UserDefaultArgs course?: boolean | CourseDefaultArgs } export type CertificateIncludeUpdateManyAndReturn = { user?: boolean | UserDefaultArgs course?: boolean | CourseDefaultArgs } export type $CertificatePayload = { name: "Certificate" objects: { user: Prisma.$UserPayload course: Prisma.$CoursePayload } scalars: $Extensions.GetPayloadResult<{ id: string userId: string courseId: string issuedAt: Date pdfUrl: string | null isPaid: boolean }, ExtArgs["result"]["certificate"]> composites: {} } type CertificateGetPayload = $Result.GetResult type CertificateCountArgs = Omit & { select?: CertificateCountAggregateInputType | true } export interface CertificateDelegate { [K: symbol]: { types: Prisma.TypeMap['model']['Certificate'], meta: { name: 'Certificate' } } /** * Find zero or one Certificate that matches the filter. * @param {CertificateFindUniqueArgs} args - Arguments to find a Certificate * @example * // Get one Certificate * const certificate = await prisma.certificate.findUnique({ * where: { * // ... provide filter here * } * }) */ findUnique(args: SelectSubset>): Prisma__CertificateClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find one Certificate that matches the filter or throw an error with `error.code='P2025'` * if no matches were found. * @param {CertificateFindUniqueOrThrowArgs} args - Arguments to find a Certificate * @example * // Get one Certificate * const certificate = await prisma.certificate.findUniqueOrThrow({ * where: { * // ... provide filter here * } * }) */ findUniqueOrThrow(args: SelectSubset>): Prisma__CertificateClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find the first Certificate that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {CertificateFindFirstArgs} args - Arguments to find a Certificate * @example * // Get one Certificate * const certificate = await prisma.certificate.findFirst({ * where: { * // ... provide filter here * } * }) */ findFirst(args?: SelectSubset>): Prisma__CertificateClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find the first Certificate that matches the filter or * throw `PrismaKnownClientError` with `P2025` code if no matches were found. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {CertificateFindFirstOrThrowArgs} args - Arguments to find a Certificate * @example * // Get one Certificate * const certificate = await prisma.certificate.findFirstOrThrow({ * where: { * // ... provide filter here * } * }) */ findFirstOrThrow(args?: SelectSubset>): Prisma__CertificateClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find zero or more Certificates that matches the filter. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {CertificateFindManyArgs} args - Arguments to filter and select certain fields only. * @example * // Get all Certificates * const certificates = await prisma.certificate.findMany() * * // Get first 10 Certificates * const certificates = await prisma.certificate.findMany({ take: 10 }) * * // Only select the `id` * const certificateWithIdOnly = await prisma.certificate.findMany({ select: { id: true } }) * */ findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> /** * Create a Certificate. * @param {CertificateCreateArgs} args - Arguments to create a Certificate. * @example * // Create one Certificate * const Certificate = await prisma.certificate.create({ * data: { * // ... data to create a Certificate * } * }) * */ create(args: SelectSubset>): Prisma__CertificateClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Create many Certificates. * @param {CertificateCreateManyArgs} args - Arguments to create many Certificates. * @example * // Create many Certificates * const certificate = await prisma.certificate.createMany({ * data: [ * // ... provide data here * ] * }) * */ createMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Create many Certificates and returns the data saved in the database. * @param {CertificateCreateManyAndReturnArgs} args - Arguments to create many Certificates. * @example * // Create many Certificates * const certificate = await prisma.certificate.createManyAndReturn({ * data: [ * // ... provide data here * ] * }) * * // Create many Certificates and only return the `id` * const certificateWithIdOnly = await prisma.certificate.createManyAndReturn({ * select: { id: true }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>> /** * Delete a Certificate. * @param {CertificateDeleteArgs} args - Arguments to delete one Certificate. * @example * // Delete one Certificate * const Certificate = await prisma.certificate.delete({ * where: { * // ... filter to delete one Certificate * } * }) * */ delete(args: SelectSubset>): Prisma__CertificateClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Update one Certificate. * @param {CertificateUpdateArgs} args - Arguments to update one Certificate. * @example * // Update one Certificate * const certificate = await prisma.certificate.update({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ update(args: SelectSubset>): Prisma__CertificateClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Delete zero or more Certificates. * @param {CertificateDeleteManyArgs} args - Arguments to filter Certificates to delete. * @example * // Delete a few Certificates * const { count } = await prisma.certificate.deleteMany({ * where: { * // ... provide filter here * } * }) * */ deleteMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Certificates. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {CertificateUpdateManyArgs} args - Arguments to update one or more rows. * @example * // Update many Certificates * const certificate = await prisma.certificate.updateMany({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ updateMany(args: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Certificates and returns the data updated in the database. * @param {CertificateUpdateManyAndReturnArgs} args - Arguments to update many Certificates. * @example * // Update many Certificates * const certificate = await prisma.certificate.updateManyAndReturn({ * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * * // Update zero or more Certificates and only return the `id` * const certificateWithIdOnly = await prisma.certificate.updateManyAndReturn({ * select: { id: true }, * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * */ updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>> /** * Create or update one Certificate. * @param {CertificateUpsertArgs} args - Arguments to update or create a Certificate. * @example * // Update or create a Certificate * const certificate = await prisma.certificate.upsert({ * create: { * // ... data to create a Certificate * }, * update: { * // ... in case it already exists, update * }, * where: { * // ... the filter for the Certificate we want to update * } * }) */ upsert(args: SelectSubset>): Prisma__CertificateClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Count the number of Certificates. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {CertificateCountArgs} args - Arguments to filter Certificates to count. * @example * // Count the number of Certificates * const count = await prisma.certificate.count({ * where: { * // ... the filter for the Certificates we want to count * } * }) **/ count( args?: Subset, ): Prisma.PrismaPromise< T extends $Utils.Record<'select', any> ? T['select'] extends true ? number : GetScalarType : number > /** * Allows you to perform aggregations operations on a Certificate. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {CertificateAggregateArgs} args - Select which aggregations you would like to apply and on what fields. * @example * // Ordered by age ascending * // Where email contains prisma.io * // Limited to the 10 users * const aggregations = await prisma.user.aggregate({ * _avg: { * age: true, * }, * where: { * email: { * contains: "prisma.io", * }, * }, * orderBy: { * age: "asc", * }, * take: 10, * }) **/ aggregate(args: Subset): Prisma.PrismaPromise> /** * Group by Certificate. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {CertificateGroupByArgs} args - Group by arguments. * @example * // Group by city, order by createdAt, get count * const result = await prisma.user.groupBy({ * by: ['city', 'createdAt'], * orderBy: { * createdAt: true * }, * _count: { * _all: true * }, * }) * **/ groupBy< T extends CertificateGroupByArgs, HasSelectOrTake extends Or< Extends<'skip', Keys>, Extends<'take', Keys> >, OrderByArg extends True extends HasSelectOrTake ? { orderBy: CertificateGroupByArgs['orderBy'] } : { orderBy?: CertificateGroupByArgs['orderBy'] }, OrderFields extends ExcludeUnderscoreKeys>>, ByFields extends MaybeTupleToUnion, ByValid extends Has, HavingFields extends GetHavingFields, HavingValid extends Has, ByEmpty extends T['by'] extends never[] ? True : False, InputErrors extends ByEmpty extends True ? `Error: "by" must not be empty.` : HavingValid extends False ? { [P in HavingFields]: P extends ByFields ? never : P extends string ? `Error: Field "${P}" used in "having" needs to be provided in "by".` : [ Error, 'Field ', P, ` in "having" needs to be provided in "by"`, ] }[HavingFields] : 'take' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "take", you also need to provide "orderBy"' : 'skip' extends Keys ? 'orderBy' extends Keys ? ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] : 'Error: If you provide "skip", you also need to provide "orderBy"' : ByValid extends True ? {} : { [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` }[OrderFields] >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetCertificateGroupByPayload : Prisma.PrismaPromise /** * Fields of the Certificate model */ readonly fields: CertificateFieldRefs; } /** * The delegate class that acts as a "Promise-like" for Certificate. * Why is this prefixed with `Prisma__`? * Because we want to prevent naming conflicts as mentioned in * https://github.com/prisma/prisma-client-js/issues/707 */ export interface Prisma__CertificateClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" user = {}>(args?: Subset>): Prisma__UserClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> course = {}>(args?: Subset>): Prisma__CourseClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of which ever callback is executed. */ then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback for only the rejection of the Promise. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of the callback. */ catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise /** * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The * resolved value cannot be modified from the callback. * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). * @returns A Promise for the completion of the callback. */ finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise } /** * Fields of the Certificate model */ interface CertificateFieldRefs { readonly id: FieldRef<"Certificate", 'String'> readonly userId: FieldRef<"Certificate", 'String'> readonly courseId: FieldRef<"Certificate", 'String'> readonly issuedAt: FieldRef<"Certificate", 'DateTime'> readonly pdfUrl: FieldRef<"Certificate", 'String'> readonly isPaid: FieldRef<"Certificate", 'Boolean'> } // Custom InputTypes /** * Certificate findUnique */ export type CertificateFindUniqueArgs = { /** * Select specific fields to fetch from the Certificate */ select?: CertificateSelect | null /** * Omit specific fields from the Certificate */ omit?: CertificateOmit | null /** * Choose, which related nodes to fetch as well */ include?: CertificateInclude | null /** * Filter, which Certificate to fetch. */ where: CertificateWhereUniqueInput } /** * Certificate findUniqueOrThrow */ export type CertificateFindUniqueOrThrowArgs = { /** * Select specific fields to fetch from the Certificate */ select?: CertificateSelect | null /** * Omit specific fields from the Certificate */ omit?: CertificateOmit | null /** * Choose, which related nodes to fetch as well */ include?: CertificateInclude | null /** * Filter, which Certificate to fetch. */ where: CertificateWhereUniqueInput } /** * Certificate findFirst */ export type CertificateFindFirstArgs = { /** * Select specific fields to fetch from the Certificate */ select?: CertificateSelect | null /** * Omit specific fields from the Certificate */ omit?: CertificateOmit | null /** * Choose, which related nodes to fetch as well */ include?: CertificateInclude | null /** * Filter, which Certificate to fetch. */ where?: CertificateWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Certificates to fetch. */ orderBy?: CertificateOrderByWithRelationInput | CertificateOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Certificates. */ cursor?: CertificateWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Certificates from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Certificates. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Certificates. */ distinct?: CertificateScalarFieldEnum | CertificateScalarFieldEnum[] } /** * Certificate findFirstOrThrow */ export type CertificateFindFirstOrThrowArgs = { /** * Select specific fields to fetch from the Certificate */ select?: CertificateSelect | null /** * Omit specific fields from the Certificate */ omit?: CertificateOmit | null /** * Choose, which related nodes to fetch as well */ include?: CertificateInclude | null /** * Filter, which Certificate to fetch. */ where?: CertificateWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Certificates to fetch. */ orderBy?: CertificateOrderByWithRelationInput | CertificateOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Certificates. */ cursor?: CertificateWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Certificates from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Certificates. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Certificates. */ distinct?: CertificateScalarFieldEnum | CertificateScalarFieldEnum[] } /** * Certificate findMany */ export type CertificateFindManyArgs = { /** * Select specific fields to fetch from the Certificate */ select?: CertificateSelect | null /** * Omit specific fields from the Certificate */ omit?: CertificateOmit | null /** * Choose, which related nodes to fetch as well */ include?: CertificateInclude | null /** * Filter, which Certificates to fetch. */ where?: CertificateWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Certificates to fetch. */ orderBy?: CertificateOrderByWithRelationInput | CertificateOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for listing Certificates. */ cursor?: CertificateWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Certificates from the position of the cursor. */ take?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Skip the first `n` Certificates. */ skip?: number distinct?: CertificateScalarFieldEnum | CertificateScalarFieldEnum[] } /** * Certificate create */ export type CertificateCreateArgs = { /** * Select specific fields to fetch from the Certificate */ select?: CertificateSelect | null /** * Omit specific fields from the Certificate */ omit?: CertificateOmit | null /** * Choose, which related nodes to fetch as well */ include?: CertificateInclude | null /** * The data needed to create a Certificate. */ data: XOR } /** * Certificate createMany */ export type CertificateCreateManyArgs = { /** * The data used to create many Certificates. */ data: CertificateCreateManyInput | CertificateCreateManyInput[] skipDuplicates?: boolean } /** * Certificate createManyAndReturn */ export type CertificateCreateManyAndReturnArgs = { /** * Select specific fields to fetch from the Certificate */ select?: CertificateSelectCreateManyAndReturn | null /** * Omit specific fields from the Certificate */ omit?: CertificateOmit | null /** * The data used to create many Certificates. */ data: CertificateCreateManyInput | CertificateCreateManyInput[] skipDuplicates?: boolean /** * Choose, which related nodes to fetch as well */ include?: CertificateIncludeCreateManyAndReturn | null } /** * Certificate update */ export type CertificateUpdateArgs = { /** * Select specific fields to fetch from the Certificate */ select?: CertificateSelect | null /** * Omit specific fields from the Certificate */ omit?: CertificateOmit | null /** * Choose, which related nodes to fetch as well */ include?: CertificateInclude | null /** * The data needed to update a Certificate. */ data: XOR /** * Choose, which Certificate to update. */ where: CertificateWhereUniqueInput } /** * Certificate updateMany */ export type CertificateUpdateManyArgs = { /** * The data used to update Certificates. */ data: XOR /** * Filter which Certificates to update */ where?: CertificateWhereInput /** * Limit how many Certificates to update. */ limit?: number } /** * Certificate updateManyAndReturn */ export type CertificateUpdateManyAndReturnArgs = { /** * Select specific fields to fetch from the Certificate */ select?: CertificateSelectUpdateManyAndReturn | null /** * Omit specific fields from the Certificate */ omit?: CertificateOmit | null /** * The data used to update Certificates. */ data: XOR /** * Filter which Certificates to update */ where?: CertificateWhereInput /** * Limit how many Certificates to update. */ limit?: number /** * Choose, which related nodes to fetch as well */ include?: CertificateIncludeUpdateManyAndReturn | null } /** * Certificate upsert */ export type CertificateUpsertArgs = { /** * Select specific fields to fetch from the Certificate */ select?: CertificateSelect | null /** * Omit specific fields from the Certificate */ omit?: CertificateOmit | null /** * Choose, which related nodes to fetch as well */ include?: CertificateInclude | null /** * The filter to search for the Certificate to update in case it exists. */ where: CertificateWhereUniqueInput /** * In case the Certificate found by the `where` argument doesn't exist, create a new Certificate with this data. */ create: XOR /** * In case the Certificate was found with the provided `where` argument, update it with this data. */ update: XOR } /** * Certificate delete */ export type CertificateDeleteArgs = { /** * Select specific fields to fetch from the Certificate */ select?: CertificateSelect | null /** * Omit specific fields from the Certificate */ omit?: CertificateOmit | null /** * Choose, which related nodes to fetch as well */ include?: CertificateInclude | null /** * Filter which Certificate to delete. */ where: CertificateWhereUniqueInput } /** * Certificate deleteMany */ export type CertificateDeleteManyArgs = { /** * Filter which Certificates to delete */ where?: CertificateWhereInput /** * Limit how many Certificates to delete. */ limit?: number } /** * Certificate without action */ export type CertificateDefaultArgs = { /** * Select specific fields to fetch from the Certificate */ select?: CertificateSelect | null /** * Omit specific fields from the Certificate */ omit?: CertificateOmit | null /** * Choose, which related nodes to fetch as well */ include?: CertificateInclude | null } /** * Enums */ export const TransactionIsolationLevel: { ReadUncommitted: 'ReadUncommitted', ReadCommitted: 'ReadCommitted', RepeatableRead: 'RepeatableRead', Serializable: 'Serializable' }; export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel] export const UserScalarFieldEnum: { id: 'id', email: 'email', name: 'name', image: 'image', emailVerified: 'emailVerified', locale: 'locale', role: 'role', createdAt: 'createdAt' }; export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum] export const AccountScalarFieldEnum: { id: 'id', userId: 'userId', type: 'type', provider: 'provider', providerAccountId: 'providerAccountId', refresh_token: 'refresh_token', access_token: 'access_token', expires_at: 'expires_at', token_type: 'token_type', scope: 'scope', id_token: 'id_token', session_state: 'session_state' }; export type AccountScalarFieldEnum = (typeof AccountScalarFieldEnum)[keyof typeof AccountScalarFieldEnum] export const SessionScalarFieldEnum: { id: 'id', sessionToken: 'sessionToken', userId: 'userId', expires: 'expires' }; export type SessionScalarFieldEnum = (typeof SessionScalarFieldEnum)[keyof typeof SessionScalarFieldEnum] export const VerificationTokenScalarFieldEnum: { identifier: 'identifier', token: 'token', expires: 'expires' }; export type VerificationTokenScalarFieldEnum = (typeof VerificationTokenScalarFieldEnum)[keyof typeof VerificationTokenScalarFieldEnum] export const CourseScalarFieldEnum: { id: 'id', slug: 'slug', category: 'category', level: 'level', thumbnailUrl: 'thumbnailUrl', published: 'published', order: 'order', createdAt: 'createdAt', titleFr: 'titleFr', titleEn: 'titleEn', titleEs: 'titleEs', descFr: 'descFr', descEn: 'descEn', descEs: 'descEs' }; export type CourseScalarFieldEnum = (typeof CourseScalarFieldEnum)[keyof typeof CourseScalarFieldEnum] export const ModuleScalarFieldEnum: { id: 'id', courseId: 'courseId', order: 'order', titleFr: 'titleFr', titleEn: 'titleEn', titleEs: 'titleEs' }; export type ModuleScalarFieldEnum = (typeof ModuleScalarFieldEnum)[keyof typeof ModuleScalarFieldEnum] export const LessonScalarFieldEnum: { id: 'id', moduleId: 'moduleId', order: 'order', type: 'type', videoUrl: 'videoUrl', duration: 'duration', titleFr: 'titleFr', titleEn: 'titleEn', titleEs: 'titleEs', contentFr: 'contentFr', contentEn: 'contentEn', contentEs: 'contentEs' }; export type LessonScalarFieldEnum = (typeof LessonScalarFieldEnum)[keyof typeof LessonScalarFieldEnum] export const QuizScalarFieldEnum: { id: 'id', moduleId: 'moduleId', passMark: 'passMark' }; export type QuizScalarFieldEnum = (typeof QuizScalarFieldEnum)[keyof typeof QuizScalarFieldEnum] export const QuestionScalarFieldEnum: { id: 'id', quizId: 'quizId', order: 'order', textFr: 'textFr', textEn: 'textEn', textEs: 'textEs', optionsFr: 'optionsFr', optionsEn: 'optionsEn', optionsEs: 'optionsEs', correctIndex: 'correctIndex' }; export type QuestionScalarFieldEnum = (typeof QuestionScalarFieldEnum)[keyof typeof QuestionScalarFieldEnum] export const EnrollmentScalarFieldEnum: { id: 'id', userId: 'userId', courseId: 'courseId', enrolledAt: 'enrolledAt', completedAt: 'completedAt' }; export type EnrollmentScalarFieldEnum = (typeof EnrollmentScalarFieldEnum)[keyof typeof EnrollmentScalarFieldEnum] export const LessonProgressScalarFieldEnum: { id: 'id', userId: 'userId', lessonId: 'lessonId', completedAt: 'completedAt' }; export type LessonProgressScalarFieldEnum = (typeof LessonProgressScalarFieldEnum)[keyof typeof LessonProgressScalarFieldEnum] export const QuizAttemptScalarFieldEnum: { id: 'id', userId: 'userId', quizId: 'quizId', score: 'score', passed: 'passed', answers: 'answers', completedAt: 'completedAt' }; export type QuizAttemptScalarFieldEnum = (typeof QuizAttemptScalarFieldEnum)[keyof typeof QuizAttemptScalarFieldEnum] export const CertificateScalarFieldEnum: { id: 'id', userId: 'userId', courseId: 'courseId', issuedAt: 'issuedAt', pdfUrl: 'pdfUrl', isPaid: 'isPaid' }; export type CertificateScalarFieldEnum = (typeof CertificateScalarFieldEnum)[keyof typeof CertificateScalarFieldEnum] export const SortOrder: { asc: 'asc', desc: 'desc' }; export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder] export const QueryMode: { default: 'default', insensitive: 'insensitive' }; export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode] export const NullsOrder: { first: 'first', last: 'last' }; export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder] /** * Field references */ /** * Reference to a field of type 'String' */ export type StringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String'> /** * Reference to a field of type 'String[]' */ export type ListStringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String[]'> /** * Reference to a field of type 'DateTime' */ export type DateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DateTime'> /** * Reference to a field of type 'DateTime[]' */ export type ListDateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DateTime[]'> /** * Reference to a field of type 'Role' */ export type EnumRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Role'> /** * Reference to a field of type 'Role[]' */ export type ListEnumRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Role[]'> /** * Reference to a field of type 'Int' */ export type IntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int'> /** * Reference to a field of type 'Int[]' */ export type ListIntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int[]'> /** * Reference to a field of type 'CourseCategory' */ export type EnumCourseCategoryFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CourseCategory'> /** * Reference to a field of type 'CourseCategory[]' */ export type ListEnumCourseCategoryFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CourseCategory[]'> /** * Reference to a field of type 'CourseLevel' */ export type EnumCourseLevelFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CourseLevel'> /** * Reference to a field of type 'CourseLevel[]' */ export type ListEnumCourseLevelFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CourseLevel[]'> /** * Reference to a field of type 'Boolean' */ export type BooleanFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Boolean'> /** * Reference to a field of type 'LessonType' */ export type EnumLessonTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LessonType'> /** * Reference to a field of type 'LessonType[]' */ export type ListEnumLessonTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LessonType[]'> /** * Reference to a field of type 'Float' */ export type FloatFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Float'> /** * Reference to a field of type 'Float[]' */ export type ListFloatFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Float[]'> /** * Deep Input Types */ export type UserWhereInput = { AND?: UserWhereInput | UserWhereInput[] OR?: UserWhereInput[] NOT?: UserWhereInput | UserWhereInput[] id?: StringFilter<"User"> | string email?: StringFilter<"User"> | string name?: StringNullableFilter<"User"> | string | null image?: StringNullableFilter<"User"> | string | null emailVerified?: DateTimeNullableFilter<"User"> | Date | string | null locale?: StringFilter<"User"> | string role?: EnumRoleFilter<"User"> | $Enums.Role createdAt?: DateTimeFilter<"User"> | Date | string accounts?: AccountListRelationFilter sessions?: SessionListRelationFilter enrollments?: EnrollmentListRelationFilter lessonProgress?: LessonProgressListRelationFilter quizAttempts?: QuizAttemptListRelationFilter certificates?: CertificateListRelationFilter } export type UserOrderByWithRelationInput = { id?: SortOrder email?: SortOrder name?: SortOrderInput | SortOrder image?: SortOrderInput | SortOrder emailVerified?: SortOrderInput | SortOrder locale?: SortOrder role?: SortOrder createdAt?: SortOrder accounts?: AccountOrderByRelationAggregateInput sessions?: SessionOrderByRelationAggregateInput enrollments?: EnrollmentOrderByRelationAggregateInput lessonProgress?: LessonProgressOrderByRelationAggregateInput quizAttempts?: QuizAttemptOrderByRelationAggregateInput certificates?: CertificateOrderByRelationAggregateInput } export type UserWhereUniqueInput = Prisma.AtLeast<{ id?: string email?: string AND?: UserWhereInput | UserWhereInput[] OR?: UserWhereInput[] NOT?: UserWhereInput | UserWhereInput[] name?: StringNullableFilter<"User"> | string | null image?: StringNullableFilter<"User"> | string | null emailVerified?: DateTimeNullableFilter<"User"> | Date | string | null locale?: StringFilter<"User"> | string role?: EnumRoleFilter<"User"> | $Enums.Role createdAt?: DateTimeFilter<"User"> | Date | string accounts?: AccountListRelationFilter sessions?: SessionListRelationFilter enrollments?: EnrollmentListRelationFilter lessonProgress?: LessonProgressListRelationFilter quizAttempts?: QuizAttemptListRelationFilter certificates?: CertificateListRelationFilter }, "id" | "email"> export type UserOrderByWithAggregationInput = { id?: SortOrder email?: SortOrder name?: SortOrderInput | SortOrder image?: SortOrderInput | SortOrder emailVerified?: SortOrderInput | SortOrder locale?: SortOrder role?: SortOrder createdAt?: SortOrder _count?: UserCountOrderByAggregateInput _max?: UserMaxOrderByAggregateInput _min?: UserMinOrderByAggregateInput } export type UserScalarWhereWithAggregatesInput = { AND?: UserScalarWhereWithAggregatesInput | UserScalarWhereWithAggregatesInput[] OR?: UserScalarWhereWithAggregatesInput[] NOT?: UserScalarWhereWithAggregatesInput | UserScalarWhereWithAggregatesInput[] id?: StringWithAggregatesFilter<"User"> | string email?: StringWithAggregatesFilter<"User"> | string name?: StringNullableWithAggregatesFilter<"User"> | string | null image?: StringNullableWithAggregatesFilter<"User"> | string | null emailVerified?: DateTimeNullableWithAggregatesFilter<"User"> | Date | string | null locale?: StringWithAggregatesFilter<"User"> | string role?: EnumRoleWithAggregatesFilter<"User"> | $Enums.Role createdAt?: DateTimeWithAggregatesFilter<"User"> | Date | string } export type AccountWhereInput = { AND?: AccountWhereInput | AccountWhereInput[] OR?: AccountWhereInput[] NOT?: AccountWhereInput | AccountWhereInput[] id?: StringFilter<"Account"> | string userId?: StringFilter<"Account"> | string type?: StringFilter<"Account"> | string provider?: StringFilter<"Account"> | string providerAccountId?: StringFilter<"Account"> | string refresh_token?: StringNullableFilter<"Account"> | string | null access_token?: StringNullableFilter<"Account"> | string | null expires_at?: IntNullableFilter<"Account"> | number | null token_type?: StringNullableFilter<"Account"> | string | null scope?: StringNullableFilter<"Account"> | string | null id_token?: StringNullableFilter<"Account"> | string | null session_state?: StringNullableFilter<"Account"> | string | null user?: XOR } export type AccountOrderByWithRelationInput = { id?: SortOrder userId?: SortOrder type?: SortOrder provider?: SortOrder providerAccountId?: SortOrder refresh_token?: SortOrderInput | SortOrder access_token?: SortOrderInput | SortOrder expires_at?: SortOrderInput | SortOrder token_type?: SortOrderInput | SortOrder scope?: SortOrderInput | SortOrder id_token?: SortOrderInput | SortOrder session_state?: SortOrderInput | SortOrder user?: UserOrderByWithRelationInput } export type AccountWhereUniqueInput = Prisma.AtLeast<{ id?: string provider_providerAccountId?: AccountProviderProviderAccountIdCompoundUniqueInput AND?: AccountWhereInput | AccountWhereInput[] OR?: AccountWhereInput[] NOT?: AccountWhereInput | AccountWhereInput[] userId?: StringFilter<"Account"> | string type?: StringFilter<"Account"> | string provider?: StringFilter<"Account"> | string providerAccountId?: StringFilter<"Account"> | string refresh_token?: StringNullableFilter<"Account"> | string | null access_token?: StringNullableFilter<"Account"> | string | null expires_at?: IntNullableFilter<"Account"> | number | null token_type?: StringNullableFilter<"Account"> | string | null scope?: StringNullableFilter<"Account"> | string | null id_token?: StringNullableFilter<"Account"> | string | null session_state?: StringNullableFilter<"Account"> | string | null user?: XOR }, "id" | "provider_providerAccountId"> export type AccountOrderByWithAggregationInput = { id?: SortOrder userId?: SortOrder type?: SortOrder provider?: SortOrder providerAccountId?: SortOrder refresh_token?: SortOrderInput | SortOrder access_token?: SortOrderInput | SortOrder expires_at?: SortOrderInput | SortOrder token_type?: SortOrderInput | SortOrder scope?: SortOrderInput | SortOrder id_token?: SortOrderInput | SortOrder session_state?: SortOrderInput | SortOrder _count?: AccountCountOrderByAggregateInput _avg?: AccountAvgOrderByAggregateInput _max?: AccountMaxOrderByAggregateInput _min?: AccountMinOrderByAggregateInput _sum?: AccountSumOrderByAggregateInput } export type AccountScalarWhereWithAggregatesInput = { AND?: AccountScalarWhereWithAggregatesInput | AccountScalarWhereWithAggregatesInput[] OR?: AccountScalarWhereWithAggregatesInput[] NOT?: AccountScalarWhereWithAggregatesInput | AccountScalarWhereWithAggregatesInput[] id?: StringWithAggregatesFilter<"Account"> | string userId?: StringWithAggregatesFilter<"Account"> | string type?: StringWithAggregatesFilter<"Account"> | string provider?: StringWithAggregatesFilter<"Account"> | string providerAccountId?: StringWithAggregatesFilter<"Account"> | string refresh_token?: StringNullableWithAggregatesFilter<"Account"> | string | null access_token?: StringNullableWithAggregatesFilter<"Account"> | string | null expires_at?: IntNullableWithAggregatesFilter<"Account"> | number | null token_type?: StringNullableWithAggregatesFilter<"Account"> | string | null scope?: StringNullableWithAggregatesFilter<"Account"> | string | null id_token?: StringNullableWithAggregatesFilter<"Account"> | string | null session_state?: StringNullableWithAggregatesFilter<"Account"> | string | null } export type SessionWhereInput = { AND?: SessionWhereInput | SessionWhereInput[] OR?: SessionWhereInput[] NOT?: SessionWhereInput | SessionWhereInput[] id?: StringFilter<"Session"> | string sessionToken?: StringFilter<"Session"> | string userId?: StringFilter<"Session"> | string expires?: DateTimeFilter<"Session"> | Date | string user?: XOR } export type SessionOrderByWithRelationInput = { id?: SortOrder sessionToken?: SortOrder userId?: SortOrder expires?: SortOrder user?: UserOrderByWithRelationInput } export type SessionWhereUniqueInput = Prisma.AtLeast<{ id?: string sessionToken?: string AND?: SessionWhereInput | SessionWhereInput[] OR?: SessionWhereInput[] NOT?: SessionWhereInput | SessionWhereInput[] userId?: StringFilter<"Session"> | string expires?: DateTimeFilter<"Session"> | Date | string user?: XOR }, "id" | "sessionToken"> export type SessionOrderByWithAggregationInput = { id?: SortOrder sessionToken?: SortOrder userId?: SortOrder expires?: SortOrder _count?: SessionCountOrderByAggregateInput _max?: SessionMaxOrderByAggregateInput _min?: SessionMinOrderByAggregateInput } export type SessionScalarWhereWithAggregatesInput = { AND?: SessionScalarWhereWithAggregatesInput | SessionScalarWhereWithAggregatesInput[] OR?: SessionScalarWhereWithAggregatesInput[] NOT?: SessionScalarWhereWithAggregatesInput | SessionScalarWhereWithAggregatesInput[] id?: StringWithAggregatesFilter<"Session"> | string sessionToken?: StringWithAggregatesFilter<"Session"> | string userId?: StringWithAggregatesFilter<"Session"> | string expires?: DateTimeWithAggregatesFilter<"Session"> | Date | string } export type VerificationTokenWhereInput = { AND?: VerificationTokenWhereInput | VerificationTokenWhereInput[] OR?: VerificationTokenWhereInput[] NOT?: VerificationTokenWhereInput | VerificationTokenWhereInput[] identifier?: StringFilter<"VerificationToken"> | string token?: StringFilter<"VerificationToken"> | string expires?: DateTimeFilter<"VerificationToken"> | Date | string } export type VerificationTokenOrderByWithRelationInput = { identifier?: SortOrder token?: SortOrder expires?: SortOrder } export type VerificationTokenWhereUniqueInput = Prisma.AtLeast<{ token?: string identifier_token?: VerificationTokenIdentifierTokenCompoundUniqueInput AND?: VerificationTokenWhereInput | VerificationTokenWhereInput[] OR?: VerificationTokenWhereInput[] NOT?: VerificationTokenWhereInput | VerificationTokenWhereInput[] identifier?: StringFilter<"VerificationToken"> | string expires?: DateTimeFilter<"VerificationToken"> | Date | string }, "token" | "identifier_token"> export type VerificationTokenOrderByWithAggregationInput = { identifier?: SortOrder token?: SortOrder expires?: SortOrder _count?: VerificationTokenCountOrderByAggregateInput _max?: VerificationTokenMaxOrderByAggregateInput _min?: VerificationTokenMinOrderByAggregateInput } export type VerificationTokenScalarWhereWithAggregatesInput = { AND?: VerificationTokenScalarWhereWithAggregatesInput | VerificationTokenScalarWhereWithAggregatesInput[] OR?: VerificationTokenScalarWhereWithAggregatesInput[] NOT?: VerificationTokenScalarWhereWithAggregatesInput | VerificationTokenScalarWhereWithAggregatesInput[] identifier?: StringWithAggregatesFilter<"VerificationToken"> | string token?: StringWithAggregatesFilter<"VerificationToken"> | string expires?: DateTimeWithAggregatesFilter<"VerificationToken"> | Date | string } export type CourseWhereInput = { AND?: CourseWhereInput | CourseWhereInput[] OR?: CourseWhereInput[] NOT?: CourseWhereInput | CourseWhereInput[] id?: StringFilter<"Course"> | string slug?: StringFilter<"Course"> | string category?: EnumCourseCategoryFilter<"Course"> | $Enums.CourseCategory level?: EnumCourseLevelFilter<"Course"> | $Enums.CourseLevel thumbnailUrl?: StringNullableFilter<"Course"> | string | null published?: BoolFilter<"Course"> | boolean order?: IntFilter<"Course"> | number createdAt?: DateTimeFilter<"Course"> | Date | string titleFr?: StringFilter<"Course"> | string titleEn?: StringFilter<"Course"> | string titleEs?: StringFilter<"Course"> | string descFr?: StringFilter<"Course"> | string descEn?: StringFilter<"Course"> | string descEs?: StringFilter<"Course"> | string modules?: ModuleListRelationFilter enrollments?: EnrollmentListRelationFilter certificates?: CertificateListRelationFilter } export type CourseOrderByWithRelationInput = { id?: SortOrder slug?: SortOrder category?: SortOrder level?: SortOrder thumbnailUrl?: SortOrderInput | SortOrder published?: SortOrder order?: SortOrder createdAt?: SortOrder titleFr?: SortOrder titleEn?: SortOrder titleEs?: SortOrder descFr?: SortOrder descEn?: SortOrder descEs?: SortOrder modules?: ModuleOrderByRelationAggregateInput enrollments?: EnrollmentOrderByRelationAggregateInput certificates?: CertificateOrderByRelationAggregateInput } export type CourseWhereUniqueInput = Prisma.AtLeast<{ id?: string slug?: string AND?: CourseWhereInput | CourseWhereInput[] OR?: CourseWhereInput[] NOT?: CourseWhereInput | CourseWhereInput[] category?: EnumCourseCategoryFilter<"Course"> | $Enums.CourseCategory level?: EnumCourseLevelFilter<"Course"> | $Enums.CourseLevel thumbnailUrl?: StringNullableFilter<"Course"> | string | null published?: BoolFilter<"Course"> | boolean order?: IntFilter<"Course"> | number createdAt?: DateTimeFilter<"Course"> | Date | string titleFr?: StringFilter<"Course"> | string titleEn?: StringFilter<"Course"> | string titleEs?: StringFilter<"Course"> | string descFr?: StringFilter<"Course"> | string descEn?: StringFilter<"Course"> | string descEs?: StringFilter<"Course"> | string modules?: ModuleListRelationFilter enrollments?: EnrollmentListRelationFilter certificates?: CertificateListRelationFilter }, "id" | "slug"> export type CourseOrderByWithAggregationInput = { id?: SortOrder slug?: SortOrder category?: SortOrder level?: SortOrder thumbnailUrl?: SortOrderInput | SortOrder published?: SortOrder order?: SortOrder createdAt?: SortOrder titleFr?: SortOrder titleEn?: SortOrder titleEs?: SortOrder descFr?: SortOrder descEn?: SortOrder descEs?: SortOrder _count?: CourseCountOrderByAggregateInput _avg?: CourseAvgOrderByAggregateInput _max?: CourseMaxOrderByAggregateInput _min?: CourseMinOrderByAggregateInput _sum?: CourseSumOrderByAggregateInput } export type CourseScalarWhereWithAggregatesInput = { AND?: CourseScalarWhereWithAggregatesInput | CourseScalarWhereWithAggregatesInput[] OR?: CourseScalarWhereWithAggregatesInput[] NOT?: CourseScalarWhereWithAggregatesInput | CourseScalarWhereWithAggregatesInput[] id?: StringWithAggregatesFilter<"Course"> | string slug?: StringWithAggregatesFilter<"Course"> | string category?: EnumCourseCategoryWithAggregatesFilter<"Course"> | $Enums.CourseCategory level?: EnumCourseLevelWithAggregatesFilter<"Course"> | $Enums.CourseLevel thumbnailUrl?: StringNullableWithAggregatesFilter<"Course"> | string | null published?: BoolWithAggregatesFilter<"Course"> | boolean order?: IntWithAggregatesFilter<"Course"> | number createdAt?: DateTimeWithAggregatesFilter<"Course"> | Date | string titleFr?: StringWithAggregatesFilter<"Course"> | string titleEn?: StringWithAggregatesFilter<"Course"> | string titleEs?: StringWithAggregatesFilter<"Course"> | string descFr?: StringWithAggregatesFilter<"Course"> | string descEn?: StringWithAggregatesFilter<"Course"> | string descEs?: StringWithAggregatesFilter<"Course"> | string } export type ModuleWhereInput = { AND?: ModuleWhereInput | ModuleWhereInput[] OR?: ModuleWhereInput[] NOT?: ModuleWhereInput | ModuleWhereInput[] id?: StringFilter<"Module"> | string courseId?: StringFilter<"Module"> | string order?: IntFilter<"Module"> | number titleFr?: StringFilter<"Module"> | string titleEn?: StringFilter<"Module"> | string titleEs?: StringFilter<"Module"> | string course?: XOR lessons?: LessonListRelationFilter quiz?: XOR | null } export type ModuleOrderByWithRelationInput = { id?: SortOrder courseId?: SortOrder order?: SortOrder titleFr?: SortOrder titleEn?: SortOrder titleEs?: SortOrder course?: CourseOrderByWithRelationInput lessons?: LessonOrderByRelationAggregateInput quiz?: QuizOrderByWithRelationInput } export type ModuleWhereUniqueInput = Prisma.AtLeast<{ id?: string AND?: ModuleWhereInput | ModuleWhereInput[] OR?: ModuleWhereInput[] NOT?: ModuleWhereInput | ModuleWhereInput[] courseId?: StringFilter<"Module"> | string order?: IntFilter<"Module"> | number titleFr?: StringFilter<"Module"> | string titleEn?: StringFilter<"Module"> | string titleEs?: StringFilter<"Module"> | string course?: XOR lessons?: LessonListRelationFilter quiz?: XOR | null }, "id"> export type ModuleOrderByWithAggregationInput = { id?: SortOrder courseId?: SortOrder order?: SortOrder titleFr?: SortOrder titleEn?: SortOrder titleEs?: SortOrder _count?: ModuleCountOrderByAggregateInput _avg?: ModuleAvgOrderByAggregateInput _max?: ModuleMaxOrderByAggregateInput _min?: ModuleMinOrderByAggregateInput _sum?: ModuleSumOrderByAggregateInput } export type ModuleScalarWhereWithAggregatesInput = { AND?: ModuleScalarWhereWithAggregatesInput | ModuleScalarWhereWithAggregatesInput[] OR?: ModuleScalarWhereWithAggregatesInput[] NOT?: ModuleScalarWhereWithAggregatesInput | ModuleScalarWhereWithAggregatesInput[] id?: StringWithAggregatesFilter<"Module"> | string courseId?: StringWithAggregatesFilter<"Module"> | string order?: IntWithAggregatesFilter<"Module"> | number titleFr?: StringWithAggregatesFilter<"Module"> | string titleEn?: StringWithAggregatesFilter<"Module"> | string titleEs?: StringWithAggregatesFilter<"Module"> | string } export type LessonWhereInput = { AND?: LessonWhereInput | LessonWhereInput[] OR?: LessonWhereInput[] NOT?: LessonWhereInput | LessonWhereInput[] id?: StringFilter<"Lesson"> | string moduleId?: StringFilter<"Lesson"> | string order?: IntFilter<"Lesson"> | number type?: EnumLessonTypeFilter<"Lesson"> | $Enums.LessonType videoUrl?: StringNullableFilter<"Lesson"> | string | null duration?: IntNullableFilter<"Lesson"> | number | null titleFr?: StringFilter<"Lesson"> | string titleEn?: StringFilter<"Lesson"> | string titleEs?: StringFilter<"Lesson"> | string contentFr?: StringNullableFilter<"Lesson"> | string | null contentEn?: StringNullableFilter<"Lesson"> | string | null contentEs?: StringNullableFilter<"Lesson"> | string | null module?: XOR lessonProgress?: LessonProgressListRelationFilter } export type LessonOrderByWithRelationInput = { id?: SortOrder moduleId?: SortOrder order?: SortOrder type?: SortOrder videoUrl?: SortOrderInput | SortOrder duration?: SortOrderInput | SortOrder titleFr?: SortOrder titleEn?: SortOrder titleEs?: SortOrder contentFr?: SortOrderInput | SortOrder contentEn?: SortOrderInput | SortOrder contentEs?: SortOrderInput | SortOrder module?: ModuleOrderByWithRelationInput lessonProgress?: LessonProgressOrderByRelationAggregateInput } export type LessonWhereUniqueInput = Prisma.AtLeast<{ id?: string AND?: LessonWhereInput | LessonWhereInput[] OR?: LessonWhereInput[] NOT?: LessonWhereInput | LessonWhereInput[] moduleId?: StringFilter<"Lesson"> | string order?: IntFilter<"Lesson"> | number type?: EnumLessonTypeFilter<"Lesson"> | $Enums.LessonType videoUrl?: StringNullableFilter<"Lesson"> | string | null duration?: IntNullableFilter<"Lesson"> | number | null titleFr?: StringFilter<"Lesson"> | string titleEn?: StringFilter<"Lesson"> | string titleEs?: StringFilter<"Lesson"> | string contentFr?: StringNullableFilter<"Lesson"> | string | null contentEn?: StringNullableFilter<"Lesson"> | string | null contentEs?: StringNullableFilter<"Lesson"> | string | null module?: XOR lessonProgress?: LessonProgressListRelationFilter }, "id"> export type LessonOrderByWithAggregationInput = { id?: SortOrder moduleId?: SortOrder order?: SortOrder type?: SortOrder videoUrl?: SortOrderInput | SortOrder duration?: SortOrderInput | SortOrder titleFr?: SortOrder titleEn?: SortOrder titleEs?: SortOrder contentFr?: SortOrderInput | SortOrder contentEn?: SortOrderInput | SortOrder contentEs?: SortOrderInput | SortOrder _count?: LessonCountOrderByAggregateInput _avg?: LessonAvgOrderByAggregateInput _max?: LessonMaxOrderByAggregateInput _min?: LessonMinOrderByAggregateInput _sum?: LessonSumOrderByAggregateInput } export type LessonScalarWhereWithAggregatesInput = { AND?: LessonScalarWhereWithAggregatesInput | LessonScalarWhereWithAggregatesInput[] OR?: LessonScalarWhereWithAggregatesInput[] NOT?: LessonScalarWhereWithAggregatesInput | LessonScalarWhereWithAggregatesInput[] id?: StringWithAggregatesFilter<"Lesson"> | string moduleId?: StringWithAggregatesFilter<"Lesson"> | string order?: IntWithAggregatesFilter<"Lesson"> | number type?: EnumLessonTypeWithAggregatesFilter<"Lesson"> | $Enums.LessonType videoUrl?: StringNullableWithAggregatesFilter<"Lesson"> | string | null duration?: IntNullableWithAggregatesFilter<"Lesson"> | number | null titleFr?: StringWithAggregatesFilter<"Lesson"> | string titleEn?: StringWithAggregatesFilter<"Lesson"> | string titleEs?: StringWithAggregatesFilter<"Lesson"> | string contentFr?: StringNullableWithAggregatesFilter<"Lesson"> | string | null contentEn?: StringNullableWithAggregatesFilter<"Lesson"> | string | null contentEs?: StringNullableWithAggregatesFilter<"Lesson"> | string | null } export type QuizWhereInput = { AND?: QuizWhereInput | QuizWhereInput[] OR?: QuizWhereInput[] NOT?: QuizWhereInput | QuizWhereInput[] id?: StringFilter<"Quiz"> | string moduleId?: StringFilter<"Quiz"> | string passMark?: IntFilter<"Quiz"> | number module?: XOR questions?: QuestionListRelationFilter attempts?: QuizAttemptListRelationFilter } export type QuizOrderByWithRelationInput = { id?: SortOrder moduleId?: SortOrder passMark?: SortOrder module?: ModuleOrderByWithRelationInput questions?: QuestionOrderByRelationAggregateInput attempts?: QuizAttemptOrderByRelationAggregateInput } export type QuizWhereUniqueInput = Prisma.AtLeast<{ id?: string moduleId?: string AND?: QuizWhereInput | QuizWhereInput[] OR?: QuizWhereInput[] NOT?: QuizWhereInput | QuizWhereInput[] passMark?: IntFilter<"Quiz"> | number module?: XOR questions?: QuestionListRelationFilter attempts?: QuizAttemptListRelationFilter }, "id" | "moduleId"> export type QuizOrderByWithAggregationInput = { id?: SortOrder moduleId?: SortOrder passMark?: SortOrder _count?: QuizCountOrderByAggregateInput _avg?: QuizAvgOrderByAggregateInput _max?: QuizMaxOrderByAggregateInput _min?: QuizMinOrderByAggregateInput _sum?: QuizSumOrderByAggregateInput } export type QuizScalarWhereWithAggregatesInput = { AND?: QuizScalarWhereWithAggregatesInput | QuizScalarWhereWithAggregatesInput[] OR?: QuizScalarWhereWithAggregatesInput[] NOT?: QuizScalarWhereWithAggregatesInput | QuizScalarWhereWithAggregatesInput[] id?: StringWithAggregatesFilter<"Quiz"> | string moduleId?: StringWithAggregatesFilter<"Quiz"> | string passMark?: IntWithAggregatesFilter<"Quiz"> | number } export type QuestionWhereInput = { AND?: QuestionWhereInput | QuestionWhereInput[] OR?: QuestionWhereInput[] NOT?: QuestionWhereInput | QuestionWhereInput[] id?: StringFilter<"Question"> | string quizId?: StringFilter<"Question"> | string order?: IntFilter<"Question"> | number textFr?: StringFilter<"Question"> | string textEn?: StringFilter<"Question"> | string textEs?: StringFilter<"Question"> | string optionsFr?: StringNullableListFilter<"Question"> optionsEn?: StringNullableListFilter<"Question"> optionsEs?: StringNullableListFilter<"Question"> correctIndex?: IntFilter<"Question"> | number quiz?: XOR } export type QuestionOrderByWithRelationInput = { id?: SortOrder quizId?: SortOrder order?: SortOrder textFr?: SortOrder textEn?: SortOrder textEs?: SortOrder optionsFr?: SortOrder optionsEn?: SortOrder optionsEs?: SortOrder correctIndex?: SortOrder quiz?: QuizOrderByWithRelationInput } export type QuestionWhereUniqueInput = Prisma.AtLeast<{ id?: string AND?: QuestionWhereInput | QuestionWhereInput[] OR?: QuestionWhereInput[] NOT?: QuestionWhereInput | QuestionWhereInput[] quizId?: StringFilter<"Question"> | string order?: IntFilter<"Question"> | number textFr?: StringFilter<"Question"> | string textEn?: StringFilter<"Question"> | string textEs?: StringFilter<"Question"> | string optionsFr?: StringNullableListFilter<"Question"> optionsEn?: StringNullableListFilter<"Question"> optionsEs?: StringNullableListFilter<"Question"> correctIndex?: IntFilter<"Question"> | number quiz?: XOR }, "id"> export type QuestionOrderByWithAggregationInput = { id?: SortOrder quizId?: SortOrder order?: SortOrder textFr?: SortOrder textEn?: SortOrder textEs?: SortOrder optionsFr?: SortOrder optionsEn?: SortOrder optionsEs?: SortOrder correctIndex?: SortOrder _count?: QuestionCountOrderByAggregateInput _avg?: QuestionAvgOrderByAggregateInput _max?: QuestionMaxOrderByAggregateInput _min?: QuestionMinOrderByAggregateInput _sum?: QuestionSumOrderByAggregateInput } export type QuestionScalarWhereWithAggregatesInput = { AND?: QuestionScalarWhereWithAggregatesInput | QuestionScalarWhereWithAggregatesInput[] OR?: QuestionScalarWhereWithAggregatesInput[] NOT?: QuestionScalarWhereWithAggregatesInput | QuestionScalarWhereWithAggregatesInput[] id?: StringWithAggregatesFilter<"Question"> | string quizId?: StringWithAggregatesFilter<"Question"> | string order?: IntWithAggregatesFilter<"Question"> | number textFr?: StringWithAggregatesFilter<"Question"> | string textEn?: StringWithAggregatesFilter<"Question"> | string textEs?: StringWithAggregatesFilter<"Question"> | string optionsFr?: StringNullableListFilter<"Question"> optionsEn?: StringNullableListFilter<"Question"> optionsEs?: StringNullableListFilter<"Question"> correctIndex?: IntWithAggregatesFilter<"Question"> | number } export type EnrollmentWhereInput = { AND?: EnrollmentWhereInput | EnrollmentWhereInput[] OR?: EnrollmentWhereInput[] NOT?: EnrollmentWhereInput | EnrollmentWhereInput[] id?: StringFilter<"Enrollment"> | string userId?: StringFilter<"Enrollment"> | string courseId?: StringFilter<"Enrollment"> | string enrolledAt?: DateTimeFilter<"Enrollment"> | Date | string completedAt?: DateTimeNullableFilter<"Enrollment"> | Date | string | null user?: XOR course?: XOR } export type EnrollmentOrderByWithRelationInput = { id?: SortOrder userId?: SortOrder courseId?: SortOrder enrolledAt?: SortOrder completedAt?: SortOrderInput | SortOrder user?: UserOrderByWithRelationInput course?: CourseOrderByWithRelationInput } export type EnrollmentWhereUniqueInput = Prisma.AtLeast<{ id?: string userId_courseId?: EnrollmentUserIdCourseIdCompoundUniqueInput AND?: EnrollmentWhereInput | EnrollmentWhereInput[] OR?: EnrollmentWhereInput[] NOT?: EnrollmentWhereInput | EnrollmentWhereInput[] userId?: StringFilter<"Enrollment"> | string courseId?: StringFilter<"Enrollment"> | string enrolledAt?: DateTimeFilter<"Enrollment"> | Date | string completedAt?: DateTimeNullableFilter<"Enrollment"> | Date | string | null user?: XOR course?: XOR }, "id" | "userId_courseId"> export type EnrollmentOrderByWithAggregationInput = { id?: SortOrder userId?: SortOrder courseId?: SortOrder enrolledAt?: SortOrder completedAt?: SortOrderInput | SortOrder _count?: EnrollmentCountOrderByAggregateInput _max?: EnrollmentMaxOrderByAggregateInput _min?: EnrollmentMinOrderByAggregateInput } export type EnrollmentScalarWhereWithAggregatesInput = { AND?: EnrollmentScalarWhereWithAggregatesInput | EnrollmentScalarWhereWithAggregatesInput[] OR?: EnrollmentScalarWhereWithAggregatesInput[] NOT?: EnrollmentScalarWhereWithAggregatesInput | EnrollmentScalarWhereWithAggregatesInput[] id?: StringWithAggregatesFilter<"Enrollment"> | string userId?: StringWithAggregatesFilter<"Enrollment"> | string courseId?: StringWithAggregatesFilter<"Enrollment"> | string enrolledAt?: DateTimeWithAggregatesFilter<"Enrollment"> | Date | string completedAt?: DateTimeNullableWithAggregatesFilter<"Enrollment"> | Date | string | null } export type LessonProgressWhereInput = { AND?: LessonProgressWhereInput | LessonProgressWhereInput[] OR?: LessonProgressWhereInput[] NOT?: LessonProgressWhereInput | LessonProgressWhereInput[] id?: StringFilter<"LessonProgress"> | string userId?: StringFilter<"LessonProgress"> | string lessonId?: StringFilter<"LessonProgress"> | string completedAt?: DateTimeFilter<"LessonProgress"> | Date | string user?: XOR lesson?: XOR } export type LessonProgressOrderByWithRelationInput = { id?: SortOrder userId?: SortOrder lessonId?: SortOrder completedAt?: SortOrder user?: UserOrderByWithRelationInput lesson?: LessonOrderByWithRelationInput } export type LessonProgressWhereUniqueInput = Prisma.AtLeast<{ id?: string userId_lessonId?: LessonProgressUserIdLessonIdCompoundUniqueInput AND?: LessonProgressWhereInput | LessonProgressWhereInput[] OR?: LessonProgressWhereInput[] NOT?: LessonProgressWhereInput | LessonProgressWhereInput[] userId?: StringFilter<"LessonProgress"> | string lessonId?: StringFilter<"LessonProgress"> | string completedAt?: DateTimeFilter<"LessonProgress"> | Date | string user?: XOR lesson?: XOR }, "id" | "userId_lessonId"> export type LessonProgressOrderByWithAggregationInput = { id?: SortOrder userId?: SortOrder lessonId?: SortOrder completedAt?: SortOrder _count?: LessonProgressCountOrderByAggregateInput _max?: LessonProgressMaxOrderByAggregateInput _min?: LessonProgressMinOrderByAggregateInput } export type LessonProgressScalarWhereWithAggregatesInput = { AND?: LessonProgressScalarWhereWithAggregatesInput | LessonProgressScalarWhereWithAggregatesInput[] OR?: LessonProgressScalarWhereWithAggregatesInput[] NOT?: LessonProgressScalarWhereWithAggregatesInput | LessonProgressScalarWhereWithAggregatesInput[] id?: StringWithAggregatesFilter<"LessonProgress"> | string userId?: StringWithAggregatesFilter<"LessonProgress"> | string lessonId?: StringWithAggregatesFilter<"LessonProgress"> | string completedAt?: DateTimeWithAggregatesFilter<"LessonProgress"> | Date | string } export type QuizAttemptWhereInput = { AND?: QuizAttemptWhereInput | QuizAttemptWhereInput[] OR?: QuizAttemptWhereInput[] NOT?: QuizAttemptWhereInput | QuizAttemptWhereInput[] id?: StringFilter<"QuizAttempt"> | string userId?: StringFilter<"QuizAttempt"> | string quizId?: StringFilter<"QuizAttempt"> | string score?: IntFilter<"QuizAttempt"> | number passed?: BoolFilter<"QuizAttempt"> | boolean answers?: IntNullableListFilter<"QuizAttempt"> completedAt?: DateTimeFilter<"QuizAttempt"> | Date | string user?: XOR quiz?: XOR } export type QuizAttemptOrderByWithRelationInput = { id?: SortOrder userId?: SortOrder quizId?: SortOrder score?: SortOrder passed?: SortOrder answers?: SortOrder completedAt?: SortOrder user?: UserOrderByWithRelationInput quiz?: QuizOrderByWithRelationInput } export type QuizAttemptWhereUniqueInput = Prisma.AtLeast<{ id?: string AND?: QuizAttemptWhereInput | QuizAttemptWhereInput[] OR?: QuizAttemptWhereInput[] NOT?: QuizAttemptWhereInput | QuizAttemptWhereInput[] userId?: StringFilter<"QuizAttempt"> | string quizId?: StringFilter<"QuizAttempt"> | string score?: IntFilter<"QuizAttempt"> | number passed?: BoolFilter<"QuizAttempt"> | boolean answers?: IntNullableListFilter<"QuizAttempt"> completedAt?: DateTimeFilter<"QuizAttempt"> | Date | string user?: XOR quiz?: XOR }, "id"> export type QuizAttemptOrderByWithAggregationInput = { id?: SortOrder userId?: SortOrder quizId?: SortOrder score?: SortOrder passed?: SortOrder answers?: SortOrder completedAt?: SortOrder _count?: QuizAttemptCountOrderByAggregateInput _avg?: QuizAttemptAvgOrderByAggregateInput _max?: QuizAttemptMaxOrderByAggregateInput _min?: QuizAttemptMinOrderByAggregateInput _sum?: QuizAttemptSumOrderByAggregateInput } export type QuizAttemptScalarWhereWithAggregatesInput = { AND?: QuizAttemptScalarWhereWithAggregatesInput | QuizAttemptScalarWhereWithAggregatesInput[] OR?: QuizAttemptScalarWhereWithAggregatesInput[] NOT?: QuizAttemptScalarWhereWithAggregatesInput | QuizAttemptScalarWhereWithAggregatesInput[] id?: StringWithAggregatesFilter<"QuizAttempt"> | string userId?: StringWithAggregatesFilter<"QuizAttempt"> | string quizId?: StringWithAggregatesFilter<"QuizAttempt"> | string score?: IntWithAggregatesFilter<"QuizAttempt"> | number passed?: BoolWithAggregatesFilter<"QuizAttempt"> | boolean answers?: IntNullableListFilter<"QuizAttempt"> completedAt?: DateTimeWithAggregatesFilter<"QuizAttempt"> | Date | string } export type CertificateWhereInput = { AND?: CertificateWhereInput | CertificateWhereInput[] OR?: CertificateWhereInput[] NOT?: CertificateWhereInput | CertificateWhereInput[] id?: StringFilter<"Certificate"> | string userId?: StringFilter<"Certificate"> | string courseId?: StringFilter<"Certificate"> | string issuedAt?: DateTimeFilter<"Certificate"> | Date | string pdfUrl?: StringNullableFilter<"Certificate"> | string | null isPaid?: BoolFilter<"Certificate"> | boolean user?: XOR course?: XOR } export type CertificateOrderByWithRelationInput = { id?: SortOrder userId?: SortOrder courseId?: SortOrder issuedAt?: SortOrder pdfUrl?: SortOrderInput | SortOrder isPaid?: SortOrder user?: UserOrderByWithRelationInput course?: CourseOrderByWithRelationInput } export type CertificateWhereUniqueInput = Prisma.AtLeast<{ id?: string userId_courseId?: CertificateUserIdCourseIdCompoundUniqueInput AND?: CertificateWhereInput | CertificateWhereInput[] OR?: CertificateWhereInput[] NOT?: CertificateWhereInput | CertificateWhereInput[] userId?: StringFilter<"Certificate"> | string courseId?: StringFilter<"Certificate"> | string issuedAt?: DateTimeFilter<"Certificate"> | Date | string pdfUrl?: StringNullableFilter<"Certificate"> | string | null isPaid?: BoolFilter<"Certificate"> | boolean user?: XOR course?: XOR }, "id" | "userId_courseId"> export type CertificateOrderByWithAggregationInput = { id?: SortOrder userId?: SortOrder courseId?: SortOrder issuedAt?: SortOrder pdfUrl?: SortOrderInput | SortOrder isPaid?: SortOrder _count?: CertificateCountOrderByAggregateInput _max?: CertificateMaxOrderByAggregateInput _min?: CertificateMinOrderByAggregateInput } export type CertificateScalarWhereWithAggregatesInput = { AND?: CertificateScalarWhereWithAggregatesInput | CertificateScalarWhereWithAggregatesInput[] OR?: CertificateScalarWhereWithAggregatesInput[] NOT?: CertificateScalarWhereWithAggregatesInput | CertificateScalarWhereWithAggregatesInput[] id?: StringWithAggregatesFilter<"Certificate"> | string userId?: StringWithAggregatesFilter<"Certificate"> | string courseId?: StringWithAggregatesFilter<"Certificate"> | string issuedAt?: DateTimeWithAggregatesFilter<"Certificate"> | Date | string pdfUrl?: StringNullableWithAggregatesFilter<"Certificate"> | string | null isPaid?: BoolWithAggregatesFilter<"Certificate"> | boolean } export type UserCreateInput = { id?: string email: string name?: string | null image?: string | null emailVerified?: Date | string | null locale?: string role?: $Enums.Role createdAt?: Date | string accounts?: AccountCreateNestedManyWithoutUserInput sessions?: SessionCreateNestedManyWithoutUserInput enrollments?: EnrollmentCreateNestedManyWithoutUserInput lessonProgress?: LessonProgressCreateNestedManyWithoutUserInput quizAttempts?: QuizAttemptCreateNestedManyWithoutUserInput certificates?: CertificateCreateNestedManyWithoutUserInput } export type UserUncheckedCreateInput = { id?: string email: string name?: string | null image?: string | null emailVerified?: Date | string | null locale?: string role?: $Enums.Role createdAt?: Date | string accounts?: AccountUncheckedCreateNestedManyWithoutUserInput sessions?: SessionUncheckedCreateNestedManyWithoutUserInput enrollments?: EnrollmentUncheckedCreateNestedManyWithoutUserInput lessonProgress?: LessonProgressUncheckedCreateNestedManyWithoutUserInput quizAttempts?: QuizAttemptUncheckedCreateNestedManyWithoutUserInput certificates?: CertificateUncheckedCreateNestedManyWithoutUserInput } export type UserUpdateInput = { id?: StringFieldUpdateOperationsInput | string email?: StringFieldUpdateOperationsInput | string name?: NullableStringFieldUpdateOperationsInput | string | null image?: NullableStringFieldUpdateOperationsInput | string | null emailVerified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null locale?: StringFieldUpdateOperationsInput | string role?: EnumRoleFieldUpdateOperationsInput | $Enums.Role createdAt?: DateTimeFieldUpdateOperationsInput | Date | string accounts?: AccountUpdateManyWithoutUserNestedInput sessions?: SessionUpdateManyWithoutUserNestedInput enrollments?: EnrollmentUpdateManyWithoutUserNestedInput lessonProgress?: LessonProgressUpdateManyWithoutUserNestedInput quizAttempts?: QuizAttemptUpdateManyWithoutUserNestedInput certificates?: CertificateUpdateManyWithoutUserNestedInput } export type UserUncheckedUpdateInput = { id?: StringFieldUpdateOperationsInput | string email?: StringFieldUpdateOperationsInput | string name?: NullableStringFieldUpdateOperationsInput | string | null image?: NullableStringFieldUpdateOperationsInput | string | null emailVerified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null locale?: StringFieldUpdateOperationsInput | string role?: EnumRoleFieldUpdateOperationsInput | $Enums.Role createdAt?: DateTimeFieldUpdateOperationsInput | Date | string accounts?: AccountUncheckedUpdateManyWithoutUserNestedInput sessions?: SessionUncheckedUpdateManyWithoutUserNestedInput enrollments?: EnrollmentUncheckedUpdateManyWithoutUserNestedInput lessonProgress?: LessonProgressUncheckedUpdateManyWithoutUserNestedInput quizAttempts?: QuizAttemptUncheckedUpdateManyWithoutUserNestedInput certificates?: CertificateUncheckedUpdateManyWithoutUserNestedInput } export type UserCreateManyInput = { id?: string email: string name?: string | null image?: string | null emailVerified?: Date | string | null locale?: string role?: $Enums.Role createdAt?: Date | string } export type UserUpdateManyMutationInput = { id?: StringFieldUpdateOperationsInput | string email?: StringFieldUpdateOperationsInput | string name?: NullableStringFieldUpdateOperationsInput | string | null image?: NullableStringFieldUpdateOperationsInput | string | null emailVerified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null locale?: StringFieldUpdateOperationsInput | string role?: EnumRoleFieldUpdateOperationsInput | $Enums.Role createdAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type UserUncheckedUpdateManyInput = { id?: StringFieldUpdateOperationsInput | string email?: StringFieldUpdateOperationsInput | string name?: NullableStringFieldUpdateOperationsInput | string | null image?: NullableStringFieldUpdateOperationsInput | string | null emailVerified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null locale?: StringFieldUpdateOperationsInput | string role?: EnumRoleFieldUpdateOperationsInput | $Enums.Role createdAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type AccountCreateInput = { id?: string type: string provider: string providerAccountId: string refresh_token?: string | null access_token?: string | null expires_at?: number | null token_type?: string | null scope?: string | null id_token?: string | null session_state?: string | null user: UserCreateNestedOneWithoutAccountsInput } export type AccountUncheckedCreateInput = { id?: string userId: string type: string provider: string providerAccountId: string refresh_token?: string | null access_token?: string | null expires_at?: number | null token_type?: string | null scope?: string | null id_token?: string | null session_state?: string | null } export type AccountUpdateInput = { id?: StringFieldUpdateOperationsInput | string type?: StringFieldUpdateOperationsInput | string provider?: StringFieldUpdateOperationsInput | string providerAccountId?: StringFieldUpdateOperationsInput | string refresh_token?: NullableStringFieldUpdateOperationsInput | string | null access_token?: NullableStringFieldUpdateOperationsInput | string | null expires_at?: NullableIntFieldUpdateOperationsInput | number | null token_type?: NullableStringFieldUpdateOperationsInput | string | null scope?: NullableStringFieldUpdateOperationsInput | string | null id_token?: NullableStringFieldUpdateOperationsInput | string | null session_state?: NullableStringFieldUpdateOperationsInput | string | null user?: UserUpdateOneRequiredWithoutAccountsNestedInput } export type AccountUncheckedUpdateInput = { id?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string type?: StringFieldUpdateOperationsInput | string provider?: StringFieldUpdateOperationsInput | string providerAccountId?: StringFieldUpdateOperationsInput | string refresh_token?: NullableStringFieldUpdateOperationsInput | string | null access_token?: NullableStringFieldUpdateOperationsInput | string | null expires_at?: NullableIntFieldUpdateOperationsInput | number | null token_type?: NullableStringFieldUpdateOperationsInput | string | null scope?: NullableStringFieldUpdateOperationsInput | string | null id_token?: NullableStringFieldUpdateOperationsInput | string | null session_state?: NullableStringFieldUpdateOperationsInput | string | null } export type AccountCreateManyInput = { id?: string userId: string type: string provider: string providerAccountId: string refresh_token?: string | null access_token?: string | null expires_at?: number | null token_type?: string | null scope?: string | null id_token?: string | null session_state?: string | null } export type AccountUpdateManyMutationInput = { id?: StringFieldUpdateOperationsInput | string type?: StringFieldUpdateOperationsInput | string provider?: StringFieldUpdateOperationsInput | string providerAccountId?: StringFieldUpdateOperationsInput | string refresh_token?: NullableStringFieldUpdateOperationsInput | string | null access_token?: NullableStringFieldUpdateOperationsInput | string | null expires_at?: NullableIntFieldUpdateOperationsInput | number | null token_type?: NullableStringFieldUpdateOperationsInput | string | null scope?: NullableStringFieldUpdateOperationsInput | string | null id_token?: NullableStringFieldUpdateOperationsInput | string | null session_state?: NullableStringFieldUpdateOperationsInput | string | null } export type AccountUncheckedUpdateManyInput = { id?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string type?: StringFieldUpdateOperationsInput | string provider?: StringFieldUpdateOperationsInput | string providerAccountId?: StringFieldUpdateOperationsInput | string refresh_token?: NullableStringFieldUpdateOperationsInput | string | null access_token?: NullableStringFieldUpdateOperationsInput | string | null expires_at?: NullableIntFieldUpdateOperationsInput | number | null token_type?: NullableStringFieldUpdateOperationsInput | string | null scope?: NullableStringFieldUpdateOperationsInput | string | null id_token?: NullableStringFieldUpdateOperationsInput | string | null session_state?: NullableStringFieldUpdateOperationsInput | string | null } export type SessionCreateInput = { id?: string sessionToken: string expires: Date | string user: UserCreateNestedOneWithoutSessionsInput } export type SessionUncheckedCreateInput = { id?: string sessionToken: string userId: string expires: Date | string } export type SessionUpdateInput = { id?: StringFieldUpdateOperationsInput | string sessionToken?: StringFieldUpdateOperationsInput | string expires?: DateTimeFieldUpdateOperationsInput | Date | string user?: UserUpdateOneRequiredWithoutSessionsNestedInput } export type SessionUncheckedUpdateInput = { id?: StringFieldUpdateOperationsInput | string sessionToken?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string expires?: DateTimeFieldUpdateOperationsInput | Date | string } export type SessionCreateManyInput = { id?: string sessionToken: string userId: string expires: Date | string } export type SessionUpdateManyMutationInput = { id?: StringFieldUpdateOperationsInput | string sessionToken?: StringFieldUpdateOperationsInput | string expires?: DateTimeFieldUpdateOperationsInput | Date | string } export type SessionUncheckedUpdateManyInput = { id?: StringFieldUpdateOperationsInput | string sessionToken?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string expires?: DateTimeFieldUpdateOperationsInput | Date | string } export type VerificationTokenCreateInput = { identifier: string token: string expires: Date | string } export type VerificationTokenUncheckedCreateInput = { identifier: string token: string expires: Date | string } export type VerificationTokenUpdateInput = { identifier?: StringFieldUpdateOperationsInput | string token?: StringFieldUpdateOperationsInput | string expires?: DateTimeFieldUpdateOperationsInput | Date | string } export type VerificationTokenUncheckedUpdateInput = { identifier?: StringFieldUpdateOperationsInput | string token?: StringFieldUpdateOperationsInput | string expires?: DateTimeFieldUpdateOperationsInput | Date | string } export type VerificationTokenCreateManyInput = { identifier: string token: string expires: Date | string } export type VerificationTokenUpdateManyMutationInput = { identifier?: StringFieldUpdateOperationsInput | string token?: StringFieldUpdateOperationsInput | string expires?: DateTimeFieldUpdateOperationsInput | Date | string } export type VerificationTokenUncheckedUpdateManyInput = { identifier?: StringFieldUpdateOperationsInput | string token?: StringFieldUpdateOperationsInput | string expires?: DateTimeFieldUpdateOperationsInput | Date | string } export type CourseCreateInput = { id?: string slug: string category?: $Enums.CourseCategory level?: $Enums.CourseLevel thumbnailUrl?: string | null published?: boolean order?: number createdAt?: Date | string titleFr: string titleEn: string titleEs: string descFr: string descEn: string descEs: string modules?: ModuleCreateNestedManyWithoutCourseInput enrollments?: EnrollmentCreateNestedManyWithoutCourseInput certificates?: CertificateCreateNestedManyWithoutCourseInput } export type CourseUncheckedCreateInput = { id?: string slug: string category?: $Enums.CourseCategory level?: $Enums.CourseLevel thumbnailUrl?: string | null published?: boolean order?: number createdAt?: Date | string titleFr: string titleEn: string titleEs: string descFr: string descEn: string descEs: string modules?: ModuleUncheckedCreateNestedManyWithoutCourseInput enrollments?: EnrollmentUncheckedCreateNestedManyWithoutCourseInput certificates?: CertificateUncheckedCreateNestedManyWithoutCourseInput } export type CourseUpdateInput = { id?: StringFieldUpdateOperationsInput | string slug?: StringFieldUpdateOperationsInput | string category?: EnumCourseCategoryFieldUpdateOperationsInput | $Enums.CourseCategory level?: EnumCourseLevelFieldUpdateOperationsInput | $Enums.CourseLevel thumbnailUrl?: NullableStringFieldUpdateOperationsInput | string | null published?: BoolFieldUpdateOperationsInput | boolean order?: IntFieldUpdateOperationsInput | number createdAt?: DateTimeFieldUpdateOperationsInput | Date | string titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string descFr?: StringFieldUpdateOperationsInput | string descEn?: StringFieldUpdateOperationsInput | string descEs?: StringFieldUpdateOperationsInput | string modules?: ModuleUpdateManyWithoutCourseNestedInput enrollments?: EnrollmentUpdateManyWithoutCourseNestedInput certificates?: CertificateUpdateManyWithoutCourseNestedInput } export type CourseUncheckedUpdateInput = { id?: StringFieldUpdateOperationsInput | string slug?: StringFieldUpdateOperationsInput | string category?: EnumCourseCategoryFieldUpdateOperationsInput | $Enums.CourseCategory level?: EnumCourseLevelFieldUpdateOperationsInput | $Enums.CourseLevel thumbnailUrl?: NullableStringFieldUpdateOperationsInput | string | null published?: BoolFieldUpdateOperationsInput | boolean order?: IntFieldUpdateOperationsInput | number createdAt?: DateTimeFieldUpdateOperationsInput | Date | string titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string descFr?: StringFieldUpdateOperationsInput | string descEn?: StringFieldUpdateOperationsInput | string descEs?: StringFieldUpdateOperationsInput | string modules?: ModuleUncheckedUpdateManyWithoutCourseNestedInput enrollments?: EnrollmentUncheckedUpdateManyWithoutCourseNestedInput certificates?: CertificateUncheckedUpdateManyWithoutCourseNestedInput } export type CourseCreateManyInput = { id?: string slug: string category?: $Enums.CourseCategory level?: $Enums.CourseLevel thumbnailUrl?: string | null published?: boolean order?: number createdAt?: Date | string titleFr: string titleEn: string titleEs: string descFr: string descEn: string descEs: string } export type CourseUpdateManyMutationInput = { id?: StringFieldUpdateOperationsInput | string slug?: StringFieldUpdateOperationsInput | string category?: EnumCourseCategoryFieldUpdateOperationsInput | $Enums.CourseCategory level?: EnumCourseLevelFieldUpdateOperationsInput | $Enums.CourseLevel thumbnailUrl?: NullableStringFieldUpdateOperationsInput | string | null published?: BoolFieldUpdateOperationsInput | boolean order?: IntFieldUpdateOperationsInput | number createdAt?: DateTimeFieldUpdateOperationsInput | Date | string titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string descFr?: StringFieldUpdateOperationsInput | string descEn?: StringFieldUpdateOperationsInput | string descEs?: StringFieldUpdateOperationsInput | string } export type CourseUncheckedUpdateManyInput = { id?: StringFieldUpdateOperationsInput | string slug?: StringFieldUpdateOperationsInput | string category?: EnumCourseCategoryFieldUpdateOperationsInput | $Enums.CourseCategory level?: EnumCourseLevelFieldUpdateOperationsInput | $Enums.CourseLevel thumbnailUrl?: NullableStringFieldUpdateOperationsInput | string | null published?: BoolFieldUpdateOperationsInput | boolean order?: IntFieldUpdateOperationsInput | number createdAt?: DateTimeFieldUpdateOperationsInput | Date | string titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string descFr?: StringFieldUpdateOperationsInput | string descEn?: StringFieldUpdateOperationsInput | string descEs?: StringFieldUpdateOperationsInput | string } export type ModuleCreateInput = { id?: string order?: number titleFr: string titleEn: string titleEs: string course: CourseCreateNestedOneWithoutModulesInput lessons?: LessonCreateNestedManyWithoutModuleInput quiz?: QuizCreateNestedOneWithoutModuleInput } export type ModuleUncheckedCreateInput = { id?: string courseId: string order?: number titleFr: string titleEn: string titleEs: string lessons?: LessonUncheckedCreateNestedManyWithoutModuleInput quiz?: QuizUncheckedCreateNestedOneWithoutModuleInput } export type ModuleUpdateInput = { id?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string course?: CourseUpdateOneRequiredWithoutModulesNestedInput lessons?: LessonUpdateManyWithoutModuleNestedInput quiz?: QuizUpdateOneWithoutModuleNestedInput } export type ModuleUncheckedUpdateInput = { id?: StringFieldUpdateOperationsInput | string courseId?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string lessons?: LessonUncheckedUpdateManyWithoutModuleNestedInput quiz?: QuizUncheckedUpdateOneWithoutModuleNestedInput } export type ModuleCreateManyInput = { id?: string courseId: string order?: number titleFr: string titleEn: string titleEs: string } export type ModuleUpdateManyMutationInput = { id?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string } export type ModuleUncheckedUpdateManyInput = { id?: StringFieldUpdateOperationsInput | string courseId?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string } export type LessonCreateInput = { id?: string order?: number type?: $Enums.LessonType videoUrl?: string | null duration?: number | null titleFr: string titleEn: string titleEs: string contentFr?: string | null contentEn?: string | null contentEs?: string | null module: ModuleCreateNestedOneWithoutLessonsInput lessonProgress?: LessonProgressCreateNestedManyWithoutLessonInput } export type LessonUncheckedCreateInput = { id?: string moduleId: string order?: number type?: $Enums.LessonType videoUrl?: string | null duration?: number | null titleFr: string titleEn: string titleEs: string contentFr?: string | null contentEn?: string | null contentEs?: string | null lessonProgress?: LessonProgressUncheckedCreateNestedManyWithoutLessonInput } export type LessonUpdateInput = { id?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number type?: EnumLessonTypeFieldUpdateOperationsInput | $Enums.LessonType videoUrl?: NullableStringFieldUpdateOperationsInput | string | null duration?: NullableIntFieldUpdateOperationsInput | number | null titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string contentFr?: NullableStringFieldUpdateOperationsInput | string | null contentEn?: NullableStringFieldUpdateOperationsInput | string | null contentEs?: NullableStringFieldUpdateOperationsInput | string | null module?: ModuleUpdateOneRequiredWithoutLessonsNestedInput lessonProgress?: LessonProgressUpdateManyWithoutLessonNestedInput } export type LessonUncheckedUpdateInput = { id?: StringFieldUpdateOperationsInput | string moduleId?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number type?: EnumLessonTypeFieldUpdateOperationsInput | $Enums.LessonType videoUrl?: NullableStringFieldUpdateOperationsInput | string | null duration?: NullableIntFieldUpdateOperationsInput | number | null titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string contentFr?: NullableStringFieldUpdateOperationsInput | string | null contentEn?: NullableStringFieldUpdateOperationsInput | string | null contentEs?: NullableStringFieldUpdateOperationsInput | string | null lessonProgress?: LessonProgressUncheckedUpdateManyWithoutLessonNestedInput } export type LessonCreateManyInput = { id?: string moduleId: string order?: number type?: $Enums.LessonType videoUrl?: string | null duration?: number | null titleFr: string titleEn: string titleEs: string contentFr?: string | null contentEn?: string | null contentEs?: string | null } export type LessonUpdateManyMutationInput = { id?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number type?: EnumLessonTypeFieldUpdateOperationsInput | $Enums.LessonType videoUrl?: NullableStringFieldUpdateOperationsInput | string | null duration?: NullableIntFieldUpdateOperationsInput | number | null titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string contentFr?: NullableStringFieldUpdateOperationsInput | string | null contentEn?: NullableStringFieldUpdateOperationsInput | string | null contentEs?: NullableStringFieldUpdateOperationsInput | string | null } export type LessonUncheckedUpdateManyInput = { id?: StringFieldUpdateOperationsInput | string moduleId?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number type?: EnumLessonTypeFieldUpdateOperationsInput | $Enums.LessonType videoUrl?: NullableStringFieldUpdateOperationsInput | string | null duration?: NullableIntFieldUpdateOperationsInput | number | null titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string contentFr?: NullableStringFieldUpdateOperationsInput | string | null contentEn?: NullableStringFieldUpdateOperationsInput | string | null contentEs?: NullableStringFieldUpdateOperationsInput | string | null } export type QuizCreateInput = { id?: string passMark?: number module: ModuleCreateNestedOneWithoutQuizInput questions?: QuestionCreateNestedManyWithoutQuizInput attempts?: QuizAttemptCreateNestedManyWithoutQuizInput } export type QuizUncheckedCreateInput = { id?: string moduleId: string passMark?: number questions?: QuestionUncheckedCreateNestedManyWithoutQuizInput attempts?: QuizAttemptUncheckedCreateNestedManyWithoutQuizInput } export type QuizUpdateInput = { id?: StringFieldUpdateOperationsInput | string passMark?: IntFieldUpdateOperationsInput | number module?: ModuleUpdateOneRequiredWithoutQuizNestedInput questions?: QuestionUpdateManyWithoutQuizNestedInput attempts?: QuizAttemptUpdateManyWithoutQuizNestedInput } export type QuizUncheckedUpdateInput = { id?: StringFieldUpdateOperationsInput | string moduleId?: StringFieldUpdateOperationsInput | string passMark?: IntFieldUpdateOperationsInput | number questions?: QuestionUncheckedUpdateManyWithoutQuizNestedInput attempts?: QuizAttemptUncheckedUpdateManyWithoutQuizNestedInput } export type QuizCreateManyInput = { id?: string moduleId: string passMark?: number } export type QuizUpdateManyMutationInput = { id?: StringFieldUpdateOperationsInput | string passMark?: IntFieldUpdateOperationsInput | number } export type QuizUncheckedUpdateManyInput = { id?: StringFieldUpdateOperationsInput | string moduleId?: StringFieldUpdateOperationsInput | string passMark?: IntFieldUpdateOperationsInput | number } export type QuestionCreateInput = { id?: string order?: number textFr: string textEn: string textEs: string optionsFr?: QuestionCreateoptionsFrInput | string[] optionsEn?: QuestionCreateoptionsEnInput | string[] optionsEs?: QuestionCreateoptionsEsInput | string[] correctIndex: number quiz: QuizCreateNestedOneWithoutQuestionsInput } export type QuestionUncheckedCreateInput = { id?: string quizId: string order?: number textFr: string textEn: string textEs: string optionsFr?: QuestionCreateoptionsFrInput | string[] optionsEn?: QuestionCreateoptionsEnInput | string[] optionsEs?: QuestionCreateoptionsEsInput | string[] correctIndex: number } export type QuestionUpdateInput = { id?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number textFr?: StringFieldUpdateOperationsInput | string textEn?: StringFieldUpdateOperationsInput | string textEs?: StringFieldUpdateOperationsInput | string optionsFr?: QuestionUpdateoptionsFrInput | string[] optionsEn?: QuestionUpdateoptionsEnInput | string[] optionsEs?: QuestionUpdateoptionsEsInput | string[] correctIndex?: IntFieldUpdateOperationsInput | number quiz?: QuizUpdateOneRequiredWithoutQuestionsNestedInput } export type QuestionUncheckedUpdateInput = { id?: StringFieldUpdateOperationsInput | string quizId?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number textFr?: StringFieldUpdateOperationsInput | string textEn?: StringFieldUpdateOperationsInput | string textEs?: StringFieldUpdateOperationsInput | string optionsFr?: QuestionUpdateoptionsFrInput | string[] optionsEn?: QuestionUpdateoptionsEnInput | string[] optionsEs?: QuestionUpdateoptionsEsInput | string[] correctIndex?: IntFieldUpdateOperationsInput | number } export type QuestionCreateManyInput = { id?: string quizId: string order?: number textFr: string textEn: string textEs: string optionsFr?: QuestionCreateoptionsFrInput | string[] optionsEn?: QuestionCreateoptionsEnInput | string[] optionsEs?: QuestionCreateoptionsEsInput | string[] correctIndex: number } export type QuestionUpdateManyMutationInput = { id?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number textFr?: StringFieldUpdateOperationsInput | string textEn?: StringFieldUpdateOperationsInput | string textEs?: StringFieldUpdateOperationsInput | string optionsFr?: QuestionUpdateoptionsFrInput | string[] optionsEn?: QuestionUpdateoptionsEnInput | string[] optionsEs?: QuestionUpdateoptionsEsInput | string[] correctIndex?: IntFieldUpdateOperationsInput | number } export type QuestionUncheckedUpdateManyInput = { id?: StringFieldUpdateOperationsInput | string quizId?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number textFr?: StringFieldUpdateOperationsInput | string textEn?: StringFieldUpdateOperationsInput | string textEs?: StringFieldUpdateOperationsInput | string optionsFr?: QuestionUpdateoptionsFrInput | string[] optionsEn?: QuestionUpdateoptionsEnInput | string[] optionsEs?: QuestionUpdateoptionsEsInput | string[] correctIndex?: IntFieldUpdateOperationsInput | number } export type EnrollmentCreateInput = { id?: string enrolledAt?: Date | string completedAt?: Date | string | null user: UserCreateNestedOneWithoutEnrollmentsInput course: CourseCreateNestedOneWithoutEnrollmentsInput } export type EnrollmentUncheckedCreateInput = { id?: string userId: string courseId: string enrolledAt?: Date | string completedAt?: Date | string | null } export type EnrollmentUpdateInput = { id?: StringFieldUpdateOperationsInput | string enrolledAt?: DateTimeFieldUpdateOperationsInput | Date | string completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null user?: UserUpdateOneRequiredWithoutEnrollmentsNestedInput course?: CourseUpdateOneRequiredWithoutEnrollmentsNestedInput } export type EnrollmentUncheckedUpdateInput = { id?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string courseId?: StringFieldUpdateOperationsInput | string enrolledAt?: DateTimeFieldUpdateOperationsInput | Date | string completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null } export type EnrollmentCreateManyInput = { id?: string userId: string courseId: string enrolledAt?: Date | string completedAt?: Date | string | null } export type EnrollmentUpdateManyMutationInput = { id?: StringFieldUpdateOperationsInput | string enrolledAt?: DateTimeFieldUpdateOperationsInput | Date | string completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null } export type EnrollmentUncheckedUpdateManyInput = { id?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string courseId?: StringFieldUpdateOperationsInput | string enrolledAt?: DateTimeFieldUpdateOperationsInput | Date | string completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null } export type LessonProgressCreateInput = { id?: string completedAt?: Date | string user: UserCreateNestedOneWithoutLessonProgressInput lesson: LessonCreateNestedOneWithoutLessonProgressInput } export type LessonProgressUncheckedCreateInput = { id?: string userId: string lessonId: string completedAt?: Date | string } export type LessonProgressUpdateInput = { id?: StringFieldUpdateOperationsInput | string completedAt?: DateTimeFieldUpdateOperationsInput | Date | string user?: UserUpdateOneRequiredWithoutLessonProgressNestedInput lesson?: LessonUpdateOneRequiredWithoutLessonProgressNestedInput } export type LessonProgressUncheckedUpdateInput = { id?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string lessonId?: StringFieldUpdateOperationsInput | string completedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type LessonProgressCreateManyInput = { id?: string userId: string lessonId: string completedAt?: Date | string } export type LessonProgressUpdateManyMutationInput = { id?: StringFieldUpdateOperationsInput | string completedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type LessonProgressUncheckedUpdateManyInput = { id?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string lessonId?: StringFieldUpdateOperationsInput | string completedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type QuizAttemptCreateInput = { id?: string score: number passed: boolean answers?: QuizAttemptCreateanswersInput | number[] completedAt?: Date | string user: UserCreateNestedOneWithoutQuizAttemptsInput quiz: QuizCreateNestedOneWithoutAttemptsInput } export type QuizAttemptUncheckedCreateInput = { id?: string userId: string quizId: string score: number passed: boolean answers?: QuizAttemptCreateanswersInput | number[] completedAt?: Date | string } export type QuizAttemptUpdateInput = { id?: StringFieldUpdateOperationsInput | string score?: IntFieldUpdateOperationsInput | number passed?: BoolFieldUpdateOperationsInput | boolean answers?: QuizAttemptUpdateanswersInput | number[] completedAt?: DateTimeFieldUpdateOperationsInput | Date | string user?: UserUpdateOneRequiredWithoutQuizAttemptsNestedInput quiz?: QuizUpdateOneRequiredWithoutAttemptsNestedInput } export type QuizAttemptUncheckedUpdateInput = { id?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string quizId?: StringFieldUpdateOperationsInput | string score?: IntFieldUpdateOperationsInput | number passed?: BoolFieldUpdateOperationsInput | boolean answers?: QuizAttemptUpdateanswersInput | number[] completedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type QuizAttemptCreateManyInput = { id?: string userId: string quizId: string score: number passed: boolean answers?: QuizAttemptCreateanswersInput | number[] completedAt?: Date | string } export type QuizAttemptUpdateManyMutationInput = { id?: StringFieldUpdateOperationsInput | string score?: IntFieldUpdateOperationsInput | number passed?: BoolFieldUpdateOperationsInput | boolean answers?: QuizAttemptUpdateanswersInput | number[] completedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type QuizAttemptUncheckedUpdateManyInput = { id?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string quizId?: StringFieldUpdateOperationsInput | string score?: IntFieldUpdateOperationsInput | number passed?: BoolFieldUpdateOperationsInput | boolean answers?: QuizAttemptUpdateanswersInput | number[] completedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type CertificateCreateInput = { id?: string issuedAt?: Date | string pdfUrl?: string | null isPaid?: boolean user: UserCreateNestedOneWithoutCertificatesInput course: CourseCreateNestedOneWithoutCertificatesInput } export type CertificateUncheckedCreateInput = { id?: string userId: string courseId: string issuedAt?: Date | string pdfUrl?: string | null isPaid?: boolean } export type CertificateUpdateInput = { id?: StringFieldUpdateOperationsInput | string issuedAt?: DateTimeFieldUpdateOperationsInput | Date | string pdfUrl?: NullableStringFieldUpdateOperationsInput | string | null isPaid?: BoolFieldUpdateOperationsInput | boolean user?: UserUpdateOneRequiredWithoutCertificatesNestedInput course?: CourseUpdateOneRequiredWithoutCertificatesNestedInput } export type CertificateUncheckedUpdateInput = { id?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string courseId?: StringFieldUpdateOperationsInput | string issuedAt?: DateTimeFieldUpdateOperationsInput | Date | string pdfUrl?: NullableStringFieldUpdateOperationsInput | string | null isPaid?: BoolFieldUpdateOperationsInput | boolean } export type CertificateCreateManyInput = { id?: string userId: string courseId: string issuedAt?: Date | string pdfUrl?: string | null isPaid?: boolean } export type CertificateUpdateManyMutationInput = { id?: StringFieldUpdateOperationsInput | string issuedAt?: DateTimeFieldUpdateOperationsInput | Date | string pdfUrl?: NullableStringFieldUpdateOperationsInput | string | null isPaid?: BoolFieldUpdateOperationsInput | boolean } export type CertificateUncheckedUpdateManyInput = { id?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string courseId?: StringFieldUpdateOperationsInput | string issuedAt?: DateTimeFieldUpdateOperationsInput | Date | string pdfUrl?: NullableStringFieldUpdateOperationsInput | string | null isPaid?: BoolFieldUpdateOperationsInput | boolean } export type StringFilter<$PrismaModel = never> = { equals?: string | StringFieldRefInput<$PrismaModel> in?: string[] | ListStringFieldRefInput<$PrismaModel> notIn?: string[] | ListStringFieldRefInput<$PrismaModel> lt?: string | StringFieldRefInput<$PrismaModel> lte?: string | StringFieldRefInput<$PrismaModel> gt?: string | StringFieldRefInput<$PrismaModel> gte?: string | StringFieldRefInput<$PrismaModel> contains?: string | StringFieldRefInput<$PrismaModel> startsWith?: string | StringFieldRefInput<$PrismaModel> endsWith?: string | StringFieldRefInput<$PrismaModel> mode?: QueryMode not?: NestedStringFilter<$PrismaModel> | string } export type StringNullableFilter<$PrismaModel = never> = { equals?: string | StringFieldRefInput<$PrismaModel> | null in?: string[] | ListStringFieldRefInput<$PrismaModel> | null notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null lt?: string | StringFieldRefInput<$PrismaModel> lte?: string | StringFieldRefInput<$PrismaModel> gt?: string | StringFieldRefInput<$PrismaModel> gte?: string | StringFieldRefInput<$PrismaModel> contains?: string | StringFieldRefInput<$PrismaModel> startsWith?: string | StringFieldRefInput<$PrismaModel> endsWith?: string | StringFieldRefInput<$PrismaModel> mode?: QueryMode not?: NestedStringNullableFilter<$PrismaModel> | string | null } export type DateTimeNullableFilter<$PrismaModel = never> = { equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> not?: NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null } export type EnumRoleFilter<$PrismaModel = never> = { equals?: $Enums.Role | EnumRoleFieldRefInput<$PrismaModel> in?: $Enums.Role[] | ListEnumRoleFieldRefInput<$PrismaModel> notIn?: $Enums.Role[] | ListEnumRoleFieldRefInput<$PrismaModel> not?: NestedEnumRoleFilter<$PrismaModel> | $Enums.Role } export type DateTimeFilter<$PrismaModel = never> = { equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> not?: NestedDateTimeFilter<$PrismaModel> | Date | string } export type AccountListRelationFilter = { every?: AccountWhereInput some?: AccountWhereInput none?: AccountWhereInput } export type SessionListRelationFilter = { every?: SessionWhereInput some?: SessionWhereInput none?: SessionWhereInput } export type EnrollmentListRelationFilter = { every?: EnrollmentWhereInput some?: EnrollmentWhereInput none?: EnrollmentWhereInput } export type LessonProgressListRelationFilter = { every?: LessonProgressWhereInput some?: LessonProgressWhereInput none?: LessonProgressWhereInput } export type QuizAttemptListRelationFilter = { every?: QuizAttemptWhereInput some?: QuizAttemptWhereInput none?: QuizAttemptWhereInput } export type CertificateListRelationFilter = { every?: CertificateWhereInput some?: CertificateWhereInput none?: CertificateWhereInput } export type SortOrderInput = { sort: SortOrder nulls?: NullsOrder } export type AccountOrderByRelationAggregateInput = { _count?: SortOrder } export type SessionOrderByRelationAggregateInput = { _count?: SortOrder } export type EnrollmentOrderByRelationAggregateInput = { _count?: SortOrder } export type LessonProgressOrderByRelationAggregateInput = { _count?: SortOrder } export type QuizAttemptOrderByRelationAggregateInput = { _count?: SortOrder } export type CertificateOrderByRelationAggregateInput = { _count?: SortOrder } export type UserCountOrderByAggregateInput = { id?: SortOrder email?: SortOrder name?: SortOrder image?: SortOrder emailVerified?: SortOrder locale?: SortOrder role?: SortOrder createdAt?: SortOrder } export type UserMaxOrderByAggregateInput = { id?: SortOrder email?: SortOrder name?: SortOrder image?: SortOrder emailVerified?: SortOrder locale?: SortOrder role?: SortOrder createdAt?: SortOrder } export type UserMinOrderByAggregateInput = { id?: SortOrder email?: SortOrder name?: SortOrder image?: SortOrder emailVerified?: SortOrder locale?: SortOrder role?: SortOrder createdAt?: SortOrder } export type StringWithAggregatesFilter<$PrismaModel = never> = { equals?: string | StringFieldRefInput<$PrismaModel> in?: string[] | ListStringFieldRefInput<$PrismaModel> notIn?: string[] | ListStringFieldRefInput<$PrismaModel> lt?: string | StringFieldRefInput<$PrismaModel> lte?: string | StringFieldRefInput<$PrismaModel> gt?: string | StringFieldRefInput<$PrismaModel> gte?: string | StringFieldRefInput<$PrismaModel> contains?: string | StringFieldRefInput<$PrismaModel> startsWith?: string | StringFieldRefInput<$PrismaModel> endsWith?: string | StringFieldRefInput<$PrismaModel> mode?: QueryMode not?: NestedStringWithAggregatesFilter<$PrismaModel> | string _count?: NestedIntFilter<$PrismaModel> _min?: NestedStringFilter<$PrismaModel> _max?: NestedStringFilter<$PrismaModel> } export type StringNullableWithAggregatesFilter<$PrismaModel = never> = { equals?: string | StringFieldRefInput<$PrismaModel> | null in?: string[] | ListStringFieldRefInput<$PrismaModel> | null notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null lt?: string | StringFieldRefInput<$PrismaModel> lte?: string | StringFieldRefInput<$PrismaModel> gt?: string | StringFieldRefInput<$PrismaModel> gte?: string | StringFieldRefInput<$PrismaModel> contains?: string | StringFieldRefInput<$PrismaModel> startsWith?: string | StringFieldRefInput<$PrismaModel> endsWith?: string | StringFieldRefInput<$PrismaModel> mode?: QueryMode not?: NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null _count?: NestedIntNullableFilter<$PrismaModel> _min?: NestedStringNullableFilter<$PrismaModel> _max?: NestedStringNullableFilter<$PrismaModel> } export type DateTimeNullableWithAggregatesFilter<$PrismaModel = never> = { equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> not?: NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null _count?: NestedIntNullableFilter<$PrismaModel> _min?: NestedDateTimeNullableFilter<$PrismaModel> _max?: NestedDateTimeNullableFilter<$PrismaModel> } export type EnumRoleWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.Role | EnumRoleFieldRefInput<$PrismaModel> in?: $Enums.Role[] | ListEnumRoleFieldRefInput<$PrismaModel> notIn?: $Enums.Role[] | ListEnumRoleFieldRefInput<$PrismaModel> not?: NestedEnumRoleWithAggregatesFilter<$PrismaModel> | $Enums.Role _count?: NestedIntFilter<$PrismaModel> _min?: NestedEnumRoleFilter<$PrismaModel> _max?: NestedEnumRoleFilter<$PrismaModel> } export type DateTimeWithAggregatesFilter<$PrismaModel = never> = { equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> not?: NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string _count?: NestedIntFilter<$PrismaModel> _min?: NestedDateTimeFilter<$PrismaModel> _max?: NestedDateTimeFilter<$PrismaModel> } export type IntNullableFilter<$PrismaModel = never> = { equals?: number | IntFieldRefInput<$PrismaModel> | null in?: number[] | ListIntFieldRefInput<$PrismaModel> | null notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null lt?: number | IntFieldRefInput<$PrismaModel> lte?: number | IntFieldRefInput<$PrismaModel> gt?: number | IntFieldRefInput<$PrismaModel> gte?: number | IntFieldRefInput<$PrismaModel> not?: NestedIntNullableFilter<$PrismaModel> | number | null } export type UserScalarRelationFilter = { is?: UserWhereInput isNot?: UserWhereInput } export type AccountProviderProviderAccountIdCompoundUniqueInput = { provider: string providerAccountId: string } export type AccountCountOrderByAggregateInput = { id?: SortOrder userId?: SortOrder type?: SortOrder provider?: SortOrder providerAccountId?: SortOrder refresh_token?: SortOrder access_token?: SortOrder expires_at?: SortOrder token_type?: SortOrder scope?: SortOrder id_token?: SortOrder session_state?: SortOrder } export type AccountAvgOrderByAggregateInput = { expires_at?: SortOrder } export type AccountMaxOrderByAggregateInput = { id?: SortOrder userId?: SortOrder type?: SortOrder provider?: SortOrder providerAccountId?: SortOrder refresh_token?: SortOrder access_token?: SortOrder expires_at?: SortOrder token_type?: SortOrder scope?: SortOrder id_token?: SortOrder session_state?: SortOrder } export type AccountMinOrderByAggregateInput = { id?: SortOrder userId?: SortOrder type?: SortOrder provider?: SortOrder providerAccountId?: SortOrder refresh_token?: SortOrder access_token?: SortOrder expires_at?: SortOrder token_type?: SortOrder scope?: SortOrder id_token?: SortOrder session_state?: SortOrder } export type AccountSumOrderByAggregateInput = { expires_at?: SortOrder } export type IntNullableWithAggregatesFilter<$PrismaModel = never> = { equals?: number | IntFieldRefInput<$PrismaModel> | null in?: number[] | ListIntFieldRefInput<$PrismaModel> | null notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null lt?: number | IntFieldRefInput<$PrismaModel> lte?: number | IntFieldRefInput<$PrismaModel> gt?: number | IntFieldRefInput<$PrismaModel> gte?: number | IntFieldRefInput<$PrismaModel> not?: NestedIntNullableWithAggregatesFilter<$PrismaModel> | number | null _count?: NestedIntNullableFilter<$PrismaModel> _avg?: NestedFloatNullableFilter<$PrismaModel> _sum?: NestedIntNullableFilter<$PrismaModel> _min?: NestedIntNullableFilter<$PrismaModel> _max?: NestedIntNullableFilter<$PrismaModel> } export type SessionCountOrderByAggregateInput = { id?: SortOrder sessionToken?: SortOrder userId?: SortOrder expires?: SortOrder } export type SessionMaxOrderByAggregateInput = { id?: SortOrder sessionToken?: SortOrder userId?: SortOrder expires?: SortOrder } export type SessionMinOrderByAggregateInput = { id?: SortOrder sessionToken?: SortOrder userId?: SortOrder expires?: SortOrder } export type VerificationTokenIdentifierTokenCompoundUniqueInput = { identifier: string token: string } export type VerificationTokenCountOrderByAggregateInput = { identifier?: SortOrder token?: SortOrder expires?: SortOrder } export type VerificationTokenMaxOrderByAggregateInput = { identifier?: SortOrder token?: SortOrder expires?: SortOrder } export type VerificationTokenMinOrderByAggregateInput = { identifier?: SortOrder token?: SortOrder expires?: SortOrder } export type EnumCourseCategoryFilter<$PrismaModel = never> = { equals?: $Enums.CourseCategory | EnumCourseCategoryFieldRefInput<$PrismaModel> in?: $Enums.CourseCategory[] | ListEnumCourseCategoryFieldRefInput<$PrismaModel> notIn?: $Enums.CourseCategory[] | ListEnumCourseCategoryFieldRefInput<$PrismaModel> not?: NestedEnumCourseCategoryFilter<$PrismaModel> | $Enums.CourseCategory } export type EnumCourseLevelFilter<$PrismaModel = never> = { equals?: $Enums.CourseLevel | EnumCourseLevelFieldRefInput<$PrismaModel> in?: $Enums.CourseLevel[] | ListEnumCourseLevelFieldRefInput<$PrismaModel> notIn?: $Enums.CourseLevel[] | ListEnumCourseLevelFieldRefInput<$PrismaModel> not?: NestedEnumCourseLevelFilter<$PrismaModel> | $Enums.CourseLevel } export type BoolFilter<$PrismaModel = never> = { equals?: boolean | BooleanFieldRefInput<$PrismaModel> not?: NestedBoolFilter<$PrismaModel> | boolean } export type IntFilter<$PrismaModel = never> = { equals?: number | IntFieldRefInput<$PrismaModel> in?: number[] | ListIntFieldRefInput<$PrismaModel> notIn?: number[] | ListIntFieldRefInput<$PrismaModel> lt?: number | IntFieldRefInput<$PrismaModel> lte?: number | IntFieldRefInput<$PrismaModel> gt?: number | IntFieldRefInput<$PrismaModel> gte?: number | IntFieldRefInput<$PrismaModel> not?: NestedIntFilter<$PrismaModel> | number } export type ModuleListRelationFilter = { every?: ModuleWhereInput some?: ModuleWhereInput none?: ModuleWhereInput } export type ModuleOrderByRelationAggregateInput = { _count?: SortOrder } export type CourseCountOrderByAggregateInput = { id?: SortOrder slug?: SortOrder category?: SortOrder level?: SortOrder thumbnailUrl?: SortOrder published?: SortOrder order?: SortOrder createdAt?: SortOrder titleFr?: SortOrder titleEn?: SortOrder titleEs?: SortOrder descFr?: SortOrder descEn?: SortOrder descEs?: SortOrder } export type CourseAvgOrderByAggregateInput = { order?: SortOrder } export type CourseMaxOrderByAggregateInput = { id?: SortOrder slug?: SortOrder category?: SortOrder level?: SortOrder thumbnailUrl?: SortOrder published?: SortOrder order?: SortOrder createdAt?: SortOrder titleFr?: SortOrder titleEn?: SortOrder titleEs?: SortOrder descFr?: SortOrder descEn?: SortOrder descEs?: SortOrder } export type CourseMinOrderByAggregateInput = { id?: SortOrder slug?: SortOrder category?: SortOrder level?: SortOrder thumbnailUrl?: SortOrder published?: SortOrder order?: SortOrder createdAt?: SortOrder titleFr?: SortOrder titleEn?: SortOrder titleEs?: SortOrder descFr?: SortOrder descEn?: SortOrder descEs?: SortOrder } export type CourseSumOrderByAggregateInput = { order?: SortOrder } export type EnumCourseCategoryWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.CourseCategory | EnumCourseCategoryFieldRefInput<$PrismaModel> in?: $Enums.CourseCategory[] | ListEnumCourseCategoryFieldRefInput<$PrismaModel> notIn?: $Enums.CourseCategory[] | ListEnumCourseCategoryFieldRefInput<$PrismaModel> not?: NestedEnumCourseCategoryWithAggregatesFilter<$PrismaModel> | $Enums.CourseCategory _count?: NestedIntFilter<$PrismaModel> _min?: NestedEnumCourseCategoryFilter<$PrismaModel> _max?: NestedEnumCourseCategoryFilter<$PrismaModel> } export type EnumCourseLevelWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.CourseLevel | EnumCourseLevelFieldRefInput<$PrismaModel> in?: $Enums.CourseLevel[] | ListEnumCourseLevelFieldRefInput<$PrismaModel> notIn?: $Enums.CourseLevel[] | ListEnumCourseLevelFieldRefInput<$PrismaModel> not?: NestedEnumCourseLevelWithAggregatesFilter<$PrismaModel> | $Enums.CourseLevel _count?: NestedIntFilter<$PrismaModel> _min?: NestedEnumCourseLevelFilter<$PrismaModel> _max?: NestedEnumCourseLevelFilter<$PrismaModel> } export type BoolWithAggregatesFilter<$PrismaModel = never> = { equals?: boolean | BooleanFieldRefInput<$PrismaModel> not?: NestedBoolWithAggregatesFilter<$PrismaModel> | boolean _count?: NestedIntFilter<$PrismaModel> _min?: NestedBoolFilter<$PrismaModel> _max?: NestedBoolFilter<$PrismaModel> } export type IntWithAggregatesFilter<$PrismaModel = never> = { equals?: number | IntFieldRefInput<$PrismaModel> in?: number[] | ListIntFieldRefInput<$PrismaModel> notIn?: number[] | ListIntFieldRefInput<$PrismaModel> lt?: number | IntFieldRefInput<$PrismaModel> lte?: number | IntFieldRefInput<$PrismaModel> gt?: number | IntFieldRefInput<$PrismaModel> gte?: number | IntFieldRefInput<$PrismaModel> not?: NestedIntWithAggregatesFilter<$PrismaModel> | number _count?: NestedIntFilter<$PrismaModel> _avg?: NestedFloatFilter<$PrismaModel> _sum?: NestedIntFilter<$PrismaModel> _min?: NestedIntFilter<$PrismaModel> _max?: NestedIntFilter<$PrismaModel> } export type CourseScalarRelationFilter = { is?: CourseWhereInput isNot?: CourseWhereInput } export type LessonListRelationFilter = { every?: LessonWhereInput some?: LessonWhereInput none?: LessonWhereInput } export type QuizNullableScalarRelationFilter = { is?: QuizWhereInput | null isNot?: QuizWhereInput | null } export type LessonOrderByRelationAggregateInput = { _count?: SortOrder } export type ModuleCountOrderByAggregateInput = { id?: SortOrder courseId?: SortOrder order?: SortOrder titleFr?: SortOrder titleEn?: SortOrder titleEs?: SortOrder } export type ModuleAvgOrderByAggregateInput = { order?: SortOrder } export type ModuleMaxOrderByAggregateInput = { id?: SortOrder courseId?: SortOrder order?: SortOrder titleFr?: SortOrder titleEn?: SortOrder titleEs?: SortOrder } export type ModuleMinOrderByAggregateInput = { id?: SortOrder courseId?: SortOrder order?: SortOrder titleFr?: SortOrder titleEn?: SortOrder titleEs?: SortOrder } export type ModuleSumOrderByAggregateInput = { order?: SortOrder } export type EnumLessonTypeFilter<$PrismaModel = never> = { equals?: $Enums.LessonType | EnumLessonTypeFieldRefInput<$PrismaModel> in?: $Enums.LessonType[] | ListEnumLessonTypeFieldRefInput<$PrismaModel> notIn?: $Enums.LessonType[] | ListEnumLessonTypeFieldRefInput<$PrismaModel> not?: NestedEnumLessonTypeFilter<$PrismaModel> | $Enums.LessonType } export type ModuleScalarRelationFilter = { is?: ModuleWhereInput isNot?: ModuleWhereInput } export type LessonCountOrderByAggregateInput = { id?: SortOrder moduleId?: SortOrder order?: SortOrder type?: SortOrder videoUrl?: SortOrder duration?: SortOrder titleFr?: SortOrder titleEn?: SortOrder titleEs?: SortOrder contentFr?: SortOrder contentEn?: SortOrder contentEs?: SortOrder } export type LessonAvgOrderByAggregateInput = { order?: SortOrder duration?: SortOrder } export type LessonMaxOrderByAggregateInput = { id?: SortOrder moduleId?: SortOrder order?: SortOrder type?: SortOrder videoUrl?: SortOrder duration?: SortOrder titleFr?: SortOrder titleEn?: SortOrder titleEs?: SortOrder contentFr?: SortOrder contentEn?: SortOrder contentEs?: SortOrder } export type LessonMinOrderByAggregateInput = { id?: SortOrder moduleId?: SortOrder order?: SortOrder type?: SortOrder videoUrl?: SortOrder duration?: SortOrder titleFr?: SortOrder titleEn?: SortOrder titleEs?: SortOrder contentFr?: SortOrder contentEn?: SortOrder contentEs?: SortOrder } export type LessonSumOrderByAggregateInput = { order?: SortOrder duration?: SortOrder } export type EnumLessonTypeWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.LessonType | EnumLessonTypeFieldRefInput<$PrismaModel> in?: $Enums.LessonType[] | ListEnumLessonTypeFieldRefInput<$PrismaModel> notIn?: $Enums.LessonType[] | ListEnumLessonTypeFieldRefInput<$PrismaModel> not?: NestedEnumLessonTypeWithAggregatesFilter<$PrismaModel> | $Enums.LessonType _count?: NestedIntFilter<$PrismaModel> _min?: NestedEnumLessonTypeFilter<$PrismaModel> _max?: NestedEnumLessonTypeFilter<$PrismaModel> } export type QuestionListRelationFilter = { every?: QuestionWhereInput some?: QuestionWhereInput none?: QuestionWhereInput } export type QuestionOrderByRelationAggregateInput = { _count?: SortOrder } export type QuizCountOrderByAggregateInput = { id?: SortOrder moduleId?: SortOrder passMark?: SortOrder } export type QuizAvgOrderByAggregateInput = { passMark?: SortOrder } export type QuizMaxOrderByAggregateInput = { id?: SortOrder moduleId?: SortOrder passMark?: SortOrder } export type QuizMinOrderByAggregateInput = { id?: SortOrder moduleId?: SortOrder passMark?: SortOrder } export type QuizSumOrderByAggregateInput = { passMark?: SortOrder } export type StringNullableListFilter<$PrismaModel = never> = { equals?: string[] | ListStringFieldRefInput<$PrismaModel> | null has?: string | StringFieldRefInput<$PrismaModel> | null hasEvery?: string[] | ListStringFieldRefInput<$PrismaModel> hasSome?: string[] | ListStringFieldRefInput<$PrismaModel> isEmpty?: boolean } export type QuizScalarRelationFilter = { is?: QuizWhereInput isNot?: QuizWhereInput } export type QuestionCountOrderByAggregateInput = { id?: SortOrder quizId?: SortOrder order?: SortOrder textFr?: SortOrder textEn?: SortOrder textEs?: SortOrder optionsFr?: SortOrder optionsEn?: SortOrder optionsEs?: SortOrder correctIndex?: SortOrder } export type QuestionAvgOrderByAggregateInput = { order?: SortOrder correctIndex?: SortOrder } export type QuestionMaxOrderByAggregateInput = { id?: SortOrder quizId?: SortOrder order?: SortOrder textFr?: SortOrder textEn?: SortOrder textEs?: SortOrder correctIndex?: SortOrder } export type QuestionMinOrderByAggregateInput = { id?: SortOrder quizId?: SortOrder order?: SortOrder textFr?: SortOrder textEn?: SortOrder textEs?: SortOrder correctIndex?: SortOrder } export type QuestionSumOrderByAggregateInput = { order?: SortOrder correctIndex?: SortOrder } export type EnrollmentUserIdCourseIdCompoundUniqueInput = { userId: string courseId: string } export type EnrollmentCountOrderByAggregateInput = { id?: SortOrder userId?: SortOrder courseId?: SortOrder enrolledAt?: SortOrder completedAt?: SortOrder } export type EnrollmentMaxOrderByAggregateInput = { id?: SortOrder userId?: SortOrder courseId?: SortOrder enrolledAt?: SortOrder completedAt?: SortOrder } export type EnrollmentMinOrderByAggregateInput = { id?: SortOrder userId?: SortOrder courseId?: SortOrder enrolledAt?: SortOrder completedAt?: SortOrder } export type LessonScalarRelationFilter = { is?: LessonWhereInput isNot?: LessonWhereInput } export type LessonProgressUserIdLessonIdCompoundUniqueInput = { userId: string lessonId: string } export type LessonProgressCountOrderByAggregateInput = { id?: SortOrder userId?: SortOrder lessonId?: SortOrder completedAt?: SortOrder } export type LessonProgressMaxOrderByAggregateInput = { id?: SortOrder userId?: SortOrder lessonId?: SortOrder completedAt?: SortOrder } export type LessonProgressMinOrderByAggregateInput = { id?: SortOrder userId?: SortOrder lessonId?: SortOrder completedAt?: SortOrder } export type IntNullableListFilter<$PrismaModel = never> = { equals?: number[] | ListIntFieldRefInput<$PrismaModel> | null has?: number | IntFieldRefInput<$PrismaModel> | null hasEvery?: number[] | ListIntFieldRefInput<$PrismaModel> hasSome?: number[] | ListIntFieldRefInput<$PrismaModel> isEmpty?: boolean } export type QuizAttemptCountOrderByAggregateInput = { id?: SortOrder userId?: SortOrder quizId?: SortOrder score?: SortOrder passed?: SortOrder answers?: SortOrder completedAt?: SortOrder } export type QuizAttemptAvgOrderByAggregateInput = { score?: SortOrder answers?: SortOrder } export type QuizAttemptMaxOrderByAggregateInput = { id?: SortOrder userId?: SortOrder quizId?: SortOrder score?: SortOrder passed?: SortOrder completedAt?: SortOrder } export type QuizAttemptMinOrderByAggregateInput = { id?: SortOrder userId?: SortOrder quizId?: SortOrder score?: SortOrder passed?: SortOrder completedAt?: SortOrder } export type QuizAttemptSumOrderByAggregateInput = { score?: SortOrder answers?: SortOrder } export type CertificateUserIdCourseIdCompoundUniqueInput = { userId: string courseId: string } export type CertificateCountOrderByAggregateInput = { id?: SortOrder userId?: SortOrder courseId?: SortOrder issuedAt?: SortOrder pdfUrl?: SortOrder isPaid?: SortOrder } export type CertificateMaxOrderByAggregateInput = { id?: SortOrder userId?: SortOrder courseId?: SortOrder issuedAt?: SortOrder pdfUrl?: SortOrder isPaid?: SortOrder } export type CertificateMinOrderByAggregateInput = { id?: SortOrder userId?: SortOrder courseId?: SortOrder issuedAt?: SortOrder pdfUrl?: SortOrder isPaid?: SortOrder } export type AccountCreateNestedManyWithoutUserInput = { create?: XOR | AccountCreateWithoutUserInput[] | AccountUncheckedCreateWithoutUserInput[] connectOrCreate?: AccountCreateOrConnectWithoutUserInput | AccountCreateOrConnectWithoutUserInput[] createMany?: AccountCreateManyUserInputEnvelope connect?: AccountWhereUniqueInput | AccountWhereUniqueInput[] } export type SessionCreateNestedManyWithoutUserInput = { create?: XOR | SessionCreateWithoutUserInput[] | SessionUncheckedCreateWithoutUserInput[] connectOrCreate?: SessionCreateOrConnectWithoutUserInput | SessionCreateOrConnectWithoutUserInput[] createMany?: SessionCreateManyUserInputEnvelope connect?: SessionWhereUniqueInput | SessionWhereUniqueInput[] } export type EnrollmentCreateNestedManyWithoutUserInput = { create?: XOR | EnrollmentCreateWithoutUserInput[] | EnrollmentUncheckedCreateWithoutUserInput[] connectOrCreate?: EnrollmentCreateOrConnectWithoutUserInput | EnrollmentCreateOrConnectWithoutUserInput[] createMany?: EnrollmentCreateManyUserInputEnvelope connect?: EnrollmentWhereUniqueInput | EnrollmentWhereUniqueInput[] } export type LessonProgressCreateNestedManyWithoutUserInput = { create?: XOR | LessonProgressCreateWithoutUserInput[] | LessonProgressUncheckedCreateWithoutUserInput[] connectOrCreate?: LessonProgressCreateOrConnectWithoutUserInput | LessonProgressCreateOrConnectWithoutUserInput[] createMany?: LessonProgressCreateManyUserInputEnvelope connect?: LessonProgressWhereUniqueInput | LessonProgressWhereUniqueInput[] } export type QuizAttemptCreateNestedManyWithoutUserInput = { create?: XOR | QuizAttemptCreateWithoutUserInput[] | QuizAttemptUncheckedCreateWithoutUserInput[] connectOrCreate?: QuizAttemptCreateOrConnectWithoutUserInput | QuizAttemptCreateOrConnectWithoutUserInput[] createMany?: QuizAttemptCreateManyUserInputEnvelope connect?: QuizAttemptWhereUniqueInput | QuizAttemptWhereUniqueInput[] } export type CertificateCreateNestedManyWithoutUserInput = { create?: XOR | CertificateCreateWithoutUserInput[] | CertificateUncheckedCreateWithoutUserInput[] connectOrCreate?: CertificateCreateOrConnectWithoutUserInput | CertificateCreateOrConnectWithoutUserInput[] createMany?: CertificateCreateManyUserInputEnvelope connect?: CertificateWhereUniqueInput | CertificateWhereUniqueInput[] } export type AccountUncheckedCreateNestedManyWithoutUserInput = { create?: XOR | AccountCreateWithoutUserInput[] | AccountUncheckedCreateWithoutUserInput[] connectOrCreate?: AccountCreateOrConnectWithoutUserInput | AccountCreateOrConnectWithoutUserInput[] createMany?: AccountCreateManyUserInputEnvelope connect?: AccountWhereUniqueInput | AccountWhereUniqueInput[] } export type SessionUncheckedCreateNestedManyWithoutUserInput = { create?: XOR | SessionCreateWithoutUserInput[] | SessionUncheckedCreateWithoutUserInput[] connectOrCreate?: SessionCreateOrConnectWithoutUserInput | SessionCreateOrConnectWithoutUserInput[] createMany?: SessionCreateManyUserInputEnvelope connect?: SessionWhereUniqueInput | SessionWhereUniqueInput[] } export type EnrollmentUncheckedCreateNestedManyWithoutUserInput = { create?: XOR | EnrollmentCreateWithoutUserInput[] | EnrollmentUncheckedCreateWithoutUserInput[] connectOrCreate?: EnrollmentCreateOrConnectWithoutUserInput | EnrollmentCreateOrConnectWithoutUserInput[] createMany?: EnrollmentCreateManyUserInputEnvelope connect?: EnrollmentWhereUniqueInput | EnrollmentWhereUniqueInput[] } export type LessonProgressUncheckedCreateNestedManyWithoutUserInput = { create?: XOR | LessonProgressCreateWithoutUserInput[] | LessonProgressUncheckedCreateWithoutUserInput[] connectOrCreate?: LessonProgressCreateOrConnectWithoutUserInput | LessonProgressCreateOrConnectWithoutUserInput[] createMany?: LessonProgressCreateManyUserInputEnvelope connect?: LessonProgressWhereUniqueInput | LessonProgressWhereUniqueInput[] } export type QuizAttemptUncheckedCreateNestedManyWithoutUserInput = { create?: XOR | QuizAttemptCreateWithoutUserInput[] | QuizAttemptUncheckedCreateWithoutUserInput[] connectOrCreate?: QuizAttemptCreateOrConnectWithoutUserInput | QuizAttemptCreateOrConnectWithoutUserInput[] createMany?: QuizAttemptCreateManyUserInputEnvelope connect?: QuizAttemptWhereUniqueInput | QuizAttemptWhereUniqueInput[] } export type CertificateUncheckedCreateNestedManyWithoutUserInput = { create?: XOR | CertificateCreateWithoutUserInput[] | CertificateUncheckedCreateWithoutUserInput[] connectOrCreate?: CertificateCreateOrConnectWithoutUserInput | CertificateCreateOrConnectWithoutUserInput[] createMany?: CertificateCreateManyUserInputEnvelope connect?: CertificateWhereUniqueInput | CertificateWhereUniqueInput[] } export type StringFieldUpdateOperationsInput = { set?: string } export type NullableStringFieldUpdateOperationsInput = { set?: string | null } export type NullableDateTimeFieldUpdateOperationsInput = { set?: Date | string | null } export type EnumRoleFieldUpdateOperationsInput = { set?: $Enums.Role } export type DateTimeFieldUpdateOperationsInput = { set?: Date | string } export type AccountUpdateManyWithoutUserNestedInput = { create?: XOR | AccountCreateWithoutUserInput[] | AccountUncheckedCreateWithoutUserInput[] connectOrCreate?: AccountCreateOrConnectWithoutUserInput | AccountCreateOrConnectWithoutUserInput[] upsert?: AccountUpsertWithWhereUniqueWithoutUserInput | AccountUpsertWithWhereUniqueWithoutUserInput[] createMany?: AccountCreateManyUserInputEnvelope set?: AccountWhereUniqueInput | AccountWhereUniqueInput[] disconnect?: AccountWhereUniqueInput | AccountWhereUniqueInput[] delete?: AccountWhereUniqueInput | AccountWhereUniqueInput[] connect?: AccountWhereUniqueInput | AccountWhereUniqueInput[] update?: AccountUpdateWithWhereUniqueWithoutUserInput | AccountUpdateWithWhereUniqueWithoutUserInput[] updateMany?: AccountUpdateManyWithWhereWithoutUserInput | AccountUpdateManyWithWhereWithoutUserInput[] deleteMany?: AccountScalarWhereInput | AccountScalarWhereInput[] } export type SessionUpdateManyWithoutUserNestedInput = { create?: XOR | SessionCreateWithoutUserInput[] | SessionUncheckedCreateWithoutUserInput[] connectOrCreate?: SessionCreateOrConnectWithoutUserInput | SessionCreateOrConnectWithoutUserInput[] upsert?: SessionUpsertWithWhereUniqueWithoutUserInput | SessionUpsertWithWhereUniqueWithoutUserInput[] createMany?: SessionCreateManyUserInputEnvelope set?: SessionWhereUniqueInput | SessionWhereUniqueInput[] disconnect?: SessionWhereUniqueInput | SessionWhereUniqueInput[] delete?: SessionWhereUniqueInput | SessionWhereUniqueInput[] connect?: SessionWhereUniqueInput | SessionWhereUniqueInput[] update?: SessionUpdateWithWhereUniqueWithoutUserInput | SessionUpdateWithWhereUniqueWithoutUserInput[] updateMany?: SessionUpdateManyWithWhereWithoutUserInput | SessionUpdateManyWithWhereWithoutUserInput[] deleteMany?: SessionScalarWhereInput | SessionScalarWhereInput[] } export type EnrollmentUpdateManyWithoutUserNestedInput = { create?: XOR | EnrollmentCreateWithoutUserInput[] | EnrollmentUncheckedCreateWithoutUserInput[] connectOrCreate?: EnrollmentCreateOrConnectWithoutUserInput | EnrollmentCreateOrConnectWithoutUserInput[] upsert?: EnrollmentUpsertWithWhereUniqueWithoutUserInput | EnrollmentUpsertWithWhereUniqueWithoutUserInput[] createMany?: EnrollmentCreateManyUserInputEnvelope set?: EnrollmentWhereUniqueInput | EnrollmentWhereUniqueInput[] disconnect?: EnrollmentWhereUniqueInput | EnrollmentWhereUniqueInput[] delete?: EnrollmentWhereUniqueInput | EnrollmentWhereUniqueInput[] connect?: EnrollmentWhereUniqueInput | EnrollmentWhereUniqueInput[] update?: EnrollmentUpdateWithWhereUniqueWithoutUserInput | EnrollmentUpdateWithWhereUniqueWithoutUserInput[] updateMany?: EnrollmentUpdateManyWithWhereWithoutUserInput | EnrollmentUpdateManyWithWhereWithoutUserInput[] deleteMany?: EnrollmentScalarWhereInput | EnrollmentScalarWhereInput[] } export type LessonProgressUpdateManyWithoutUserNestedInput = { create?: XOR | LessonProgressCreateWithoutUserInput[] | LessonProgressUncheckedCreateWithoutUserInput[] connectOrCreate?: LessonProgressCreateOrConnectWithoutUserInput | LessonProgressCreateOrConnectWithoutUserInput[] upsert?: LessonProgressUpsertWithWhereUniqueWithoutUserInput | LessonProgressUpsertWithWhereUniqueWithoutUserInput[] createMany?: LessonProgressCreateManyUserInputEnvelope set?: LessonProgressWhereUniqueInput | LessonProgressWhereUniqueInput[] disconnect?: LessonProgressWhereUniqueInput | LessonProgressWhereUniqueInput[] delete?: LessonProgressWhereUniqueInput | LessonProgressWhereUniqueInput[] connect?: LessonProgressWhereUniqueInput | LessonProgressWhereUniqueInput[] update?: LessonProgressUpdateWithWhereUniqueWithoutUserInput | LessonProgressUpdateWithWhereUniqueWithoutUserInput[] updateMany?: LessonProgressUpdateManyWithWhereWithoutUserInput | LessonProgressUpdateManyWithWhereWithoutUserInput[] deleteMany?: LessonProgressScalarWhereInput | LessonProgressScalarWhereInput[] } export type QuizAttemptUpdateManyWithoutUserNestedInput = { create?: XOR | QuizAttemptCreateWithoutUserInput[] | QuizAttemptUncheckedCreateWithoutUserInput[] connectOrCreate?: QuizAttemptCreateOrConnectWithoutUserInput | QuizAttemptCreateOrConnectWithoutUserInput[] upsert?: QuizAttemptUpsertWithWhereUniqueWithoutUserInput | QuizAttemptUpsertWithWhereUniqueWithoutUserInput[] createMany?: QuizAttemptCreateManyUserInputEnvelope set?: QuizAttemptWhereUniqueInput | QuizAttemptWhereUniqueInput[] disconnect?: QuizAttemptWhereUniqueInput | QuizAttemptWhereUniqueInput[] delete?: QuizAttemptWhereUniqueInput | QuizAttemptWhereUniqueInput[] connect?: QuizAttemptWhereUniqueInput | QuizAttemptWhereUniqueInput[] update?: QuizAttemptUpdateWithWhereUniqueWithoutUserInput | QuizAttemptUpdateWithWhereUniqueWithoutUserInput[] updateMany?: QuizAttemptUpdateManyWithWhereWithoutUserInput | QuizAttemptUpdateManyWithWhereWithoutUserInput[] deleteMany?: QuizAttemptScalarWhereInput | QuizAttemptScalarWhereInput[] } export type CertificateUpdateManyWithoutUserNestedInput = { create?: XOR | CertificateCreateWithoutUserInput[] | CertificateUncheckedCreateWithoutUserInput[] connectOrCreate?: CertificateCreateOrConnectWithoutUserInput | CertificateCreateOrConnectWithoutUserInput[] upsert?: CertificateUpsertWithWhereUniqueWithoutUserInput | CertificateUpsertWithWhereUniqueWithoutUserInput[] createMany?: CertificateCreateManyUserInputEnvelope set?: CertificateWhereUniqueInput | CertificateWhereUniqueInput[] disconnect?: CertificateWhereUniqueInput | CertificateWhereUniqueInput[] delete?: CertificateWhereUniqueInput | CertificateWhereUniqueInput[] connect?: CertificateWhereUniqueInput | CertificateWhereUniqueInput[] update?: CertificateUpdateWithWhereUniqueWithoutUserInput | CertificateUpdateWithWhereUniqueWithoutUserInput[] updateMany?: CertificateUpdateManyWithWhereWithoutUserInput | CertificateUpdateManyWithWhereWithoutUserInput[] deleteMany?: CertificateScalarWhereInput | CertificateScalarWhereInput[] } export type AccountUncheckedUpdateManyWithoutUserNestedInput = { create?: XOR | AccountCreateWithoutUserInput[] | AccountUncheckedCreateWithoutUserInput[] connectOrCreate?: AccountCreateOrConnectWithoutUserInput | AccountCreateOrConnectWithoutUserInput[] upsert?: AccountUpsertWithWhereUniqueWithoutUserInput | AccountUpsertWithWhereUniqueWithoutUserInput[] createMany?: AccountCreateManyUserInputEnvelope set?: AccountWhereUniqueInput | AccountWhereUniqueInput[] disconnect?: AccountWhereUniqueInput | AccountWhereUniqueInput[] delete?: AccountWhereUniqueInput | AccountWhereUniqueInput[] connect?: AccountWhereUniqueInput | AccountWhereUniqueInput[] update?: AccountUpdateWithWhereUniqueWithoutUserInput | AccountUpdateWithWhereUniqueWithoutUserInput[] updateMany?: AccountUpdateManyWithWhereWithoutUserInput | AccountUpdateManyWithWhereWithoutUserInput[] deleteMany?: AccountScalarWhereInput | AccountScalarWhereInput[] } export type SessionUncheckedUpdateManyWithoutUserNestedInput = { create?: XOR | SessionCreateWithoutUserInput[] | SessionUncheckedCreateWithoutUserInput[] connectOrCreate?: SessionCreateOrConnectWithoutUserInput | SessionCreateOrConnectWithoutUserInput[] upsert?: SessionUpsertWithWhereUniqueWithoutUserInput | SessionUpsertWithWhereUniqueWithoutUserInput[] createMany?: SessionCreateManyUserInputEnvelope set?: SessionWhereUniqueInput | SessionWhereUniqueInput[] disconnect?: SessionWhereUniqueInput | SessionWhereUniqueInput[] delete?: SessionWhereUniqueInput | SessionWhereUniqueInput[] connect?: SessionWhereUniqueInput | SessionWhereUniqueInput[] update?: SessionUpdateWithWhereUniqueWithoutUserInput | SessionUpdateWithWhereUniqueWithoutUserInput[] updateMany?: SessionUpdateManyWithWhereWithoutUserInput | SessionUpdateManyWithWhereWithoutUserInput[] deleteMany?: SessionScalarWhereInput | SessionScalarWhereInput[] } export type EnrollmentUncheckedUpdateManyWithoutUserNestedInput = { create?: XOR | EnrollmentCreateWithoutUserInput[] | EnrollmentUncheckedCreateWithoutUserInput[] connectOrCreate?: EnrollmentCreateOrConnectWithoutUserInput | EnrollmentCreateOrConnectWithoutUserInput[] upsert?: EnrollmentUpsertWithWhereUniqueWithoutUserInput | EnrollmentUpsertWithWhereUniqueWithoutUserInput[] createMany?: EnrollmentCreateManyUserInputEnvelope set?: EnrollmentWhereUniqueInput | EnrollmentWhereUniqueInput[] disconnect?: EnrollmentWhereUniqueInput | EnrollmentWhereUniqueInput[] delete?: EnrollmentWhereUniqueInput | EnrollmentWhereUniqueInput[] connect?: EnrollmentWhereUniqueInput | EnrollmentWhereUniqueInput[] update?: EnrollmentUpdateWithWhereUniqueWithoutUserInput | EnrollmentUpdateWithWhereUniqueWithoutUserInput[] updateMany?: EnrollmentUpdateManyWithWhereWithoutUserInput | EnrollmentUpdateManyWithWhereWithoutUserInput[] deleteMany?: EnrollmentScalarWhereInput | EnrollmentScalarWhereInput[] } export type LessonProgressUncheckedUpdateManyWithoutUserNestedInput = { create?: XOR | LessonProgressCreateWithoutUserInput[] | LessonProgressUncheckedCreateWithoutUserInput[] connectOrCreate?: LessonProgressCreateOrConnectWithoutUserInput | LessonProgressCreateOrConnectWithoutUserInput[] upsert?: LessonProgressUpsertWithWhereUniqueWithoutUserInput | LessonProgressUpsertWithWhereUniqueWithoutUserInput[] createMany?: LessonProgressCreateManyUserInputEnvelope set?: LessonProgressWhereUniqueInput | LessonProgressWhereUniqueInput[] disconnect?: LessonProgressWhereUniqueInput | LessonProgressWhereUniqueInput[] delete?: LessonProgressWhereUniqueInput | LessonProgressWhereUniqueInput[] connect?: LessonProgressWhereUniqueInput | LessonProgressWhereUniqueInput[] update?: LessonProgressUpdateWithWhereUniqueWithoutUserInput | LessonProgressUpdateWithWhereUniqueWithoutUserInput[] updateMany?: LessonProgressUpdateManyWithWhereWithoutUserInput | LessonProgressUpdateManyWithWhereWithoutUserInput[] deleteMany?: LessonProgressScalarWhereInput | LessonProgressScalarWhereInput[] } export type QuizAttemptUncheckedUpdateManyWithoutUserNestedInput = { create?: XOR | QuizAttemptCreateWithoutUserInput[] | QuizAttemptUncheckedCreateWithoutUserInput[] connectOrCreate?: QuizAttemptCreateOrConnectWithoutUserInput | QuizAttemptCreateOrConnectWithoutUserInput[] upsert?: QuizAttemptUpsertWithWhereUniqueWithoutUserInput | QuizAttemptUpsertWithWhereUniqueWithoutUserInput[] createMany?: QuizAttemptCreateManyUserInputEnvelope set?: QuizAttemptWhereUniqueInput | QuizAttemptWhereUniqueInput[] disconnect?: QuizAttemptWhereUniqueInput | QuizAttemptWhereUniqueInput[] delete?: QuizAttemptWhereUniqueInput | QuizAttemptWhereUniqueInput[] connect?: QuizAttemptWhereUniqueInput | QuizAttemptWhereUniqueInput[] update?: QuizAttemptUpdateWithWhereUniqueWithoutUserInput | QuizAttemptUpdateWithWhereUniqueWithoutUserInput[] updateMany?: QuizAttemptUpdateManyWithWhereWithoutUserInput | QuizAttemptUpdateManyWithWhereWithoutUserInput[] deleteMany?: QuizAttemptScalarWhereInput | QuizAttemptScalarWhereInput[] } export type CertificateUncheckedUpdateManyWithoutUserNestedInput = { create?: XOR | CertificateCreateWithoutUserInput[] | CertificateUncheckedCreateWithoutUserInput[] connectOrCreate?: CertificateCreateOrConnectWithoutUserInput | CertificateCreateOrConnectWithoutUserInput[] upsert?: CertificateUpsertWithWhereUniqueWithoutUserInput | CertificateUpsertWithWhereUniqueWithoutUserInput[] createMany?: CertificateCreateManyUserInputEnvelope set?: CertificateWhereUniqueInput | CertificateWhereUniqueInput[] disconnect?: CertificateWhereUniqueInput | CertificateWhereUniqueInput[] delete?: CertificateWhereUniqueInput | CertificateWhereUniqueInput[] connect?: CertificateWhereUniqueInput | CertificateWhereUniqueInput[] update?: CertificateUpdateWithWhereUniqueWithoutUserInput | CertificateUpdateWithWhereUniqueWithoutUserInput[] updateMany?: CertificateUpdateManyWithWhereWithoutUserInput | CertificateUpdateManyWithWhereWithoutUserInput[] deleteMany?: CertificateScalarWhereInput | CertificateScalarWhereInput[] } export type UserCreateNestedOneWithoutAccountsInput = { create?: XOR connectOrCreate?: UserCreateOrConnectWithoutAccountsInput connect?: UserWhereUniqueInput } export type NullableIntFieldUpdateOperationsInput = { set?: number | null increment?: number decrement?: number multiply?: number divide?: number } export type UserUpdateOneRequiredWithoutAccountsNestedInput = { create?: XOR connectOrCreate?: UserCreateOrConnectWithoutAccountsInput upsert?: UserUpsertWithoutAccountsInput connect?: UserWhereUniqueInput update?: XOR, UserUncheckedUpdateWithoutAccountsInput> } export type UserCreateNestedOneWithoutSessionsInput = { create?: XOR connectOrCreate?: UserCreateOrConnectWithoutSessionsInput connect?: UserWhereUniqueInput } export type UserUpdateOneRequiredWithoutSessionsNestedInput = { create?: XOR connectOrCreate?: UserCreateOrConnectWithoutSessionsInput upsert?: UserUpsertWithoutSessionsInput connect?: UserWhereUniqueInput update?: XOR, UserUncheckedUpdateWithoutSessionsInput> } export type ModuleCreateNestedManyWithoutCourseInput = { create?: XOR | ModuleCreateWithoutCourseInput[] | ModuleUncheckedCreateWithoutCourseInput[] connectOrCreate?: ModuleCreateOrConnectWithoutCourseInput | ModuleCreateOrConnectWithoutCourseInput[] createMany?: ModuleCreateManyCourseInputEnvelope connect?: ModuleWhereUniqueInput | ModuleWhereUniqueInput[] } export type EnrollmentCreateNestedManyWithoutCourseInput = { create?: XOR | EnrollmentCreateWithoutCourseInput[] | EnrollmentUncheckedCreateWithoutCourseInput[] connectOrCreate?: EnrollmentCreateOrConnectWithoutCourseInput | EnrollmentCreateOrConnectWithoutCourseInput[] createMany?: EnrollmentCreateManyCourseInputEnvelope connect?: EnrollmentWhereUniqueInput | EnrollmentWhereUniqueInput[] } export type CertificateCreateNestedManyWithoutCourseInput = { create?: XOR | CertificateCreateWithoutCourseInput[] | CertificateUncheckedCreateWithoutCourseInput[] connectOrCreate?: CertificateCreateOrConnectWithoutCourseInput | CertificateCreateOrConnectWithoutCourseInput[] createMany?: CertificateCreateManyCourseInputEnvelope connect?: CertificateWhereUniqueInput | CertificateWhereUniqueInput[] } export type ModuleUncheckedCreateNestedManyWithoutCourseInput = { create?: XOR | ModuleCreateWithoutCourseInput[] | ModuleUncheckedCreateWithoutCourseInput[] connectOrCreate?: ModuleCreateOrConnectWithoutCourseInput | ModuleCreateOrConnectWithoutCourseInput[] createMany?: ModuleCreateManyCourseInputEnvelope connect?: ModuleWhereUniqueInput | ModuleWhereUniqueInput[] } export type EnrollmentUncheckedCreateNestedManyWithoutCourseInput = { create?: XOR | EnrollmentCreateWithoutCourseInput[] | EnrollmentUncheckedCreateWithoutCourseInput[] connectOrCreate?: EnrollmentCreateOrConnectWithoutCourseInput | EnrollmentCreateOrConnectWithoutCourseInput[] createMany?: EnrollmentCreateManyCourseInputEnvelope connect?: EnrollmentWhereUniqueInput | EnrollmentWhereUniqueInput[] } export type CertificateUncheckedCreateNestedManyWithoutCourseInput = { create?: XOR | CertificateCreateWithoutCourseInput[] | CertificateUncheckedCreateWithoutCourseInput[] connectOrCreate?: CertificateCreateOrConnectWithoutCourseInput | CertificateCreateOrConnectWithoutCourseInput[] createMany?: CertificateCreateManyCourseInputEnvelope connect?: CertificateWhereUniqueInput | CertificateWhereUniqueInput[] } export type EnumCourseCategoryFieldUpdateOperationsInput = { set?: $Enums.CourseCategory } export type EnumCourseLevelFieldUpdateOperationsInput = { set?: $Enums.CourseLevel } export type BoolFieldUpdateOperationsInput = { set?: boolean } export type IntFieldUpdateOperationsInput = { set?: number increment?: number decrement?: number multiply?: number divide?: number } export type ModuleUpdateManyWithoutCourseNestedInput = { create?: XOR | ModuleCreateWithoutCourseInput[] | ModuleUncheckedCreateWithoutCourseInput[] connectOrCreate?: ModuleCreateOrConnectWithoutCourseInput | ModuleCreateOrConnectWithoutCourseInput[] upsert?: ModuleUpsertWithWhereUniqueWithoutCourseInput | ModuleUpsertWithWhereUniqueWithoutCourseInput[] createMany?: ModuleCreateManyCourseInputEnvelope set?: ModuleWhereUniqueInput | ModuleWhereUniqueInput[] disconnect?: ModuleWhereUniqueInput | ModuleWhereUniqueInput[] delete?: ModuleWhereUniqueInput | ModuleWhereUniqueInput[] connect?: ModuleWhereUniqueInput | ModuleWhereUniqueInput[] update?: ModuleUpdateWithWhereUniqueWithoutCourseInput | ModuleUpdateWithWhereUniqueWithoutCourseInput[] updateMany?: ModuleUpdateManyWithWhereWithoutCourseInput | ModuleUpdateManyWithWhereWithoutCourseInput[] deleteMany?: ModuleScalarWhereInput | ModuleScalarWhereInput[] } export type EnrollmentUpdateManyWithoutCourseNestedInput = { create?: XOR | EnrollmentCreateWithoutCourseInput[] | EnrollmentUncheckedCreateWithoutCourseInput[] connectOrCreate?: EnrollmentCreateOrConnectWithoutCourseInput | EnrollmentCreateOrConnectWithoutCourseInput[] upsert?: EnrollmentUpsertWithWhereUniqueWithoutCourseInput | EnrollmentUpsertWithWhereUniqueWithoutCourseInput[] createMany?: EnrollmentCreateManyCourseInputEnvelope set?: EnrollmentWhereUniqueInput | EnrollmentWhereUniqueInput[] disconnect?: EnrollmentWhereUniqueInput | EnrollmentWhereUniqueInput[] delete?: EnrollmentWhereUniqueInput | EnrollmentWhereUniqueInput[] connect?: EnrollmentWhereUniqueInput | EnrollmentWhereUniqueInput[] update?: EnrollmentUpdateWithWhereUniqueWithoutCourseInput | EnrollmentUpdateWithWhereUniqueWithoutCourseInput[] updateMany?: EnrollmentUpdateManyWithWhereWithoutCourseInput | EnrollmentUpdateManyWithWhereWithoutCourseInput[] deleteMany?: EnrollmentScalarWhereInput | EnrollmentScalarWhereInput[] } export type CertificateUpdateManyWithoutCourseNestedInput = { create?: XOR | CertificateCreateWithoutCourseInput[] | CertificateUncheckedCreateWithoutCourseInput[] connectOrCreate?: CertificateCreateOrConnectWithoutCourseInput | CertificateCreateOrConnectWithoutCourseInput[] upsert?: CertificateUpsertWithWhereUniqueWithoutCourseInput | CertificateUpsertWithWhereUniqueWithoutCourseInput[] createMany?: CertificateCreateManyCourseInputEnvelope set?: CertificateWhereUniqueInput | CertificateWhereUniqueInput[] disconnect?: CertificateWhereUniqueInput | CertificateWhereUniqueInput[] delete?: CertificateWhereUniqueInput | CertificateWhereUniqueInput[] connect?: CertificateWhereUniqueInput | CertificateWhereUniqueInput[] update?: CertificateUpdateWithWhereUniqueWithoutCourseInput | CertificateUpdateWithWhereUniqueWithoutCourseInput[] updateMany?: CertificateUpdateManyWithWhereWithoutCourseInput | CertificateUpdateManyWithWhereWithoutCourseInput[] deleteMany?: CertificateScalarWhereInput | CertificateScalarWhereInput[] } export type ModuleUncheckedUpdateManyWithoutCourseNestedInput = { create?: XOR | ModuleCreateWithoutCourseInput[] | ModuleUncheckedCreateWithoutCourseInput[] connectOrCreate?: ModuleCreateOrConnectWithoutCourseInput | ModuleCreateOrConnectWithoutCourseInput[] upsert?: ModuleUpsertWithWhereUniqueWithoutCourseInput | ModuleUpsertWithWhereUniqueWithoutCourseInput[] createMany?: ModuleCreateManyCourseInputEnvelope set?: ModuleWhereUniqueInput | ModuleWhereUniqueInput[] disconnect?: ModuleWhereUniqueInput | ModuleWhereUniqueInput[] delete?: ModuleWhereUniqueInput | ModuleWhereUniqueInput[] connect?: ModuleWhereUniqueInput | ModuleWhereUniqueInput[] update?: ModuleUpdateWithWhereUniqueWithoutCourseInput | ModuleUpdateWithWhereUniqueWithoutCourseInput[] updateMany?: ModuleUpdateManyWithWhereWithoutCourseInput | ModuleUpdateManyWithWhereWithoutCourseInput[] deleteMany?: ModuleScalarWhereInput | ModuleScalarWhereInput[] } export type EnrollmentUncheckedUpdateManyWithoutCourseNestedInput = { create?: XOR | EnrollmentCreateWithoutCourseInput[] | EnrollmentUncheckedCreateWithoutCourseInput[] connectOrCreate?: EnrollmentCreateOrConnectWithoutCourseInput | EnrollmentCreateOrConnectWithoutCourseInput[] upsert?: EnrollmentUpsertWithWhereUniqueWithoutCourseInput | EnrollmentUpsertWithWhereUniqueWithoutCourseInput[] createMany?: EnrollmentCreateManyCourseInputEnvelope set?: EnrollmentWhereUniqueInput | EnrollmentWhereUniqueInput[] disconnect?: EnrollmentWhereUniqueInput | EnrollmentWhereUniqueInput[] delete?: EnrollmentWhereUniqueInput | EnrollmentWhereUniqueInput[] connect?: EnrollmentWhereUniqueInput | EnrollmentWhereUniqueInput[] update?: EnrollmentUpdateWithWhereUniqueWithoutCourseInput | EnrollmentUpdateWithWhereUniqueWithoutCourseInput[] updateMany?: EnrollmentUpdateManyWithWhereWithoutCourseInput | EnrollmentUpdateManyWithWhereWithoutCourseInput[] deleteMany?: EnrollmentScalarWhereInput | EnrollmentScalarWhereInput[] } export type CertificateUncheckedUpdateManyWithoutCourseNestedInput = { create?: XOR | CertificateCreateWithoutCourseInput[] | CertificateUncheckedCreateWithoutCourseInput[] connectOrCreate?: CertificateCreateOrConnectWithoutCourseInput | CertificateCreateOrConnectWithoutCourseInput[] upsert?: CertificateUpsertWithWhereUniqueWithoutCourseInput | CertificateUpsertWithWhereUniqueWithoutCourseInput[] createMany?: CertificateCreateManyCourseInputEnvelope set?: CertificateWhereUniqueInput | CertificateWhereUniqueInput[] disconnect?: CertificateWhereUniqueInput | CertificateWhereUniqueInput[] delete?: CertificateWhereUniqueInput | CertificateWhereUniqueInput[] connect?: CertificateWhereUniqueInput | CertificateWhereUniqueInput[] update?: CertificateUpdateWithWhereUniqueWithoutCourseInput | CertificateUpdateWithWhereUniqueWithoutCourseInput[] updateMany?: CertificateUpdateManyWithWhereWithoutCourseInput | CertificateUpdateManyWithWhereWithoutCourseInput[] deleteMany?: CertificateScalarWhereInput | CertificateScalarWhereInput[] } export type CourseCreateNestedOneWithoutModulesInput = { create?: XOR connectOrCreate?: CourseCreateOrConnectWithoutModulesInput connect?: CourseWhereUniqueInput } export type LessonCreateNestedManyWithoutModuleInput = { create?: XOR | LessonCreateWithoutModuleInput[] | LessonUncheckedCreateWithoutModuleInput[] connectOrCreate?: LessonCreateOrConnectWithoutModuleInput | LessonCreateOrConnectWithoutModuleInput[] createMany?: LessonCreateManyModuleInputEnvelope connect?: LessonWhereUniqueInput | LessonWhereUniqueInput[] } export type QuizCreateNestedOneWithoutModuleInput = { create?: XOR connectOrCreate?: QuizCreateOrConnectWithoutModuleInput connect?: QuizWhereUniqueInput } export type LessonUncheckedCreateNestedManyWithoutModuleInput = { create?: XOR | LessonCreateWithoutModuleInput[] | LessonUncheckedCreateWithoutModuleInput[] connectOrCreate?: LessonCreateOrConnectWithoutModuleInput | LessonCreateOrConnectWithoutModuleInput[] createMany?: LessonCreateManyModuleInputEnvelope connect?: LessonWhereUniqueInput | LessonWhereUniqueInput[] } export type QuizUncheckedCreateNestedOneWithoutModuleInput = { create?: XOR connectOrCreate?: QuizCreateOrConnectWithoutModuleInput connect?: QuizWhereUniqueInput } export type CourseUpdateOneRequiredWithoutModulesNestedInput = { create?: XOR connectOrCreate?: CourseCreateOrConnectWithoutModulesInput upsert?: CourseUpsertWithoutModulesInput connect?: CourseWhereUniqueInput update?: XOR, CourseUncheckedUpdateWithoutModulesInput> } export type LessonUpdateManyWithoutModuleNestedInput = { create?: XOR | LessonCreateWithoutModuleInput[] | LessonUncheckedCreateWithoutModuleInput[] connectOrCreate?: LessonCreateOrConnectWithoutModuleInput | LessonCreateOrConnectWithoutModuleInput[] upsert?: LessonUpsertWithWhereUniqueWithoutModuleInput | LessonUpsertWithWhereUniqueWithoutModuleInput[] createMany?: LessonCreateManyModuleInputEnvelope set?: LessonWhereUniqueInput | LessonWhereUniqueInput[] disconnect?: LessonWhereUniqueInput | LessonWhereUniqueInput[] delete?: LessonWhereUniqueInput | LessonWhereUniqueInput[] connect?: LessonWhereUniqueInput | LessonWhereUniqueInput[] update?: LessonUpdateWithWhereUniqueWithoutModuleInput | LessonUpdateWithWhereUniqueWithoutModuleInput[] updateMany?: LessonUpdateManyWithWhereWithoutModuleInput | LessonUpdateManyWithWhereWithoutModuleInput[] deleteMany?: LessonScalarWhereInput | LessonScalarWhereInput[] } export type QuizUpdateOneWithoutModuleNestedInput = { create?: XOR connectOrCreate?: QuizCreateOrConnectWithoutModuleInput upsert?: QuizUpsertWithoutModuleInput disconnect?: QuizWhereInput | boolean delete?: QuizWhereInput | boolean connect?: QuizWhereUniqueInput update?: XOR, QuizUncheckedUpdateWithoutModuleInput> } export type LessonUncheckedUpdateManyWithoutModuleNestedInput = { create?: XOR | LessonCreateWithoutModuleInput[] | LessonUncheckedCreateWithoutModuleInput[] connectOrCreate?: LessonCreateOrConnectWithoutModuleInput | LessonCreateOrConnectWithoutModuleInput[] upsert?: LessonUpsertWithWhereUniqueWithoutModuleInput | LessonUpsertWithWhereUniqueWithoutModuleInput[] createMany?: LessonCreateManyModuleInputEnvelope set?: LessonWhereUniqueInput | LessonWhereUniqueInput[] disconnect?: LessonWhereUniqueInput | LessonWhereUniqueInput[] delete?: LessonWhereUniqueInput | LessonWhereUniqueInput[] connect?: LessonWhereUniqueInput | LessonWhereUniqueInput[] update?: LessonUpdateWithWhereUniqueWithoutModuleInput | LessonUpdateWithWhereUniqueWithoutModuleInput[] updateMany?: LessonUpdateManyWithWhereWithoutModuleInput | LessonUpdateManyWithWhereWithoutModuleInput[] deleteMany?: LessonScalarWhereInput | LessonScalarWhereInput[] } export type QuizUncheckedUpdateOneWithoutModuleNestedInput = { create?: XOR connectOrCreate?: QuizCreateOrConnectWithoutModuleInput upsert?: QuizUpsertWithoutModuleInput disconnect?: QuizWhereInput | boolean delete?: QuizWhereInput | boolean connect?: QuizWhereUniqueInput update?: XOR, QuizUncheckedUpdateWithoutModuleInput> } export type ModuleCreateNestedOneWithoutLessonsInput = { create?: XOR connectOrCreate?: ModuleCreateOrConnectWithoutLessonsInput connect?: ModuleWhereUniqueInput } export type LessonProgressCreateNestedManyWithoutLessonInput = { create?: XOR | LessonProgressCreateWithoutLessonInput[] | LessonProgressUncheckedCreateWithoutLessonInput[] connectOrCreate?: LessonProgressCreateOrConnectWithoutLessonInput | LessonProgressCreateOrConnectWithoutLessonInput[] createMany?: LessonProgressCreateManyLessonInputEnvelope connect?: LessonProgressWhereUniqueInput | LessonProgressWhereUniqueInput[] } export type LessonProgressUncheckedCreateNestedManyWithoutLessonInput = { create?: XOR | LessonProgressCreateWithoutLessonInput[] | LessonProgressUncheckedCreateWithoutLessonInput[] connectOrCreate?: LessonProgressCreateOrConnectWithoutLessonInput | LessonProgressCreateOrConnectWithoutLessonInput[] createMany?: LessonProgressCreateManyLessonInputEnvelope connect?: LessonProgressWhereUniqueInput | LessonProgressWhereUniqueInput[] } export type EnumLessonTypeFieldUpdateOperationsInput = { set?: $Enums.LessonType } export type ModuleUpdateOneRequiredWithoutLessonsNestedInput = { create?: XOR connectOrCreate?: ModuleCreateOrConnectWithoutLessonsInput upsert?: ModuleUpsertWithoutLessonsInput connect?: ModuleWhereUniqueInput update?: XOR, ModuleUncheckedUpdateWithoutLessonsInput> } export type LessonProgressUpdateManyWithoutLessonNestedInput = { create?: XOR | LessonProgressCreateWithoutLessonInput[] | LessonProgressUncheckedCreateWithoutLessonInput[] connectOrCreate?: LessonProgressCreateOrConnectWithoutLessonInput | LessonProgressCreateOrConnectWithoutLessonInput[] upsert?: LessonProgressUpsertWithWhereUniqueWithoutLessonInput | LessonProgressUpsertWithWhereUniqueWithoutLessonInput[] createMany?: LessonProgressCreateManyLessonInputEnvelope set?: LessonProgressWhereUniqueInput | LessonProgressWhereUniqueInput[] disconnect?: LessonProgressWhereUniqueInput | LessonProgressWhereUniqueInput[] delete?: LessonProgressWhereUniqueInput | LessonProgressWhereUniqueInput[] connect?: LessonProgressWhereUniqueInput | LessonProgressWhereUniqueInput[] update?: LessonProgressUpdateWithWhereUniqueWithoutLessonInput | LessonProgressUpdateWithWhereUniqueWithoutLessonInput[] updateMany?: LessonProgressUpdateManyWithWhereWithoutLessonInput | LessonProgressUpdateManyWithWhereWithoutLessonInput[] deleteMany?: LessonProgressScalarWhereInput | LessonProgressScalarWhereInput[] } export type LessonProgressUncheckedUpdateManyWithoutLessonNestedInput = { create?: XOR | LessonProgressCreateWithoutLessonInput[] | LessonProgressUncheckedCreateWithoutLessonInput[] connectOrCreate?: LessonProgressCreateOrConnectWithoutLessonInput | LessonProgressCreateOrConnectWithoutLessonInput[] upsert?: LessonProgressUpsertWithWhereUniqueWithoutLessonInput | LessonProgressUpsertWithWhereUniqueWithoutLessonInput[] createMany?: LessonProgressCreateManyLessonInputEnvelope set?: LessonProgressWhereUniqueInput | LessonProgressWhereUniqueInput[] disconnect?: LessonProgressWhereUniqueInput | LessonProgressWhereUniqueInput[] delete?: LessonProgressWhereUniqueInput | LessonProgressWhereUniqueInput[] connect?: LessonProgressWhereUniqueInput | LessonProgressWhereUniqueInput[] update?: LessonProgressUpdateWithWhereUniqueWithoutLessonInput | LessonProgressUpdateWithWhereUniqueWithoutLessonInput[] updateMany?: LessonProgressUpdateManyWithWhereWithoutLessonInput | LessonProgressUpdateManyWithWhereWithoutLessonInput[] deleteMany?: LessonProgressScalarWhereInput | LessonProgressScalarWhereInput[] } export type ModuleCreateNestedOneWithoutQuizInput = { create?: XOR connectOrCreate?: ModuleCreateOrConnectWithoutQuizInput connect?: ModuleWhereUniqueInput } export type QuestionCreateNestedManyWithoutQuizInput = { create?: XOR | QuestionCreateWithoutQuizInput[] | QuestionUncheckedCreateWithoutQuizInput[] connectOrCreate?: QuestionCreateOrConnectWithoutQuizInput | QuestionCreateOrConnectWithoutQuizInput[] createMany?: QuestionCreateManyQuizInputEnvelope connect?: QuestionWhereUniqueInput | QuestionWhereUniqueInput[] } export type QuizAttemptCreateNestedManyWithoutQuizInput = { create?: XOR | QuizAttemptCreateWithoutQuizInput[] | QuizAttemptUncheckedCreateWithoutQuizInput[] connectOrCreate?: QuizAttemptCreateOrConnectWithoutQuizInput | QuizAttemptCreateOrConnectWithoutQuizInput[] createMany?: QuizAttemptCreateManyQuizInputEnvelope connect?: QuizAttemptWhereUniqueInput | QuizAttemptWhereUniqueInput[] } export type QuestionUncheckedCreateNestedManyWithoutQuizInput = { create?: XOR | QuestionCreateWithoutQuizInput[] | QuestionUncheckedCreateWithoutQuizInput[] connectOrCreate?: QuestionCreateOrConnectWithoutQuizInput | QuestionCreateOrConnectWithoutQuizInput[] createMany?: QuestionCreateManyQuizInputEnvelope connect?: QuestionWhereUniqueInput | QuestionWhereUniqueInput[] } export type QuizAttemptUncheckedCreateNestedManyWithoutQuizInput = { create?: XOR | QuizAttemptCreateWithoutQuizInput[] | QuizAttemptUncheckedCreateWithoutQuizInput[] connectOrCreate?: QuizAttemptCreateOrConnectWithoutQuizInput | QuizAttemptCreateOrConnectWithoutQuizInput[] createMany?: QuizAttemptCreateManyQuizInputEnvelope connect?: QuizAttemptWhereUniqueInput | QuizAttemptWhereUniqueInput[] } export type ModuleUpdateOneRequiredWithoutQuizNestedInput = { create?: XOR connectOrCreate?: ModuleCreateOrConnectWithoutQuizInput upsert?: ModuleUpsertWithoutQuizInput connect?: ModuleWhereUniqueInput update?: XOR, ModuleUncheckedUpdateWithoutQuizInput> } export type QuestionUpdateManyWithoutQuizNestedInput = { create?: XOR | QuestionCreateWithoutQuizInput[] | QuestionUncheckedCreateWithoutQuizInput[] connectOrCreate?: QuestionCreateOrConnectWithoutQuizInput | QuestionCreateOrConnectWithoutQuizInput[] upsert?: QuestionUpsertWithWhereUniqueWithoutQuizInput | QuestionUpsertWithWhereUniqueWithoutQuizInput[] createMany?: QuestionCreateManyQuizInputEnvelope set?: QuestionWhereUniqueInput | QuestionWhereUniqueInput[] disconnect?: QuestionWhereUniqueInput | QuestionWhereUniqueInput[] delete?: QuestionWhereUniqueInput | QuestionWhereUniqueInput[] connect?: QuestionWhereUniqueInput | QuestionWhereUniqueInput[] update?: QuestionUpdateWithWhereUniqueWithoutQuizInput | QuestionUpdateWithWhereUniqueWithoutQuizInput[] updateMany?: QuestionUpdateManyWithWhereWithoutQuizInput | QuestionUpdateManyWithWhereWithoutQuizInput[] deleteMany?: QuestionScalarWhereInput | QuestionScalarWhereInput[] } export type QuizAttemptUpdateManyWithoutQuizNestedInput = { create?: XOR | QuizAttemptCreateWithoutQuizInput[] | QuizAttemptUncheckedCreateWithoutQuizInput[] connectOrCreate?: QuizAttemptCreateOrConnectWithoutQuizInput | QuizAttemptCreateOrConnectWithoutQuizInput[] upsert?: QuizAttemptUpsertWithWhereUniqueWithoutQuizInput | QuizAttemptUpsertWithWhereUniqueWithoutQuizInput[] createMany?: QuizAttemptCreateManyQuizInputEnvelope set?: QuizAttemptWhereUniqueInput | QuizAttemptWhereUniqueInput[] disconnect?: QuizAttemptWhereUniqueInput | QuizAttemptWhereUniqueInput[] delete?: QuizAttemptWhereUniqueInput | QuizAttemptWhereUniqueInput[] connect?: QuizAttemptWhereUniqueInput | QuizAttemptWhereUniqueInput[] update?: QuizAttemptUpdateWithWhereUniqueWithoutQuizInput | QuizAttemptUpdateWithWhereUniqueWithoutQuizInput[] updateMany?: QuizAttemptUpdateManyWithWhereWithoutQuizInput | QuizAttemptUpdateManyWithWhereWithoutQuizInput[] deleteMany?: QuizAttemptScalarWhereInput | QuizAttemptScalarWhereInput[] } export type QuestionUncheckedUpdateManyWithoutQuizNestedInput = { create?: XOR | QuestionCreateWithoutQuizInput[] | QuestionUncheckedCreateWithoutQuizInput[] connectOrCreate?: QuestionCreateOrConnectWithoutQuizInput | QuestionCreateOrConnectWithoutQuizInput[] upsert?: QuestionUpsertWithWhereUniqueWithoutQuizInput | QuestionUpsertWithWhereUniqueWithoutQuizInput[] createMany?: QuestionCreateManyQuizInputEnvelope set?: QuestionWhereUniqueInput | QuestionWhereUniqueInput[] disconnect?: QuestionWhereUniqueInput | QuestionWhereUniqueInput[] delete?: QuestionWhereUniqueInput | QuestionWhereUniqueInput[] connect?: QuestionWhereUniqueInput | QuestionWhereUniqueInput[] update?: QuestionUpdateWithWhereUniqueWithoutQuizInput | QuestionUpdateWithWhereUniqueWithoutQuizInput[] updateMany?: QuestionUpdateManyWithWhereWithoutQuizInput | QuestionUpdateManyWithWhereWithoutQuizInput[] deleteMany?: QuestionScalarWhereInput | QuestionScalarWhereInput[] } export type QuizAttemptUncheckedUpdateManyWithoutQuizNestedInput = { create?: XOR | QuizAttemptCreateWithoutQuizInput[] | QuizAttemptUncheckedCreateWithoutQuizInput[] connectOrCreate?: QuizAttemptCreateOrConnectWithoutQuizInput | QuizAttemptCreateOrConnectWithoutQuizInput[] upsert?: QuizAttemptUpsertWithWhereUniqueWithoutQuizInput | QuizAttemptUpsertWithWhereUniqueWithoutQuizInput[] createMany?: QuizAttemptCreateManyQuizInputEnvelope set?: QuizAttemptWhereUniqueInput | QuizAttemptWhereUniqueInput[] disconnect?: QuizAttemptWhereUniqueInput | QuizAttemptWhereUniqueInput[] delete?: QuizAttemptWhereUniqueInput | QuizAttemptWhereUniqueInput[] connect?: QuizAttemptWhereUniqueInput | QuizAttemptWhereUniqueInput[] update?: QuizAttemptUpdateWithWhereUniqueWithoutQuizInput | QuizAttemptUpdateWithWhereUniqueWithoutQuizInput[] updateMany?: QuizAttemptUpdateManyWithWhereWithoutQuizInput | QuizAttemptUpdateManyWithWhereWithoutQuizInput[] deleteMany?: QuizAttemptScalarWhereInput | QuizAttemptScalarWhereInput[] } export type QuestionCreateoptionsFrInput = { set: string[] } export type QuestionCreateoptionsEnInput = { set: string[] } export type QuestionCreateoptionsEsInput = { set: string[] } export type QuizCreateNestedOneWithoutQuestionsInput = { create?: XOR connectOrCreate?: QuizCreateOrConnectWithoutQuestionsInput connect?: QuizWhereUniqueInput } export type QuestionUpdateoptionsFrInput = { set?: string[] push?: string | string[] } export type QuestionUpdateoptionsEnInput = { set?: string[] push?: string | string[] } export type QuestionUpdateoptionsEsInput = { set?: string[] push?: string | string[] } export type QuizUpdateOneRequiredWithoutQuestionsNestedInput = { create?: XOR connectOrCreate?: QuizCreateOrConnectWithoutQuestionsInput upsert?: QuizUpsertWithoutQuestionsInput connect?: QuizWhereUniqueInput update?: XOR, QuizUncheckedUpdateWithoutQuestionsInput> } export type UserCreateNestedOneWithoutEnrollmentsInput = { create?: XOR connectOrCreate?: UserCreateOrConnectWithoutEnrollmentsInput connect?: UserWhereUniqueInput } export type CourseCreateNestedOneWithoutEnrollmentsInput = { create?: XOR connectOrCreate?: CourseCreateOrConnectWithoutEnrollmentsInput connect?: CourseWhereUniqueInput } export type UserUpdateOneRequiredWithoutEnrollmentsNestedInput = { create?: XOR connectOrCreate?: UserCreateOrConnectWithoutEnrollmentsInput upsert?: UserUpsertWithoutEnrollmentsInput connect?: UserWhereUniqueInput update?: XOR, UserUncheckedUpdateWithoutEnrollmentsInput> } export type CourseUpdateOneRequiredWithoutEnrollmentsNestedInput = { create?: XOR connectOrCreate?: CourseCreateOrConnectWithoutEnrollmentsInput upsert?: CourseUpsertWithoutEnrollmentsInput connect?: CourseWhereUniqueInput update?: XOR, CourseUncheckedUpdateWithoutEnrollmentsInput> } export type UserCreateNestedOneWithoutLessonProgressInput = { create?: XOR connectOrCreate?: UserCreateOrConnectWithoutLessonProgressInput connect?: UserWhereUniqueInput } export type LessonCreateNestedOneWithoutLessonProgressInput = { create?: XOR connectOrCreate?: LessonCreateOrConnectWithoutLessonProgressInput connect?: LessonWhereUniqueInput } export type UserUpdateOneRequiredWithoutLessonProgressNestedInput = { create?: XOR connectOrCreate?: UserCreateOrConnectWithoutLessonProgressInput upsert?: UserUpsertWithoutLessonProgressInput connect?: UserWhereUniqueInput update?: XOR, UserUncheckedUpdateWithoutLessonProgressInput> } export type LessonUpdateOneRequiredWithoutLessonProgressNestedInput = { create?: XOR connectOrCreate?: LessonCreateOrConnectWithoutLessonProgressInput upsert?: LessonUpsertWithoutLessonProgressInput connect?: LessonWhereUniqueInput update?: XOR, LessonUncheckedUpdateWithoutLessonProgressInput> } export type QuizAttemptCreateanswersInput = { set: number[] } export type UserCreateNestedOneWithoutQuizAttemptsInput = { create?: XOR connectOrCreate?: UserCreateOrConnectWithoutQuizAttemptsInput connect?: UserWhereUniqueInput } export type QuizCreateNestedOneWithoutAttemptsInput = { create?: XOR connectOrCreate?: QuizCreateOrConnectWithoutAttemptsInput connect?: QuizWhereUniqueInput } export type QuizAttemptUpdateanswersInput = { set?: number[] push?: number | number[] } export type UserUpdateOneRequiredWithoutQuizAttemptsNestedInput = { create?: XOR connectOrCreate?: UserCreateOrConnectWithoutQuizAttemptsInput upsert?: UserUpsertWithoutQuizAttemptsInput connect?: UserWhereUniqueInput update?: XOR, UserUncheckedUpdateWithoutQuizAttemptsInput> } export type QuizUpdateOneRequiredWithoutAttemptsNestedInput = { create?: XOR connectOrCreate?: QuizCreateOrConnectWithoutAttemptsInput upsert?: QuizUpsertWithoutAttemptsInput connect?: QuizWhereUniqueInput update?: XOR, QuizUncheckedUpdateWithoutAttemptsInput> } export type UserCreateNestedOneWithoutCertificatesInput = { create?: XOR connectOrCreate?: UserCreateOrConnectWithoutCertificatesInput connect?: UserWhereUniqueInput } export type CourseCreateNestedOneWithoutCertificatesInput = { create?: XOR connectOrCreate?: CourseCreateOrConnectWithoutCertificatesInput connect?: CourseWhereUniqueInput } export type UserUpdateOneRequiredWithoutCertificatesNestedInput = { create?: XOR connectOrCreate?: UserCreateOrConnectWithoutCertificatesInput upsert?: UserUpsertWithoutCertificatesInput connect?: UserWhereUniqueInput update?: XOR, UserUncheckedUpdateWithoutCertificatesInput> } export type CourseUpdateOneRequiredWithoutCertificatesNestedInput = { create?: XOR connectOrCreate?: CourseCreateOrConnectWithoutCertificatesInput upsert?: CourseUpsertWithoutCertificatesInput connect?: CourseWhereUniqueInput update?: XOR, CourseUncheckedUpdateWithoutCertificatesInput> } export type NestedStringFilter<$PrismaModel = never> = { equals?: string | StringFieldRefInput<$PrismaModel> in?: string[] | ListStringFieldRefInput<$PrismaModel> notIn?: string[] | ListStringFieldRefInput<$PrismaModel> lt?: string | StringFieldRefInput<$PrismaModel> lte?: string | StringFieldRefInput<$PrismaModel> gt?: string | StringFieldRefInput<$PrismaModel> gte?: string | StringFieldRefInput<$PrismaModel> contains?: string | StringFieldRefInput<$PrismaModel> startsWith?: string | StringFieldRefInput<$PrismaModel> endsWith?: string | StringFieldRefInput<$PrismaModel> not?: NestedStringFilter<$PrismaModel> | string } export type NestedStringNullableFilter<$PrismaModel = never> = { equals?: string | StringFieldRefInput<$PrismaModel> | null in?: string[] | ListStringFieldRefInput<$PrismaModel> | null notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null lt?: string | StringFieldRefInput<$PrismaModel> lte?: string | StringFieldRefInput<$PrismaModel> gt?: string | StringFieldRefInput<$PrismaModel> gte?: string | StringFieldRefInput<$PrismaModel> contains?: string | StringFieldRefInput<$PrismaModel> startsWith?: string | StringFieldRefInput<$PrismaModel> endsWith?: string | StringFieldRefInput<$PrismaModel> not?: NestedStringNullableFilter<$PrismaModel> | string | null } export type NestedDateTimeNullableFilter<$PrismaModel = never> = { equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> not?: NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null } export type NestedEnumRoleFilter<$PrismaModel = never> = { equals?: $Enums.Role | EnumRoleFieldRefInput<$PrismaModel> in?: $Enums.Role[] | ListEnumRoleFieldRefInput<$PrismaModel> notIn?: $Enums.Role[] | ListEnumRoleFieldRefInput<$PrismaModel> not?: NestedEnumRoleFilter<$PrismaModel> | $Enums.Role } export type NestedDateTimeFilter<$PrismaModel = never> = { equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> not?: NestedDateTimeFilter<$PrismaModel> | Date | string } export type NestedStringWithAggregatesFilter<$PrismaModel = never> = { equals?: string | StringFieldRefInput<$PrismaModel> in?: string[] | ListStringFieldRefInput<$PrismaModel> notIn?: string[] | ListStringFieldRefInput<$PrismaModel> lt?: string | StringFieldRefInput<$PrismaModel> lte?: string | StringFieldRefInput<$PrismaModel> gt?: string | StringFieldRefInput<$PrismaModel> gte?: string | StringFieldRefInput<$PrismaModel> contains?: string | StringFieldRefInput<$PrismaModel> startsWith?: string | StringFieldRefInput<$PrismaModel> endsWith?: string | StringFieldRefInput<$PrismaModel> not?: NestedStringWithAggregatesFilter<$PrismaModel> | string _count?: NestedIntFilter<$PrismaModel> _min?: NestedStringFilter<$PrismaModel> _max?: NestedStringFilter<$PrismaModel> } export type NestedIntFilter<$PrismaModel = never> = { equals?: number | IntFieldRefInput<$PrismaModel> in?: number[] | ListIntFieldRefInput<$PrismaModel> notIn?: number[] | ListIntFieldRefInput<$PrismaModel> lt?: number | IntFieldRefInput<$PrismaModel> lte?: number | IntFieldRefInput<$PrismaModel> gt?: number | IntFieldRefInput<$PrismaModel> gte?: number | IntFieldRefInput<$PrismaModel> not?: NestedIntFilter<$PrismaModel> | number } export type NestedStringNullableWithAggregatesFilter<$PrismaModel = never> = { equals?: string | StringFieldRefInput<$PrismaModel> | null in?: string[] | ListStringFieldRefInput<$PrismaModel> | null notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null lt?: string | StringFieldRefInput<$PrismaModel> lte?: string | StringFieldRefInput<$PrismaModel> gt?: string | StringFieldRefInput<$PrismaModel> gte?: string | StringFieldRefInput<$PrismaModel> contains?: string | StringFieldRefInput<$PrismaModel> startsWith?: string | StringFieldRefInput<$PrismaModel> endsWith?: string | StringFieldRefInput<$PrismaModel> not?: NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null _count?: NestedIntNullableFilter<$PrismaModel> _min?: NestedStringNullableFilter<$PrismaModel> _max?: NestedStringNullableFilter<$PrismaModel> } export type NestedIntNullableFilter<$PrismaModel = never> = { equals?: number | IntFieldRefInput<$PrismaModel> | null in?: number[] | ListIntFieldRefInput<$PrismaModel> | null notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null lt?: number | IntFieldRefInput<$PrismaModel> lte?: number | IntFieldRefInput<$PrismaModel> gt?: number | IntFieldRefInput<$PrismaModel> gte?: number | IntFieldRefInput<$PrismaModel> not?: NestedIntNullableFilter<$PrismaModel> | number | null } export type NestedDateTimeNullableWithAggregatesFilter<$PrismaModel = never> = { equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> not?: NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null _count?: NestedIntNullableFilter<$PrismaModel> _min?: NestedDateTimeNullableFilter<$PrismaModel> _max?: NestedDateTimeNullableFilter<$PrismaModel> } export type NestedEnumRoleWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.Role | EnumRoleFieldRefInput<$PrismaModel> in?: $Enums.Role[] | ListEnumRoleFieldRefInput<$PrismaModel> notIn?: $Enums.Role[] | ListEnumRoleFieldRefInput<$PrismaModel> not?: NestedEnumRoleWithAggregatesFilter<$PrismaModel> | $Enums.Role _count?: NestedIntFilter<$PrismaModel> _min?: NestedEnumRoleFilter<$PrismaModel> _max?: NestedEnumRoleFilter<$PrismaModel> } export type NestedDateTimeWithAggregatesFilter<$PrismaModel = never> = { equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> not?: NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string _count?: NestedIntFilter<$PrismaModel> _min?: NestedDateTimeFilter<$PrismaModel> _max?: NestedDateTimeFilter<$PrismaModel> } export type NestedIntNullableWithAggregatesFilter<$PrismaModel = never> = { equals?: number | IntFieldRefInput<$PrismaModel> | null in?: number[] | ListIntFieldRefInput<$PrismaModel> | null notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null lt?: number | IntFieldRefInput<$PrismaModel> lte?: number | IntFieldRefInput<$PrismaModel> gt?: number | IntFieldRefInput<$PrismaModel> gte?: number | IntFieldRefInput<$PrismaModel> not?: NestedIntNullableWithAggregatesFilter<$PrismaModel> | number | null _count?: NestedIntNullableFilter<$PrismaModel> _avg?: NestedFloatNullableFilter<$PrismaModel> _sum?: NestedIntNullableFilter<$PrismaModel> _min?: NestedIntNullableFilter<$PrismaModel> _max?: NestedIntNullableFilter<$PrismaModel> } export type NestedFloatNullableFilter<$PrismaModel = never> = { equals?: number | FloatFieldRefInput<$PrismaModel> | null in?: number[] | ListFloatFieldRefInput<$PrismaModel> | null notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> | null lt?: number | FloatFieldRefInput<$PrismaModel> lte?: number | FloatFieldRefInput<$PrismaModel> gt?: number | FloatFieldRefInput<$PrismaModel> gte?: number | FloatFieldRefInput<$PrismaModel> not?: NestedFloatNullableFilter<$PrismaModel> | number | null } export type NestedEnumCourseCategoryFilter<$PrismaModel = never> = { equals?: $Enums.CourseCategory | EnumCourseCategoryFieldRefInput<$PrismaModel> in?: $Enums.CourseCategory[] | ListEnumCourseCategoryFieldRefInput<$PrismaModel> notIn?: $Enums.CourseCategory[] | ListEnumCourseCategoryFieldRefInput<$PrismaModel> not?: NestedEnumCourseCategoryFilter<$PrismaModel> | $Enums.CourseCategory } export type NestedEnumCourseLevelFilter<$PrismaModel = never> = { equals?: $Enums.CourseLevel | EnumCourseLevelFieldRefInput<$PrismaModel> in?: $Enums.CourseLevel[] | ListEnumCourseLevelFieldRefInput<$PrismaModel> notIn?: $Enums.CourseLevel[] | ListEnumCourseLevelFieldRefInput<$PrismaModel> not?: NestedEnumCourseLevelFilter<$PrismaModel> | $Enums.CourseLevel } export type NestedBoolFilter<$PrismaModel = never> = { equals?: boolean | BooleanFieldRefInput<$PrismaModel> not?: NestedBoolFilter<$PrismaModel> | boolean } export type NestedEnumCourseCategoryWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.CourseCategory | EnumCourseCategoryFieldRefInput<$PrismaModel> in?: $Enums.CourseCategory[] | ListEnumCourseCategoryFieldRefInput<$PrismaModel> notIn?: $Enums.CourseCategory[] | ListEnumCourseCategoryFieldRefInput<$PrismaModel> not?: NestedEnumCourseCategoryWithAggregatesFilter<$PrismaModel> | $Enums.CourseCategory _count?: NestedIntFilter<$PrismaModel> _min?: NestedEnumCourseCategoryFilter<$PrismaModel> _max?: NestedEnumCourseCategoryFilter<$PrismaModel> } export type NestedEnumCourseLevelWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.CourseLevel | EnumCourseLevelFieldRefInput<$PrismaModel> in?: $Enums.CourseLevel[] | ListEnumCourseLevelFieldRefInput<$PrismaModel> notIn?: $Enums.CourseLevel[] | ListEnumCourseLevelFieldRefInput<$PrismaModel> not?: NestedEnumCourseLevelWithAggregatesFilter<$PrismaModel> | $Enums.CourseLevel _count?: NestedIntFilter<$PrismaModel> _min?: NestedEnumCourseLevelFilter<$PrismaModel> _max?: NestedEnumCourseLevelFilter<$PrismaModel> } export type NestedBoolWithAggregatesFilter<$PrismaModel = never> = { equals?: boolean | BooleanFieldRefInput<$PrismaModel> not?: NestedBoolWithAggregatesFilter<$PrismaModel> | boolean _count?: NestedIntFilter<$PrismaModel> _min?: NestedBoolFilter<$PrismaModel> _max?: NestedBoolFilter<$PrismaModel> } export type NestedIntWithAggregatesFilter<$PrismaModel = never> = { equals?: number | IntFieldRefInput<$PrismaModel> in?: number[] | ListIntFieldRefInput<$PrismaModel> notIn?: number[] | ListIntFieldRefInput<$PrismaModel> lt?: number | IntFieldRefInput<$PrismaModel> lte?: number | IntFieldRefInput<$PrismaModel> gt?: number | IntFieldRefInput<$PrismaModel> gte?: number | IntFieldRefInput<$PrismaModel> not?: NestedIntWithAggregatesFilter<$PrismaModel> | number _count?: NestedIntFilter<$PrismaModel> _avg?: NestedFloatFilter<$PrismaModel> _sum?: NestedIntFilter<$PrismaModel> _min?: NestedIntFilter<$PrismaModel> _max?: NestedIntFilter<$PrismaModel> } export type NestedFloatFilter<$PrismaModel = never> = { equals?: number | FloatFieldRefInput<$PrismaModel> in?: number[] | ListFloatFieldRefInput<$PrismaModel> notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> lt?: number | FloatFieldRefInput<$PrismaModel> lte?: number | FloatFieldRefInput<$PrismaModel> gt?: number | FloatFieldRefInput<$PrismaModel> gte?: number | FloatFieldRefInput<$PrismaModel> not?: NestedFloatFilter<$PrismaModel> | number } export type NestedEnumLessonTypeFilter<$PrismaModel = never> = { equals?: $Enums.LessonType | EnumLessonTypeFieldRefInput<$PrismaModel> in?: $Enums.LessonType[] | ListEnumLessonTypeFieldRefInput<$PrismaModel> notIn?: $Enums.LessonType[] | ListEnumLessonTypeFieldRefInput<$PrismaModel> not?: NestedEnumLessonTypeFilter<$PrismaModel> | $Enums.LessonType } export type NestedEnumLessonTypeWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.LessonType | EnumLessonTypeFieldRefInput<$PrismaModel> in?: $Enums.LessonType[] | ListEnumLessonTypeFieldRefInput<$PrismaModel> notIn?: $Enums.LessonType[] | ListEnumLessonTypeFieldRefInput<$PrismaModel> not?: NestedEnumLessonTypeWithAggregatesFilter<$PrismaModel> | $Enums.LessonType _count?: NestedIntFilter<$PrismaModel> _min?: NestedEnumLessonTypeFilter<$PrismaModel> _max?: NestedEnumLessonTypeFilter<$PrismaModel> } export type AccountCreateWithoutUserInput = { id?: string type: string provider: string providerAccountId: string refresh_token?: string | null access_token?: string | null expires_at?: number | null token_type?: string | null scope?: string | null id_token?: string | null session_state?: string | null } export type AccountUncheckedCreateWithoutUserInput = { id?: string type: string provider: string providerAccountId: string refresh_token?: string | null access_token?: string | null expires_at?: number | null token_type?: string | null scope?: string | null id_token?: string | null session_state?: string | null } export type AccountCreateOrConnectWithoutUserInput = { where: AccountWhereUniqueInput create: XOR } export type AccountCreateManyUserInputEnvelope = { data: AccountCreateManyUserInput | AccountCreateManyUserInput[] skipDuplicates?: boolean } export type SessionCreateWithoutUserInput = { id?: string sessionToken: string expires: Date | string } export type SessionUncheckedCreateWithoutUserInput = { id?: string sessionToken: string expires: Date | string } export type SessionCreateOrConnectWithoutUserInput = { where: SessionWhereUniqueInput create: XOR } export type SessionCreateManyUserInputEnvelope = { data: SessionCreateManyUserInput | SessionCreateManyUserInput[] skipDuplicates?: boolean } export type EnrollmentCreateWithoutUserInput = { id?: string enrolledAt?: Date | string completedAt?: Date | string | null course: CourseCreateNestedOneWithoutEnrollmentsInput } export type EnrollmentUncheckedCreateWithoutUserInput = { id?: string courseId: string enrolledAt?: Date | string completedAt?: Date | string | null } export type EnrollmentCreateOrConnectWithoutUserInput = { where: EnrollmentWhereUniqueInput create: XOR } export type EnrollmentCreateManyUserInputEnvelope = { data: EnrollmentCreateManyUserInput | EnrollmentCreateManyUserInput[] skipDuplicates?: boolean } export type LessonProgressCreateWithoutUserInput = { id?: string completedAt?: Date | string lesson: LessonCreateNestedOneWithoutLessonProgressInput } export type LessonProgressUncheckedCreateWithoutUserInput = { id?: string lessonId: string completedAt?: Date | string } export type LessonProgressCreateOrConnectWithoutUserInput = { where: LessonProgressWhereUniqueInput create: XOR } export type LessonProgressCreateManyUserInputEnvelope = { data: LessonProgressCreateManyUserInput | LessonProgressCreateManyUserInput[] skipDuplicates?: boolean } export type QuizAttemptCreateWithoutUserInput = { id?: string score: number passed: boolean answers?: QuizAttemptCreateanswersInput | number[] completedAt?: Date | string quiz: QuizCreateNestedOneWithoutAttemptsInput } export type QuizAttemptUncheckedCreateWithoutUserInput = { id?: string quizId: string score: number passed: boolean answers?: QuizAttemptCreateanswersInput | number[] completedAt?: Date | string } export type QuizAttemptCreateOrConnectWithoutUserInput = { where: QuizAttemptWhereUniqueInput create: XOR } export type QuizAttemptCreateManyUserInputEnvelope = { data: QuizAttemptCreateManyUserInput | QuizAttemptCreateManyUserInput[] skipDuplicates?: boolean } export type CertificateCreateWithoutUserInput = { id?: string issuedAt?: Date | string pdfUrl?: string | null isPaid?: boolean course: CourseCreateNestedOneWithoutCertificatesInput } export type CertificateUncheckedCreateWithoutUserInput = { id?: string courseId: string issuedAt?: Date | string pdfUrl?: string | null isPaid?: boolean } export type CertificateCreateOrConnectWithoutUserInput = { where: CertificateWhereUniqueInput create: XOR } export type CertificateCreateManyUserInputEnvelope = { data: CertificateCreateManyUserInput | CertificateCreateManyUserInput[] skipDuplicates?: boolean } export type AccountUpsertWithWhereUniqueWithoutUserInput = { where: AccountWhereUniqueInput update: XOR create: XOR } export type AccountUpdateWithWhereUniqueWithoutUserInput = { where: AccountWhereUniqueInput data: XOR } export type AccountUpdateManyWithWhereWithoutUserInput = { where: AccountScalarWhereInput data: XOR } export type AccountScalarWhereInput = { AND?: AccountScalarWhereInput | AccountScalarWhereInput[] OR?: AccountScalarWhereInput[] NOT?: AccountScalarWhereInput | AccountScalarWhereInput[] id?: StringFilter<"Account"> | string userId?: StringFilter<"Account"> | string type?: StringFilter<"Account"> | string provider?: StringFilter<"Account"> | string providerAccountId?: StringFilter<"Account"> | string refresh_token?: StringNullableFilter<"Account"> | string | null access_token?: StringNullableFilter<"Account"> | string | null expires_at?: IntNullableFilter<"Account"> | number | null token_type?: StringNullableFilter<"Account"> | string | null scope?: StringNullableFilter<"Account"> | string | null id_token?: StringNullableFilter<"Account"> | string | null session_state?: StringNullableFilter<"Account"> | string | null } export type SessionUpsertWithWhereUniqueWithoutUserInput = { where: SessionWhereUniqueInput update: XOR create: XOR } export type SessionUpdateWithWhereUniqueWithoutUserInput = { where: SessionWhereUniqueInput data: XOR } export type SessionUpdateManyWithWhereWithoutUserInput = { where: SessionScalarWhereInput data: XOR } export type SessionScalarWhereInput = { AND?: SessionScalarWhereInput | SessionScalarWhereInput[] OR?: SessionScalarWhereInput[] NOT?: SessionScalarWhereInput | SessionScalarWhereInput[] id?: StringFilter<"Session"> | string sessionToken?: StringFilter<"Session"> | string userId?: StringFilter<"Session"> | string expires?: DateTimeFilter<"Session"> | Date | string } export type EnrollmentUpsertWithWhereUniqueWithoutUserInput = { where: EnrollmentWhereUniqueInput update: XOR create: XOR } export type EnrollmentUpdateWithWhereUniqueWithoutUserInput = { where: EnrollmentWhereUniqueInput data: XOR } export type EnrollmentUpdateManyWithWhereWithoutUserInput = { where: EnrollmentScalarWhereInput data: XOR } export type EnrollmentScalarWhereInput = { AND?: EnrollmentScalarWhereInput | EnrollmentScalarWhereInput[] OR?: EnrollmentScalarWhereInput[] NOT?: EnrollmentScalarWhereInput | EnrollmentScalarWhereInput[] id?: StringFilter<"Enrollment"> | string userId?: StringFilter<"Enrollment"> | string courseId?: StringFilter<"Enrollment"> | string enrolledAt?: DateTimeFilter<"Enrollment"> | Date | string completedAt?: DateTimeNullableFilter<"Enrollment"> | Date | string | null } export type LessonProgressUpsertWithWhereUniqueWithoutUserInput = { where: LessonProgressWhereUniqueInput update: XOR create: XOR } export type LessonProgressUpdateWithWhereUniqueWithoutUserInput = { where: LessonProgressWhereUniqueInput data: XOR } export type LessonProgressUpdateManyWithWhereWithoutUserInput = { where: LessonProgressScalarWhereInput data: XOR } export type LessonProgressScalarWhereInput = { AND?: LessonProgressScalarWhereInput | LessonProgressScalarWhereInput[] OR?: LessonProgressScalarWhereInput[] NOT?: LessonProgressScalarWhereInput | LessonProgressScalarWhereInput[] id?: StringFilter<"LessonProgress"> | string userId?: StringFilter<"LessonProgress"> | string lessonId?: StringFilter<"LessonProgress"> | string completedAt?: DateTimeFilter<"LessonProgress"> | Date | string } export type QuizAttemptUpsertWithWhereUniqueWithoutUserInput = { where: QuizAttemptWhereUniqueInput update: XOR create: XOR } export type QuizAttemptUpdateWithWhereUniqueWithoutUserInput = { where: QuizAttemptWhereUniqueInput data: XOR } export type QuizAttemptUpdateManyWithWhereWithoutUserInput = { where: QuizAttemptScalarWhereInput data: XOR } export type QuizAttemptScalarWhereInput = { AND?: QuizAttemptScalarWhereInput | QuizAttemptScalarWhereInput[] OR?: QuizAttemptScalarWhereInput[] NOT?: QuizAttemptScalarWhereInput | QuizAttemptScalarWhereInput[] id?: StringFilter<"QuizAttempt"> | string userId?: StringFilter<"QuizAttempt"> | string quizId?: StringFilter<"QuizAttempt"> | string score?: IntFilter<"QuizAttempt"> | number passed?: BoolFilter<"QuizAttempt"> | boolean answers?: IntNullableListFilter<"QuizAttempt"> completedAt?: DateTimeFilter<"QuizAttempt"> | Date | string } export type CertificateUpsertWithWhereUniqueWithoutUserInput = { where: CertificateWhereUniqueInput update: XOR create: XOR } export type CertificateUpdateWithWhereUniqueWithoutUserInput = { where: CertificateWhereUniqueInput data: XOR } export type CertificateUpdateManyWithWhereWithoutUserInput = { where: CertificateScalarWhereInput data: XOR } export type CertificateScalarWhereInput = { AND?: CertificateScalarWhereInput | CertificateScalarWhereInput[] OR?: CertificateScalarWhereInput[] NOT?: CertificateScalarWhereInput | CertificateScalarWhereInput[] id?: StringFilter<"Certificate"> | string userId?: StringFilter<"Certificate"> | string courseId?: StringFilter<"Certificate"> | string issuedAt?: DateTimeFilter<"Certificate"> | Date | string pdfUrl?: StringNullableFilter<"Certificate"> | string | null isPaid?: BoolFilter<"Certificate"> | boolean } export type UserCreateWithoutAccountsInput = { id?: string email: string name?: string | null image?: string | null emailVerified?: Date | string | null locale?: string role?: $Enums.Role createdAt?: Date | string sessions?: SessionCreateNestedManyWithoutUserInput enrollments?: EnrollmentCreateNestedManyWithoutUserInput lessonProgress?: LessonProgressCreateNestedManyWithoutUserInput quizAttempts?: QuizAttemptCreateNestedManyWithoutUserInput certificates?: CertificateCreateNestedManyWithoutUserInput } export type UserUncheckedCreateWithoutAccountsInput = { id?: string email: string name?: string | null image?: string | null emailVerified?: Date | string | null locale?: string role?: $Enums.Role createdAt?: Date | string sessions?: SessionUncheckedCreateNestedManyWithoutUserInput enrollments?: EnrollmentUncheckedCreateNestedManyWithoutUserInput lessonProgress?: LessonProgressUncheckedCreateNestedManyWithoutUserInput quizAttempts?: QuizAttemptUncheckedCreateNestedManyWithoutUserInput certificates?: CertificateUncheckedCreateNestedManyWithoutUserInput } export type UserCreateOrConnectWithoutAccountsInput = { where: UserWhereUniqueInput create: XOR } export type UserUpsertWithoutAccountsInput = { update: XOR create: XOR where?: UserWhereInput } export type UserUpdateToOneWithWhereWithoutAccountsInput = { where?: UserWhereInput data: XOR } export type UserUpdateWithoutAccountsInput = { id?: StringFieldUpdateOperationsInput | string email?: StringFieldUpdateOperationsInput | string name?: NullableStringFieldUpdateOperationsInput | string | null image?: NullableStringFieldUpdateOperationsInput | string | null emailVerified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null locale?: StringFieldUpdateOperationsInput | string role?: EnumRoleFieldUpdateOperationsInput | $Enums.Role createdAt?: DateTimeFieldUpdateOperationsInput | Date | string sessions?: SessionUpdateManyWithoutUserNestedInput enrollments?: EnrollmentUpdateManyWithoutUserNestedInput lessonProgress?: LessonProgressUpdateManyWithoutUserNestedInput quizAttempts?: QuizAttemptUpdateManyWithoutUserNestedInput certificates?: CertificateUpdateManyWithoutUserNestedInput } export type UserUncheckedUpdateWithoutAccountsInput = { id?: StringFieldUpdateOperationsInput | string email?: StringFieldUpdateOperationsInput | string name?: NullableStringFieldUpdateOperationsInput | string | null image?: NullableStringFieldUpdateOperationsInput | string | null emailVerified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null locale?: StringFieldUpdateOperationsInput | string role?: EnumRoleFieldUpdateOperationsInput | $Enums.Role createdAt?: DateTimeFieldUpdateOperationsInput | Date | string sessions?: SessionUncheckedUpdateManyWithoutUserNestedInput enrollments?: EnrollmentUncheckedUpdateManyWithoutUserNestedInput lessonProgress?: LessonProgressUncheckedUpdateManyWithoutUserNestedInput quizAttempts?: QuizAttemptUncheckedUpdateManyWithoutUserNestedInput certificates?: CertificateUncheckedUpdateManyWithoutUserNestedInput } export type UserCreateWithoutSessionsInput = { id?: string email: string name?: string | null image?: string | null emailVerified?: Date | string | null locale?: string role?: $Enums.Role createdAt?: Date | string accounts?: AccountCreateNestedManyWithoutUserInput enrollments?: EnrollmentCreateNestedManyWithoutUserInput lessonProgress?: LessonProgressCreateNestedManyWithoutUserInput quizAttempts?: QuizAttemptCreateNestedManyWithoutUserInput certificates?: CertificateCreateNestedManyWithoutUserInput } export type UserUncheckedCreateWithoutSessionsInput = { id?: string email: string name?: string | null image?: string | null emailVerified?: Date | string | null locale?: string role?: $Enums.Role createdAt?: Date | string accounts?: AccountUncheckedCreateNestedManyWithoutUserInput enrollments?: EnrollmentUncheckedCreateNestedManyWithoutUserInput lessonProgress?: LessonProgressUncheckedCreateNestedManyWithoutUserInput quizAttempts?: QuizAttemptUncheckedCreateNestedManyWithoutUserInput certificates?: CertificateUncheckedCreateNestedManyWithoutUserInput } export type UserCreateOrConnectWithoutSessionsInput = { where: UserWhereUniqueInput create: XOR } export type UserUpsertWithoutSessionsInput = { update: XOR create: XOR where?: UserWhereInput } export type UserUpdateToOneWithWhereWithoutSessionsInput = { where?: UserWhereInput data: XOR } export type UserUpdateWithoutSessionsInput = { id?: StringFieldUpdateOperationsInput | string email?: StringFieldUpdateOperationsInput | string name?: NullableStringFieldUpdateOperationsInput | string | null image?: NullableStringFieldUpdateOperationsInput | string | null emailVerified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null locale?: StringFieldUpdateOperationsInput | string role?: EnumRoleFieldUpdateOperationsInput | $Enums.Role createdAt?: DateTimeFieldUpdateOperationsInput | Date | string accounts?: AccountUpdateManyWithoutUserNestedInput enrollments?: EnrollmentUpdateManyWithoutUserNestedInput lessonProgress?: LessonProgressUpdateManyWithoutUserNestedInput quizAttempts?: QuizAttemptUpdateManyWithoutUserNestedInput certificates?: CertificateUpdateManyWithoutUserNestedInput } export type UserUncheckedUpdateWithoutSessionsInput = { id?: StringFieldUpdateOperationsInput | string email?: StringFieldUpdateOperationsInput | string name?: NullableStringFieldUpdateOperationsInput | string | null image?: NullableStringFieldUpdateOperationsInput | string | null emailVerified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null locale?: StringFieldUpdateOperationsInput | string role?: EnumRoleFieldUpdateOperationsInput | $Enums.Role createdAt?: DateTimeFieldUpdateOperationsInput | Date | string accounts?: AccountUncheckedUpdateManyWithoutUserNestedInput enrollments?: EnrollmentUncheckedUpdateManyWithoutUserNestedInput lessonProgress?: LessonProgressUncheckedUpdateManyWithoutUserNestedInput quizAttempts?: QuizAttemptUncheckedUpdateManyWithoutUserNestedInput certificates?: CertificateUncheckedUpdateManyWithoutUserNestedInput } export type ModuleCreateWithoutCourseInput = { id?: string order?: number titleFr: string titleEn: string titleEs: string lessons?: LessonCreateNestedManyWithoutModuleInput quiz?: QuizCreateNestedOneWithoutModuleInput } export type ModuleUncheckedCreateWithoutCourseInput = { id?: string order?: number titleFr: string titleEn: string titleEs: string lessons?: LessonUncheckedCreateNestedManyWithoutModuleInput quiz?: QuizUncheckedCreateNestedOneWithoutModuleInput } export type ModuleCreateOrConnectWithoutCourseInput = { where: ModuleWhereUniqueInput create: XOR } export type ModuleCreateManyCourseInputEnvelope = { data: ModuleCreateManyCourseInput | ModuleCreateManyCourseInput[] skipDuplicates?: boolean } export type EnrollmentCreateWithoutCourseInput = { id?: string enrolledAt?: Date | string completedAt?: Date | string | null user: UserCreateNestedOneWithoutEnrollmentsInput } export type EnrollmentUncheckedCreateWithoutCourseInput = { id?: string userId: string enrolledAt?: Date | string completedAt?: Date | string | null } export type EnrollmentCreateOrConnectWithoutCourseInput = { where: EnrollmentWhereUniqueInput create: XOR } export type EnrollmentCreateManyCourseInputEnvelope = { data: EnrollmentCreateManyCourseInput | EnrollmentCreateManyCourseInput[] skipDuplicates?: boolean } export type CertificateCreateWithoutCourseInput = { id?: string issuedAt?: Date | string pdfUrl?: string | null isPaid?: boolean user: UserCreateNestedOneWithoutCertificatesInput } export type CertificateUncheckedCreateWithoutCourseInput = { id?: string userId: string issuedAt?: Date | string pdfUrl?: string | null isPaid?: boolean } export type CertificateCreateOrConnectWithoutCourseInput = { where: CertificateWhereUniqueInput create: XOR } export type CertificateCreateManyCourseInputEnvelope = { data: CertificateCreateManyCourseInput | CertificateCreateManyCourseInput[] skipDuplicates?: boolean } export type ModuleUpsertWithWhereUniqueWithoutCourseInput = { where: ModuleWhereUniqueInput update: XOR create: XOR } export type ModuleUpdateWithWhereUniqueWithoutCourseInput = { where: ModuleWhereUniqueInput data: XOR } export type ModuleUpdateManyWithWhereWithoutCourseInput = { where: ModuleScalarWhereInput data: XOR } export type ModuleScalarWhereInput = { AND?: ModuleScalarWhereInput | ModuleScalarWhereInput[] OR?: ModuleScalarWhereInput[] NOT?: ModuleScalarWhereInput | ModuleScalarWhereInput[] id?: StringFilter<"Module"> | string courseId?: StringFilter<"Module"> | string order?: IntFilter<"Module"> | number titleFr?: StringFilter<"Module"> | string titleEn?: StringFilter<"Module"> | string titleEs?: StringFilter<"Module"> | string } export type EnrollmentUpsertWithWhereUniqueWithoutCourseInput = { where: EnrollmentWhereUniqueInput update: XOR create: XOR } export type EnrollmentUpdateWithWhereUniqueWithoutCourseInput = { where: EnrollmentWhereUniqueInput data: XOR } export type EnrollmentUpdateManyWithWhereWithoutCourseInput = { where: EnrollmentScalarWhereInput data: XOR } export type CertificateUpsertWithWhereUniqueWithoutCourseInput = { where: CertificateWhereUniqueInput update: XOR create: XOR } export type CertificateUpdateWithWhereUniqueWithoutCourseInput = { where: CertificateWhereUniqueInput data: XOR } export type CertificateUpdateManyWithWhereWithoutCourseInput = { where: CertificateScalarWhereInput data: XOR } export type CourseCreateWithoutModulesInput = { id?: string slug: string category?: $Enums.CourseCategory level?: $Enums.CourseLevel thumbnailUrl?: string | null published?: boolean order?: number createdAt?: Date | string titleFr: string titleEn: string titleEs: string descFr: string descEn: string descEs: string enrollments?: EnrollmentCreateNestedManyWithoutCourseInput certificates?: CertificateCreateNestedManyWithoutCourseInput } export type CourseUncheckedCreateWithoutModulesInput = { id?: string slug: string category?: $Enums.CourseCategory level?: $Enums.CourseLevel thumbnailUrl?: string | null published?: boolean order?: number createdAt?: Date | string titleFr: string titleEn: string titleEs: string descFr: string descEn: string descEs: string enrollments?: EnrollmentUncheckedCreateNestedManyWithoutCourseInput certificates?: CertificateUncheckedCreateNestedManyWithoutCourseInput } export type CourseCreateOrConnectWithoutModulesInput = { where: CourseWhereUniqueInput create: XOR } export type LessonCreateWithoutModuleInput = { id?: string order?: number type?: $Enums.LessonType videoUrl?: string | null duration?: number | null titleFr: string titleEn: string titleEs: string contentFr?: string | null contentEn?: string | null contentEs?: string | null lessonProgress?: LessonProgressCreateNestedManyWithoutLessonInput } export type LessonUncheckedCreateWithoutModuleInput = { id?: string order?: number type?: $Enums.LessonType videoUrl?: string | null duration?: number | null titleFr: string titleEn: string titleEs: string contentFr?: string | null contentEn?: string | null contentEs?: string | null lessonProgress?: LessonProgressUncheckedCreateNestedManyWithoutLessonInput } export type LessonCreateOrConnectWithoutModuleInput = { where: LessonWhereUniqueInput create: XOR } export type LessonCreateManyModuleInputEnvelope = { data: LessonCreateManyModuleInput | LessonCreateManyModuleInput[] skipDuplicates?: boolean } export type QuizCreateWithoutModuleInput = { id?: string passMark?: number questions?: QuestionCreateNestedManyWithoutQuizInput attempts?: QuizAttemptCreateNestedManyWithoutQuizInput } export type QuizUncheckedCreateWithoutModuleInput = { id?: string passMark?: number questions?: QuestionUncheckedCreateNestedManyWithoutQuizInput attempts?: QuizAttemptUncheckedCreateNestedManyWithoutQuizInput } export type QuizCreateOrConnectWithoutModuleInput = { where: QuizWhereUniqueInput create: XOR } export type CourseUpsertWithoutModulesInput = { update: XOR create: XOR where?: CourseWhereInput } export type CourseUpdateToOneWithWhereWithoutModulesInput = { where?: CourseWhereInput data: XOR } export type CourseUpdateWithoutModulesInput = { id?: StringFieldUpdateOperationsInput | string slug?: StringFieldUpdateOperationsInput | string category?: EnumCourseCategoryFieldUpdateOperationsInput | $Enums.CourseCategory level?: EnumCourseLevelFieldUpdateOperationsInput | $Enums.CourseLevel thumbnailUrl?: NullableStringFieldUpdateOperationsInput | string | null published?: BoolFieldUpdateOperationsInput | boolean order?: IntFieldUpdateOperationsInput | number createdAt?: DateTimeFieldUpdateOperationsInput | Date | string titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string descFr?: StringFieldUpdateOperationsInput | string descEn?: StringFieldUpdateOperationsInput | string descEs?: StringFieldUpdateOperationsInput | string enrollments?: EnrollmentUpdateManyWithoutCourseNestedInput certificates?: CertificateUpdateManyWithoutCourseNestedInput } export type CourseUncheckedUpdateWithoutModulesInput = { id?: StringFieldUpdateOperationsInput | string slug?: StringFieldUpdateOperationsInput | string category?: EnumCourseCategoryFieldUpdateOperationsInput | $Enums.CourseCategory level?: EnumCourseLevelFieldUpdateOperationsInput | $Enums.CourseLevel thumbnailUrl?: NullableStringFieldUpdateOperationsInput | string | null published?: BoolFieldUpdateOperationsInput | boolean order?: IntFieldUpdateOperationsInput | number createdAt?: DateTimeFieldUpdateOperationsInput | Date | string titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string descFr?: StringFieldUpdateOperationsInput | string descEn?: StringFieldUpdateOperationsInput | string descEs?: StringFieldUpdateOperationsInput | string enrollments?: EnrollmentUncheckedUpdateManyWithoutCourseNestedInput certificates?: CertificateUncheckedUpdateManyWithoutCourseNestedInput } export type LessonUpsertWithWhereUniqueWithoutModuleInput = { where: LessonWhereUniqueInput update: XOR create: XOR } export type LessonUpdateWithWhereUniqueWithoutModuleInput = { where: LessonWhereUniqueInput data: XOR } export type LessonUpdateManyWithWhereWithoutModuleInput = { where: LessonScalarWhereInput data: XOR } export type LessonScalarWhereInput = { AND?: LessonScalarWhereInput | LessonScalarWhereInput[] OR?: LessonScalarWhereInput[] NOT?: LessonScalarWhereInput | LessonScalarWhereInput[] id?: StringFilter<"Lesson"> | string moduleId?: StringFilter<"Lesson"> | string order?: IntFilter<"Lesson"> | number type?: EnumLessonTypeFilter<"Lesson"> | $Enums.LessonType videoUrl?: StringNullableFilter<"Lesson"> | string | null duration?: IntNullableFilter<"Lesson"> | number | null titleFr?: StringFilter<"Lesson"> | string titleEn?: StringFilter<"Lesson"> | string titleEs?: StringFilter<"Lesson"> | string contentFr?: StringNullableFilter<"Lesson"> | string | null contentEn?: StringNullableFilter<"Lesson"> | string | null contentEs?: StringNullableFilter<"Lesson"> | string | null } export type QuizUpsertWithoutModuleInput = { update: XOR create: XOR where?: QuizWhereInput } export type QuizUpdateToOneWithWhereWithoutModuleInput = { where?: QuizWhereInput data: XOR } export type QuizUpdateWithoutModuleInput = { id?: StringFieldUpdateOperationsInput | string passMark?: IntFieldUpdateOperationsInput | number questions?: QuestionUpdateManyWithoutQuizNestedInput attempts?: QuizAttemptUpdateManyWithoutQuizNestedInput } export type QuizUncheckedUpdateWithoutModuleInput = { id?: StringFieldUpdateOperationsInput | string passMark?: IntFieldUpdateOperationsInput | number questions?: QuestionUncheckedUpdateManyWithoutQuizNestedInput attempts?: QuizAttemptUncheckedUpdateManyWithoutQuizNestedInput } export type ModuleCreateWithoutLessonsInput = { id?: string order?: number titleFr: string titleEn: string titleEs: string course: CourseCreateNestedOneWithoutModulesInput quiz?: QuizCreateNestedOneWithoutModuleInput } export type ModuleUncheckedCreateWithoutLessonsInput = { id?: string courseId: string order?: number titleFr: string titleEn: string titleEs: string quiz?: QuizUncheckedCreateNestedOneWithoutModuleInput } export type ModuleCreateOrConnectWithoutLessonsInput = { where: ModuleWhereUniqueInput create: XOR } export type LessonProgressCreateWithoutLessonInput = { id?: string completedAt?: Date | string user: UserCreateNestedOneWithoutLessonProgressInput } export type LessonProgressUncheckedCreateWithoutLessonInput = { id?: string userId: string completedAt?: Date | string } export type LessonProgressCreateOrConnectWithoutLessonInput = { where: LessonProgressWhereUniqueInput create: XOR } export type LessonProgressCreateManyLessonInputEnvelope = { data: LessonProgressCreateManyLessonInput | LessonProgressCreateManyLessonInput[] skipDuplicates?: boolean } export type ModuleUpsertWithoutLessonsInput = { update: XOR create: XOR where?: ModuleWhereInput } export type ModuleUpdateToOneWithWhereWithoutLessonsInput = { where?: ModuleWhereInput data: XOR } export type ModuleUpdateWithoutLessonsInput = { id?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string course?: CourseUpdateOneRequiredWithoutModulesNestedInput quiz?: QuizUpdateOneWithoutModuleNestedInput } export type ModuleUncheckedUpdateWithoutLessonsInput = { id?: StringFieldUpdateOperationsInput | string courseId?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string quiz?: QuizUncheckedUpdateOneWithoutModuleNestedInput } export type LessonProgressUpsertWithWhereUniqueWithoutLessonInput = { where: LessonProgressWhereUniqueInput update: XOR create: XOR } export type LessonProgressUpdateWithWhereUniqueWithoutLessonInput = { where: LessonProgressWhereUniqueInput data: XOR } export type LessonProgressUpdateManyWithWhereWithoutLessonInput = { where: LessonProgressScalarWhereInput data: XOR } export type ModuleCreateWithoutQuizInput = { id?: string order?: number titleFr: string titleEn: string titleEs: string course: CourseCreateNestedOneWithoutModulesInput lessons?: LessonCreateNestedManyWithoutModuleInput } export type ModuleUncheckedCreateWithoutQuizInput = { id?: string courseId: string order?: number titleFr: string titleEn: string titleEs: string lessons?: LessonUncheckedCreateNestedManyWithoutModuleInput } export type ModuleCreateOrConnectWithoutQuizInput = { where: ModuleWhereUniqueInput create: XOR } export type QuestionCreateWithoutQuizInput = { id?: string order?: number textFr: string textEn: string textEs: string optionsFr?: QuestionCreateoptionsFrInput | string[] optionsEn?: QuestionCreateoptionsEnInput | string[] optionsEs?: QuestionCreateoptionsEsInput | string[] correctIndex: number } export type QuestionUncheckedCreateWithoutQuizInput = { id?: string order?: number textFr: string textEn: string textEs: string optionsFr?: QuestionCreateoptionsFrInput | string[] optionsEn?: QuestionCreateoptionsEnInput | string[] optionsEs?: QuestionCreateoptionsEsInput | string[] correctIndex: number } export type QuestionCreateOrConnectWithoutQuizInput = { where: QuestionWhereUniqueInput create: XOR } export type QuestionCreateManyQuizInputEnvelope = { data: QuestionCreateManyQuizInput | QuestionCreateManyQuizInput[] skipDuplicates?: boolean } export type QuizAttemptCreateWithoutQuizInput = { id?: string score: number passed: boolean answers?: QuizAttemptCreateanswersInput | number[] completedAt?: Date | string user: UserCreateNestedOneWithoutQuizAttemptsInput } export type QuizAttemptUncheckedCreateWithoutQuizInput = { id?: string userId: string score: number passed: boolean answers?: QuizAttemptCreateanswersInput | number[] completedAt?: Date | string } export type QuizAttemptCreateOrConnectWithoutQuizInput = { where: QuizAttemptWhereUniqueInput create: XOR } export type QuizAttemptCreateManyQuizInputEnvelope = { data: QuizAttemptCreateManyQuizInput | QuizAttemptCreateManyQuizInput[] skipDuplicates?: boolean } export type ModuleUpsertWithoutQuizInput = { update: XOR create: XOR where?: ModuleWhereInput } export type ModuleUpdateToOneWithWhereWithoutQuizInput = { where?: ModuleWhereInput data: XOR } export type ModuleUpdateWithoutQuizInput = { id?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string course?: CourseUpdateOneRequiredWithoutModulesNestedInput lessons?: LessonUpdateManyWithoutModuleNestedInput } export type ModuleUncheckedUpdateWithoutQuizInput = { id?: StringFieldUpdateOperationsInput | string courseId?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string lessons?: LessonUncheckedUpdateManyWithoutModuleNestedInput } export type QuestionUpsertWithWhereUniqueWithoutQuizInput = { where: QuestionWhereUniqueInput update: XOR create: XOR } export type QuestionUpdateWithWhereUniqueWithoutQuizInput = { where: QuestionWhereUniqueInput data: XOR } export type QuestionUpdateManyWithWhereWithoutQuizInput = { where: QuestionScalarWhereInput data: XOR } export type QuestionScalarWhereInput = { AND?: QuestionScalarWhereInput | QuestionScalarWhereInput[] OR?: QuestionScalarWhereInput[] NOT?: QuestionScalarWhereInput | QuestionScalarWhereInput[] id?: StringFilter<"Question"> | string quizId?: StringFilter<"Question"> | string order?: IntFilter<"Question"> | number textFr?: StringFilter<"Question"> | string textEn?: StringFilter<"Question"> | string textEs?: StringFilter<"Question"> | string optionsFr?: StringNullableListFilter<"Question"> optionsEn?: StringNullableListFilter<"Question"> optionsEs?: StringNullableListFilter<"Question"> correctIndex?: IntFilter<"Question"> | number } export type QuizAttemptUpsertWithWhereUniqueWithoutQuizInput = { where: QuizAttemptWhereUniqueInput update: XOR create: XOR } export type QuizAttemptUpdateWithWhereUniqueWithoutQuizInput = { where: QuizAttemptWhereUniqueInput data: XOR } export type QuizAttemptUpdateManyWithWhereWithoutQuizInput = { where: QuizAttemptScalarWhereInput data: XOR } export type QuizCreateWithoutQuestionsInput = { id?: string passMark?: number module: ModuleCreateNestedOneWithoutQuizInput attempts?: QuizAttemptCreateNestedManyWithoutQuizInput } export type QuizUncheckedCreateWithoutQuestionsInput = { id?: string moduleId: string passMark?: number attempts?: QuizAttemptUncheckedCreateNestedManyWithoutQuizInput } export type QuizCreateOrConnectWithoutQuestionsInput = { where: QuizWhereUniqueInput create: XOR } export type QuizUpsertWithoutQuestionsInput = { update: XOR create: XOR where?: QuizWhereInput } export type QuizUpdateToOneWithWhereWithoutQuestionsInput = { where?: QuizWhereInput data: XOR } export type QuizUpdateWithoutQuestionsInput = { id?: StringFieldUpdateOperationsInput | string passMark?: IntFieldUpdateOperationsInput | number module?: ModuleUpdateOneRequiredWithoutQuizNestedInput attempts?: QuizAttemptUpdateManyWithoutQuizNestedInput } export type QuizUncheckedUpdateWithoutQuestionsInput = { id?: StringFieldUpdateOperationsInput | string moduleId?: StringFieldUpdateOperationsInput | string passMark?: IntFieldUpdateOperationsInput | number attempts?: QuizAttemptUncheckedUpdateManyWithoutQuizNestedInput } export type UserCreateWithoutEnrollmentsInput = { id?: string email: string name?: string | null image?: string | null emailVerified?: Date | string | null locale?: string role?: $Enums.Role createdAt?: Date | string accounts?: AccountCreateNestedManyWithoutUserInput sessions?: SessionCreateNestedManyWithoutUserInput lessonProgress?: LessonProgressCreateNestedManyWithoutUserInput quizAttempts?: QuizAttemptCreateNestedManyWithoutUserInput certificates?: CertificateCreateNestedManyWithoutUserInput } export type UserUncheckedCreateWithoutEnrollmentsInput = { id?: string email: string name?: string | null image?: string | null emailVerified?: Date | string | null locale?: string role?: $Enums.Role createdAt?: Date | string accounts?: AccountUncheckedCreateNestedManyWithoutUserInput sessions?: SessionUncheckedCreateNestedManyWithoutUserInput lessonProgress?: LessonProgressUncheckedCreateNestedManyWithoutUserInput quizAttempts?: QuizAttemptUncheckedCreateNestedManyWithoutUserInput certificates?: CertificateUncheckedCreateNestedManyWithoutUserInput } export type UserCreateOrConnectWithoutEnrollmentsInput = { where: UserWhereUniqueInput create: XOR } export type CourseCreateWithoutEnrollmentsInput = { id?: string slug: string category?: $Enums.CourseCategory level?: $Enums.CourseLevel thumbnailUrl?: string | null published?: boolean order?: number createdAt?: Date | string titleFr: string titleEn: string titleEs: string descFr: string descEn: string descEs: string modules?: ModuleCreateNestedManyWithoutCourseInput certificates?: CertificateCreateNestedManyWithoutCourseInput } export type CourseUncheckedCreateWithoutEnrollmentsInput = { id?: string slug: string category?: $Enums.CourseCategory level?: $Enums.CourseLevel thumbnailUrl?: string | null published?: boolean order?: number createdAt?: Date | string titleFr: string titleEn: string titleEs: string descFr: string descEn: string descEs: string modules?: ModuleUncheckedCreateNestedManyWithoutCourseInput certificates?: CertificateUncheckedCreateNestedManyWithoutCourseInput } export type CourseCreateOrConnectWithoutEnrollmentsInput = { where: CourseWhereUniqueInput create: XOR } export type UserUpsertWithoutEnrollmentsInput = { update: XOR create: XOR where?: UserWhereInput } export type UserUpdateToOneWithWhereWithoutEnrollmentsInput = { where?: UserWhereInput data: XOR } export type UserUpdateWithoutEnrollmentsInput = { id?: StringFieldUpdateOperationsInput | string email?: StringFieldUpdateOperationsInput | string name?: NullableStringFieldUpdateOperationsInput | string | null image?: NullableStringFieldUpdateOperationsInput | string | null emailVerified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null locale?: StringFieldUpdateOperationsInput | string role?: EnumRoleFieldUpdateOperationsInput | $Enums.Role createdAt?: DateTimeFieldUpdateOperationsInput | Date | string accounts?: AccountUpdateManyWithoutUserNestedInput sessions?: SessionUpdateManyWithoutUserNestedInput lessonProgress?: LessonProgressUpdateManyWithoutUserNestedInput quizAttempts?: QuizAttemptUpdateManyWithoutUserNestedInput certificates?: CertificateUpdateManyWithoutUserNestedInput } export type UserUncheckedUpdateWithoutEnrollmentsInput = { id?: StringFieldUpdateOperationsInput | string email?: StringFieldUpdateOperationsInput | string name?: NullableStringFieldUpdateOperationsInput | string | null image?: NullableStringFieldUpdateOperationsInput | string | null emailVerified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null locale?: StringFieldUpdateOperationsInput | string role?: EnumRoleFieldUpdateOperationsInput | $Enums.Role createdAt?: DateTimeFieldUpdateOperationsInput | Date | string accounts?: AccountUncheckedUpdateManyWithoutUserNestedInput sessions?: SessionUncheckedUpdateManyWithoutUserNestedInput lessonProgress?: LessonProgressUncheckedUpdateManyWithoutUserNestedInput quizAttempts?: QuizAttemptUncheckedUpdateManyWithoutUserNestedInput certificates?: CertificateUncheckedUpdateManyWithoutUserNestedInput } export type CourseUpsertWithoutEnrollmentsInput = { update: XOR create: XOR where?: CourseWhereInput } export type CourseUpdateToOneWithWhereWithoutEnrollmentsInput = { where?: CourseWhereInput data: XOR } export type CourseUpdateWithoutEnrollmentsInput = { id?: StringFieldUpdateOperationsInput | string slug?: StringFieldUpdateOperationsInput | string category?: EnumCourseCategoryFieldUpdateOperationsInput | $Enums.CourseCategory level?: EnumCourseLevelFieldUpdateOperationsInput | $Enums.CourseLevel thumbnailUrl?: NullableStringFieldUpdateOperationsInput | string | null published?: BoolFieldUpdateOperationsInput | boolean order?: IntFieldUpdateOperationsInput | number createdAt?: DateTimeFieldUpdateOperationsInput | Date | string titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string descFr?: StringFieldUpdateOperationsInput | string descEn?: StringFieldUpdateOperationsInput | string descEs?: StringFieldUpdateOperationsInput | string modules?: ModuleUpdateManyWithoutCourseNestedInput certificates?: CertificateUpdateManyWithoutCourseNestedInput } export type CourseUncheckedUpdateWithoutEnrollmentsInput = { id?: StringFieldUpdateOperationsInput | string slug?: StringFieldUpdateOperationsInput | string category?: EnumCourseCategoryFieldUpdateOperationsInput | $Enums.CourseCategory level?: EnumCourseLevelFieldUpdateOperationsInput | $Enums.CourseLevel thumbnailUrl?: NullableStringFieldUpdateOperationsInput | string | null published?: BoolFieldUpdateOperationsInput | boolean order?: IntFieldUpdateOperationsInput | number createdAt?: DateTimeFieldUpdateOperationsInput | Date | string titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string descFr?: StringFieldUpdateOperationsInput | string descEn?: StringFieldUpdateOperationsInput | string descEs?: StringFieldUpdateOperationsInput | string modules?: ModuleUncheckedUpdateManyWithoutCourseNestedInput certificates?: CertificateUncheckedUpdateManyWithoutCourseNestedInput } export type UserCreateWithoutLessonProgressInput = { id?: string email: string name?: string | null image?: string | null emailVerified?: Date | string | null locale?: string role?: $Enums.Role createdAt?: Date | string accounts?: AccountCreateNestedManyWithoutUserInput sessions?: SessionCreateNestedManyWithoutUserInput enrollments?: EnrollmentCreateNestedManyWithoutUserInput quizAttempts?: QuizAttemptCreateNestedManyWithoutUserInput certificates?: CertificateCreateNestedManyWithoutUserInput } export type UserUncheckedCreateWithoutLessonProgressInput = { id?: string email: string name?: string | null image?: string | null emailVerified?: Date | string | null locale?: string role?: $Enums.Role createdAt?: Date | string accounts?: AccountUncheckedCreateNestedManyWithoutUserInput sessions?: SessionUncheckedCreateNestedManyWithoutUserInput enrollments?: EnrollmentUncheckedCreateNestedManyWithoutUserInput quizAttempts?: QuizAttemptUncheckedCreateNestedManyWithoutUserInput certificates?: CertificateUncheckedCreateNestedManyWithoutUserInput } export type UserCreateOrConnectWithoutLessonProgressInput = { where: UserWhereUniqueInput create: XOR } export type LessonCreateWithoutLessonProgressInput = { id?: string order?: number type?: $Enums.LessonType videoUrl?: string | null duration?: number | null titleFr: string titleEn: string titleEs: string contentFr?: string | null contentEn?: string | null contentEs?: string | null module: ModuleCreateNestedOneWithoutLessonsInput } export type LessonUncheckedCreateWithoutLessonProgressInput = { id?: string moduleId: string order?: number type?: $Enums.LessonType videoUrl?: string | null duration?: number | null titleFr: string titleEn: string titleEs: string contentFr?: string | null contentEn?: string | null contentEs?: string | null } export type LessonCreateOrConnectWithoutLessonProgressInput = { where: LessonWhereUniqueInput create: XOR } export type UserUpsertWithoutLessonProgressInput = { update: XOR create: XOR where?: UserWhereInput } export type UserUpdateToOneWithWhereWithoutLessonProgressInput = { where?: UserWhereInput data: XOR } export type UserUpdateWithoutLessonProgressInput = { id?: StringFieldUpdateOperationsInput | string email?: StringFieldUpdateOperationsInput | string name?: NullableStringFieldUpdateOperationsInput | string | null image?: NullableStringFieldUpdateOperationsInput | string | null emailVerified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null locale?: StringFieldUpdateOperationsInput | string role?: EnumRoleFieldUpdateOperationsInput | $Enums.Role createdAt?: DateTimeFieldUpdateOperationsInput | Date | string accounts?: AccountUpdateManyWithoutUserNestedInput sessions?: SessionUpdateManyWithoutUserNestedInput enrollments?: EnrollmentUpdateManyWithoutUserNestedInput quizAttempts?: QuizAttemptUpdateManyWithoutUserNestedInput certificates?: CertificateUpdateManyWithoutUserNestedInput } export type UserUncheckedUpdateWithoutLessonProgressInput = { id?: StringFieldUpdateOperationsInput | string email?: StringFieldUpdateOperationsInput | string name?: NullableStringFieldUpdateOperationsInput | string | null image?: NullableStringFieldUpdateOperationsInput | string | null emailVerified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null locale?: StringFieldUpdateOperationsInput | string role?: EnumRoleFieldUpdateOperationsInput | $Enums.Role createdAt?: DateTimeFieldUpdateOperationsInput | Date | string accounts?: AccountUncheckedUpdateManyWithoutUserNestedInput sessions?: SessionUncheckedUpdateManyWithoutUserNestedInput enrollments?: EnrollmentUncheckedUpdateManyWithoutUserNestedInput quizAttempts?: QuizAttemptUncheckedUpdateManyWithoutUserNestedInput certificates?: CertificateUncheckedUpdateManyWithoutUserNestedInput } export type LessonUpsertWithoutLessonProgressInput = { update: XOR create: XOR where?: LessonWhereInput } export type LessonUpdateToOneWithWhereWithoutLessonProgressInput = { where?: LessonWhereInput data: XOR } export type LessonUpdateWithoutLessonProgressInput = { id?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number type?: EnumLessonTypeFieldUpdateOperationsInput | $Enums.LessonType videoUrl?: NullableStringFieldUpdateOperationsInput | string | null duration?: NullableIntFieldUpdateOperationsInput | number | null titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string contentFr?: NullableStringFieldUpdateOperationsInput | string | null contentEn?: NullableStringFieldUpdateOperationsInput | string | null contentEs?: NullableStringFieldUpdateOperationsInput | string | null module?: ModuleUpdateOneRequiredWithoutLessonsNestedInput } export type LessonUncheckedUpdateWithoutLessonProgressInput = { id?: StringFieldUpdateOperationsInput | string moduleId?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number type?: EnumLessonTypeFieldUpdateOperationsInput | $Enums.LessonType videoUrl?: NullableStringFieldUpdateOperationsInput | string | null duration?: NullableIntFieldUpdateOperationsInput | number | null titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string contentFr?: NullableStringFieldUpdateOperationsInput | string | null contentEn?: NullableStringFieldUpdateOperationsInput | string | null contentEs?: NullableStringFieldUpdateOperationsInput | string | null } export type UserCreateWithoutQuizAttemptsInput = { id?: string email: string name?: string | null image?: string | null emailVerified?: Date | string | null locale?: string role?: $Enums.Role createdAt?: Date | string accounts?: AccountCreateNestedManyWithoutUserInput sessions?: SessionCreateNestedManyWithoutUserInput enrollments?: EnrollmentCreateNestedManyWithoutUserInput lessonProgress?: LessonProgressCreateNestedManyWithoutUserInput certificates?: CertificateCreateNestedManyWithoutUserInput } export type UserUncheckedCreateWithoutQuizAttemptsInput = { id?: string email: string name?: string | null image?: string | null emailVerified?: Date | string | null locale?: string role?: $Enums.Role createdAt?: Date | string accounts?: AccountUncheckedCreateNestedManyWithoutUserInput sessions?: SessionUncheckedCreateNestedManyWithoutUserInput enrollments?: EnrollmentUncheckedCreateNestedManyWithoutUserInput lessonProgress?: LessonProgressUncheckedCreateNestedManyWithoutUserInput certificates?: CertificateUncheckedCreateNestedManyWithoutUserInput } export type UserCreateOrConnectWithoutQuizAttemptsInput = { where: UserWhereUniqueInput create: XOR } export type QuizCreateWithoutAttemptsInput = { id?: string passMark?: number module: ModuleCreateNestedOneWithoutQuizInput questions?: QuestionCreateNestedManyWithoutQuizInput } export type QuizUncheckedCreateWithoutAttemptsInput = { id?: string moduleId: string passMark?: number questions?: QuestionUncheckedCreateNestedManyWithoutQuizInput } export type QuizCreateOrConnectWithoutAttemptsInput = { where: QuizWhereUniqueInput create: XOR } export type UserUpsertWithoutQuizAttemptsInput = { update: XOR create: XOR where?: UserWhereInput } export type UserUpdateToOneWithWhereWithoutQuizAttemptsInput = { where?: UserWhereInput data: XOR } export type UserUpdateWithoutQuizAttemptsInput = { id?: StringFieldUpdateOperationsInput | string email?: StringFieldUpdateOperationsInput | string name?: NullableStringFieldUpdateOperationsInput | string | null image?: NullableStringFieldUpdateOperationsInput | string | null emailVerified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null locale?: StringFieldUpdateOperationsInput | string role?: EnumRoleFieldUpdateOperationsInput | $Enums.Role createdAt?: DateTimeFieldUpdateOperationsInput | Date | string accounts?: AccountUpdateManyWithoutUserNestedInput sessions?: SessionUpdateManyWithoutUserNestedInput enrollments?: EnrollmentUpdateManyWithoutUserNestedInput lessonProgress?: LessonProgressUpdateManyWithoutUserNestedInput certificates?: CertificateUpdateManyWithoutUserNestedInput } export type UserUncheckedUpdateWithoutQuizAttemptsInput = { id?: StringFieldUpdateOperationsInput | string email?: StringFieldUpdateOperationsInput | string name?: NullableStringFieldUpdateOperationsInput | string | null image?: NullableStringFieldUpdateOperationsInput | string | null emailVerified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null locale?: StringFieldUpdateOperationsInput | string role?: EnumRoleFieldUpdateOperationsInput | $Enums.Role createdAt?: DateTimeFieldUpdateOperationsInput | Date | string accounts?: AccountUncheckedUpdateManyWithoutUserNestedInput sessions?: SessionUncheckedUpdateManyWithoutUserNestedInput enrollments?: EnrollmentUncheckedUpdateManyWithoutUserNestedInput lessonProgress?: LessonProgressUncheckedUpdateManyWithoutUserNestedInput certificates?: CertificateUncheckedUpdateManyWithoutUserNestedInput } export type QuizUpsertWithoutAttemptsInput = { update: XOR create: XOR where?: QuizWhereInput } export type QuizUpdateToOneWithWhereWithoutAttemptsInput = { where?: QuizWhereInput data: XOR } export type QuizUpdateWithoutAttemptsInput = { id?: StringFieldUpdateOperationsInput | string passMark?: IntFieldUpdateOperationsInput | number module?: ModuleUpdateOneRequiredWithoutQuizNestedInput questions?: QuestionUpdateManyWithoutQuizNestedInput } export type QuizUncheckedUpdateWithoutAttemptsInput = { id?: StringFieldUpdateOperationsInput | string moduleId?: StringFieldUpdateOperationsInput | string passMark?: IntFieldUpdateOperationsInput | number questions?: QuestionUncheckedUpdateManyWithoutQuizNestedInput } export type UserCreateWithoutCertificatesInput = { id?: string email: string name?: string | null image?: string | null emailVerified?: Date | string | null locale?: string role?: $Enums.Role createdAt?: Date | string accounts?: AccountCreateNestedManyWithoutUserInput sessions?: SessionCreateNestedManyWithoutUserInput enrollments?: EnrollmentCreateNestedManyWithoutUserInput lessonProgress?: LessonProgressCreateNestedManyWithoutUserInput quizAttempts?: QuizAttemptCreateNestedManyWithoutUserInput } export type UserUncheckedCreateWithoutCertificatesInput = { id?: string email: string name?: string | null image?: string | null emailVerified?: Date | string | null locale?: string role?: $Enums.Role createdAt?: Date | string accounts?: AccountUncheckedCreateNestedManyWithoutUserInput sessions?: SessionUncheckedCreateNestedManyWithoutUserInput enrollments?: EnrollmentUncheckedCreateNestedManyWithoutUserInput lessonProgress?: LessonProgressUncheckedCreateNestedManyWithoutUserInput quizAttempts?: QuizAttemptUncheckedCreateNestedManyWithoutUserInput } export type UserCreateOrConnectWithoutCertificatesInput = { where: UserWhereUniqueInput create: XOR } export type CourseCreateWithoutCertificatesInput = { id?: string slug: string category?: $Enums.CourseCategory level?: $Enums.CourseLevel thumbnailUrl?: string | null published?: boolean order?: number createdAt?: Date | string titleFr: string titleEn: string titleEs: string descFr: string descEn: string descEs: string modules?: ModuleCreateNestedManyWithoutCourseInput enrollments?: EnrollmentCreateNestedManyWithoutCourseInput } export type CourseUncheckedCreateWithoutCertificatesInput = { id?: string slug: string category?: $Enums.CourseCategory level?: $Enums.CourseLevel thumbnailUrl?: string | null published?: boolean order?: number createdAt?: Date | string titleFr: string titleEn: string titleEs: string descFr: string descEn: string descEs: string modules?: ModuleUncheckedCreateNestedManyWithoutCourseInput enrollments?: EnrollmentUncheckedCreateNestedManyWithoutCourseInput } export type CourseCreateOrConnectWithoutCertificatesInput = { where: CourseWhereUniqueInput create: XOR } export type UserUpsertWithoutCertificatesInput = { update: XOR create: XOR where?: UserWhereInput } export type UserUpdateToOneWithWhereWithoutCertificatesInput = { where?: UserWhereInput data: XOR } export type UserUpdateWithoutCertificatesInput = { id?: StringFieldUpdateOperationsInput | string email?: StringFieldUpdateOperationsInput | string name?: NullableStringFieldUpdateOperationsInput | string | null image?: NullableStringFieldUpdateOperationsInput | string | null emailVerified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null locale?: StringFieldUpdateOperationsInput | string role?: EnumRoleFieldUpdateOperationsInput | $Enums.Role createdAt?: DateTimeFieldUpdateOperationsInput | Date | string accounts?: AccountUpdateManyWithoutUserNestedInput sessions?: SessionUpdateManyWithoutUserNestedInput enrollments?: EnrollmentUpdateManyWithoutUserNestedInput lessonProgress?: LessonProgressUpdateManyWithoutUserNestedInput quizAttempts?: QuizAttemptUpdateManyWithoutUserNestedInput } export type UserUncheckedUpdateWithoutCertificatesInput = { id?: StringFieldUpdateOperationsInput | string email?: StringFieldUpdateOperationsInput | string name?: NullableStringFieldUpdateOperationsInput | string | null image?: NullableStringFieldUpdateOperationsInput | string | null emailVerified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null locale?: StringFieldUpdateOperationsInput | string role?: EnumRoleFieldUpdateOperationsInput | $Enums.Role createdAt?: DateTimeFieldUpdateOperationsInput | Date | string accounts?: AccountUncheckedUpdateManyWithoutUserNestedInput sessions?: SessionUncheckedUpdateManyWithoutUserNestedInput enrollments?: EnrollmentUncheckedUpdateManyWithoutUserNestedInput lessonProgress?: LessonProgressUncheckedUpdateManyWithoutUserNestedInput quizAttempts?: QuizAttemptUncheckedUpdateManyWithoutUserNestedInput } export type CourseUpsertWithoutCertificatesInput = { update: XOR create: XOR where?: CourseWhereInput } export type CourseUpdateToOneWithWhereWithoutCertificatesInput = { where?: CourseWhereInput data: XOR } export type CourseUpdateWithoutCertificatesInput = { id?: StringFieldUpdateOperationsInput | string slug?: StringFieldUpdateOperationsInput | string category?: EnumCourseCategoryFieldUpdateOperationsInput | $Enums.CourseCategory level?: EnumCourseLevelFieldUpdateOperationsInput | $Enums.CourseLevel thumbnailUrl?: NullableStringFieldUpdateOperationsInput | string | null published?: BoolFieldUpdateOperationsInput | boolean order?: IntFieldUpdateOperationsInput | number createdAt?: DateTimeFieldUpdateOperationsInput | Date | string titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string descFr?: StringFieldUpdateOperationsInput | string descEn?: StringFieldUpdateOperationsInput | string descEs?: StringFieldUpdateOperationsInput | string modules?: ModuleUpdateManyWithoutCourseNestedInput enrollments?: EnrollmentUpdateManyWithoutCourseNestedInput } export type CourseUncheckedUpdateWithoutCertificatesInput = { id?: StringFieldUpdateOperationsInput | string slug?: StringFieldUpdateOperationsInput | string category?: EnumCourseCategoryFieldUpdateOperationsInput | $Enums.CourseCategory level?: EnumCourseLevelFieldUpdateOperationsInput | $Enums.CourseLevel thumbnailUrl?: NullableStringFieldUpdateOperationsInput | string | null published?: BoolFieldUpdateOperationsInput | boolean order?: IntFieldUpdateOperationsInput | number createdAt?: DateTimeFieldUpdateOperationsInput | Date | string titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string descFr?: StringFieldUpdateOperationsInput | string descEn?: StringFieldUpdateOperationsInput | string descEs?: StringFieldUpdateOperationsInput | string modules?: ModuleUncheckedUpdateManyWithoutCourseNestedInput enrollments?: EnrollmentUncheckedUpdateManyWithoutCourseNestedInput } export type AccountCreateManyUserInput = { id?: string type: string provider: string providerAccountId: string refresh_token?: string | null access_token?: string | null expires_at?: number | null token_type?: string | null scope?: string | null id_token?: string | null session_state?: string | null } export type SessionCreateManyUserInput = { id?: string sessionToken: string expires: Date | string } export type EnrollmentCreateManyUserInput = { id?: string courseId: string enrolledAt?: Date | string completedAt?: Date | string | null } export type LessonProgressCreateManyUserInput = { id?: string lessonId: string completedAt?: Date | string } export type QuizAttemptCreateManyUserInput = { id?: string quizId: string score: number passed: boolean answers?: QuizAttemptCreateanswersInput | number[] completedAt?: Date | string } export type CertificateCreateManyUserInput = { id?: string courseId: string issuedAt?: Date | string pdfUrl?: string | null isPaid?: boolean } export type AccountUpdateWithoutUserInput = { id?: StringFieldUpdateOperationsInput | string type?: StringFieldUpdateOperationsInput | string provider?: StringFieldUpdateOperationsInput | string providerAccountId?: StringFieldUpdateOperationsInput | string refresh_token?: NullableStringFieldUpdateOperationsInput | string | null access_token?: NullableStringFieldUpdateOperationsInput | string | null expires_at?: NullableIntFieldUpdateOperationsInput | number | null token_type?: NullableStringFieldUpdateOperationsInput | string | null scope?: NullableStringFieldUpdateOperationsInput | string | null id_token?: NullableStringFieldUpdateOperationsInput | string | null session_state?: NullableStringFieldUpdateOperationsInput | string | null } export type AccountUncheckedUpdateWithoutUserInput = { id?: StringFieldUpdateOperationsInput | string type?: StringFieldUpdateOperationsInput | string provider?: StringFieldUpdateOperationsInput | string providerAccountId?: StringFieldUpdateOperationsInput | string refresh_token?: NullableStringFieldUpdateOperationsInput | string | null access_token?: NullableStringFieldUpdateOperationsInput | string | null expires_at?: NullableIntFieldUpdateOperationsInput | number | null token_type?: NullableStringFieldUpdateOperationsInput | string | null scope?: NullableStringFieldUpdateOperationsInput | string | null id_token?: NullableStringFieldUpdateOperationsInput | string | null session_state?: NullableStringFieldUpdateOperationsInput | string | null } export type AccountUncheckedUpdateManyWithoutUserInput = { id?: StringFieldUpdateOperationsInput | string type?: StringFieldUpdateOperationsInput | string provider?: StringFieldUpdateOperationsInput | string providerAccountId?: StringFieldUpdateOperationsInput | string refresh_token?: NullableStringFieldUpdateOperationsInput | string | null access_token?: NullableStringFieldUpdateOperationsInput | string | null expires_at?: NullableIntFieldUpdateOperationsInput | number | null token_type?: NullableStringFieldUpdateOperationsInput | string | null scope?: NullableStringFieldUpdateOperationsInput | string | null id_token?: NullableStringFieldUpdateOperationsInput | string | null session_state?: NullableStringFieldUpdateOperationsInput | string | null } export type SessionUpdateWithoutUserInput = { id?: StringFieldUpdateOperationsInput | string sessionToken?: StringFieldUpdateOperationsInput | string expires?: DateTimeFieldUpdateOperationsInput | Date | string } export type SessionUncheckedUpdateWithoutUserInput = { id?: StringFieldUpdateOperationsInput | string sessionToken?: StringFieldUpdateOperationsInput | string expires?: DateTimeFieldUpdateOperationsInput | Date | string } export type SessionUncheckedUpdateManyWithoutUserInput = { id?: StringFieldUpdateOperationsInput | string sessionToken?: StringFieldUpdateOperationsInput | string expires?: DateTimeFieldUpdateOperationsInput | Date | string } export type EnrollmentUpdateWithoutUserInput = { id?: StringFieldUpdateOperationsInput | string enrolledAt?: DateTimeFieldUpdateOperationsInput | Date | string completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null course?: CourseUpdateOneRequiredWithoutEnrollmentsNestedInput } export type EnrollmentUncheckedUpdateWithoutUserInput = { id?: StringFieldUpdateOperationsInput | string courseId?: StringFieldUpdateOperationsInput | string enrolledAt?: DateTimeFieldUpdateOperationsInput | Date | string completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null } export type EnrollmentUncheckedUpdateManyWithoutUserInput = { id?: StringFieldUpdateOperationsInput | string courseId?: StringFieldUpdateOperationsInput | string enrolledAt?: DateTimeFieldUpdateOperationsInput | Date | string completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null } export type LessonProgressUpdateWithoutUserInput = { id?: StringFieldUpdateOperationsInput | string completedAt?: DateTimeFieldUpdateOperationsInput | Date | string lesson?: LessonUpdateOneRequiredWithoutLessonProgressNestedInput } export type LessonProgressUncheckedUpdateWithoutUserInput = { id?: StringFieldUpdateOperationsInput | string lessonId?: StringFieldUpdateOperationsInput | string completedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type LessonProgressUncheckedUpdateManyWithoutUserInput = { id?: StringFieldUpdateOperationsInput | string lessonId?: StringFieldUpdateOperationsInput | string completedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type QuizAttemptUpdateWithoutUserInput = { id?: StringFieldUpdateOperationsInput | string score?: IntFieldUpdateOperationsInput | number passed?: BoolFieldUpdateOperationsInput | boolean answers?: QuizAttemptUpdateanswersInput | number[] completedAt?: DateTimeFieldUpdateOperationsInput | Date | string quiz?: QuizUpdateOneRequiredWithoutAttemptsNestedInput } export type QuizAttemptUncheckedUpdateWithoutUserInput = { id?: StringFieldUpdateOperationsInput | string quizId?: StringFieldUpdateOperationsInput | string score?: IntFieldUpdateOperationsInput | number passed?: BoolFieldUpdateOperationsInput | boolean answers?: QuizAttemptUpdateanswersInput | number[] completedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type QuizAttemptUncheckedUpdateManyWithoutUserInput = { id?: StringFieldUpdateOperationsInput | string quizId?: StringFieldUpdateOperationsInput | string score?: IntFieldUpdateOperationsInput | number passed?: BoolFieldUpdateOperationsInput | boolean answers?: QuizAttemptUpdateanswersInput | number[] completedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type CertificateUpdateWithoutUserInput = { id?: StringFieldUpdateOperationsInput | string issuedAt?: DateTimeFieldUpdateOperationsInput | Date | string pdfUrl?: NullableStringFieldUpdateOperationsInput | string | null isPaid?: BoolFieldUpdateOperationsInput | boolean course?: CourseUpdateOneRequiredWithoutCertificatesNestedInput } export type CertificateUncheckedUpdateWithoutUserInput = { id?: StringFieldUpdateOperationsInput | string courseId?: StringFieldUpdateOperationsInput | string issuedAt?: DateTimeFieldUpdateOperationsInput | Date | string pdfUrl?: NullableStringFieldUpdateOperationsInput | string | null isPaid?: BoolFieldUpdateOperationsInput | boolean } export type CertificateUncheckedUpdateManyWithoutUserInput = { id?: StringFieldUpdateOperationsInput | string courseId?: StringFieldUpdateOperationsInput | string issuedAt?: DateTimeFieldUpdateOperationsInput | Date | string pdfUrl?: NullableStringFieldUpdateOperationsInput | string | null isPaid?: BoolFieldUpdateOperationsInput | boolean } export type ModuleCreateManyCourseInput = { id?: string order?: number titleFr: string titleEn: string titleEs: string } export type EnrollmentCreateManyCourseInput = { id?: string userId: string enrolledAt?: Date | string completedAt?: Date | string | null } export type CertificateCreateManyCourseInput = { id?: string userId: string issuedAt?: Date | string pdfUrl?: string | null isPaid?: boolean } export type ModuleUpdateWithoutCourseInput = { id?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string lessons?: LessonUpdateManyWithoutModuleNestedInput quiz?: QuizUpdateOneWithoutModuleNestedInput } export type ModuleUncheckedUpdateWithoutCourseInput = { id?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string lessons?: LessonUncheckedUpdateManyWithoutModuleNestedInput quiz?: QuizUncheckedUpdateOneWithoutModuleNestedInput } export type ModuleUncheckedUpdateManyWithoutCourseInput = { id?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string } export type EnrollmentUpdateWithoutCourseInput = { id?: StringFieldUpdateOperationsInput | string enrolledAt?: DateTimeFieldUpdateOperationsInput | Date | string completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null user?: UserUpdateOneRequiredWithoutEnrollmentsNestedInput } export type EnrollmentUncheckedUpdateWithoutCourseInput = { id?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string enrolledAt?: DateTimeFieldUpdateOperationsInput | Date | string completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null } export type EnrollmentUncheckedUpdateManyWithoutCourseInput = { id?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string enrolledAt?: DateTimeFieldUpdateOperationsInput | Date | string completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null } export type CertificateUpdateWithoutCourseInput = { id?: StringFieldUpdateOperationsInput | string issuedAt?: DateTimeFieldUpdateOperationsInput | Date | string pdfUrl?: NullableStringFieldUpdateOperationsInput | string | null isPaid?: BoolFieldUpdateOperationsInput | boolean user?: UserUpdateOneRequiredWithoutCertificatesNestedInput } export type CertificateUncheckedUpdateWithoutCourseInput = { id?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string issuedAt?: DateTimeFieldUpdateOperationsInput | Date | string pdfUrl?: NullableStringFieldUpdateOperationsInput | string | null isPaid?: BoolFieldUpdateOperationsInput | boolean } export type CertificateUncheckedUpdateManyWithoutCourseInput = { id?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string issuedAt?: DateTimeFieldUpdateOperationsInput | Date | string pdfUrl?: NullableStringFieldUpdateOperationsInput | string | null isPaid?: BoolFieldUpdateOperationsInput | boolean } export type LessonCreateManyModuleInput = { id?: string order?: number type?: $Enums.LessonType videoUrl?: string | null duration?: number | null titleFr: string titleEn: string titleEs: string contentFr?: string | null contentEn?: string | null contentEs?: string | null } export type LessonUpdateWithoutModuleInput = { id?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number type?: EnumLessonTypeFieldUpdateOperationsInput | $Enums.LessonType videoUrl?: NullableStringFieldUpdateOperationsInput | string | null duration?: NullableIntFieldUpdateOperationsInput | number | null titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string contentFr?: NullableStringFieldUpdateOperationsInput | string | null contentEn?: NullableStringFieldUpdateOperationsInput | string | null contentEs?: NullableStringFieldUpdateOperationsInput | string | null lessonProgress?: LessonProgressUpdateManyWithoutLessonNestedInput } export type LessonUncheckedUpdateWithoutModuleInput = { id?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number type?: EnumLessonTypeFieldUpdateOperationsInput | $Enums.LessonType videoUrl?: NullableStringFieldUpdateOperationsInput | string | null duration?: NullableIntFieldUpdateOperationsInput | number | null titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string contentFr?: NullableStringFieldUpdateOperationsInput | string | null contentEn?: NullableStringFieldUpdateOperationsInput | string | null contentEs?: NullableStringFieldUpdateOperationsInput | string | null lessonProgress?: LessonProgressUncheckedUpdateManyWithoutLessonNestedInput } export type LessonUncheckedUpdateManyWithoutModuleInput = { id?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number type?: EnumLessonTypeFieldUpdateOperationsInput | $Enums.LessonType videoUrl?: NullableStringFieldUpdateOperationsInput | string | null duration?: NullableIntFieldUpdateOperationsInput | number | null titleFr?: StringFieldUpdateOperationsInput | string titleEn?: StringFieldUpdateOperationsInput | string titleEs?: StringFieldUpdateOperationsInput | string contentFr?: NullableStringFieldUpdateOperationsInput | string | null contentEn?: NullableStringFieldUpdateOperationsInput | string | null contentEs?: NullableStringFieldUpdateOperationsInput | string | null } export type LessonProgressCreateManyLessonInput = { id?: string userId: string completedAt?: Date | string } export type LessonProgressUpdateWithoutLessonInput = { id?: StringFieldUpdateOperationsInput | string completedAt?: DateTimeFieldUpdateOperationsInput | Date | string user?: UserUpdateOneRequiredWithoutLessonProgressNestedInput } export type LessonProgressUncheckedUpdateWithoutLessonInput = { id?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string completedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type LessonProgressUncheckedUpdateManyWithoutLessonInput = { id?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string completedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type QuestionCreateManyQuizInput = { id?: string order?: number textFr: string textEn: string textEs: string optionsFr?: QuestionCreateoptionsFrInput | string[] optionsEn?: QuestionCreateoptionsEnInput | string[] optionsEs?: QuestionCreateoptionsEsInput | string[] correctIndex: number } export type QuizAttemptCreateManyQuizInput = { id?: string userId: string score: number passed: boolean answers?: QuizAttemptCreateanswersInput | number[] completedAt?: Date | string } export type QuestionUpdateWithoutQuizInput = { id?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number textFr?: StringFieldUpdateOperationsInput | string textEn?: StringFieldUpdateOperationsInput | string textEs?: StringFieldUpdateOperationsInput | string optionsFr?: QuestionUpdateoptionsFrInput | string[] optionsEn?: QuestionUpdateoptionsEnInput | string[] optionsEs?: QuestionUpdateoptionsEsInput | string[] correctIndex?: IntFieldUpdateOperationsInput | number } export type QuestionUncheckedUpdateWithoutQuizInput = { id?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number textFr?: StringFieldUpdateOperationsInput | string textEn?: StringFieldUpdateOperationsInput | string textEs?: StringFieldUpdateOperationsInput | string optionsFr?: QuestionUpdateoptionsFrInput | string[] optionsEn?: QuestionUpdateoptionsEnInput | string[] optionsEs?: QuestionUpdateoptionsEsInput | string[] correctIndex?: IntFieldUpdateOperationsInput | number } export type QuestionUncheckedUpdateManyWithoutQuizInput = { id?: StringFieldUpdateOperationsInput | string order?: IntFieldUpdateOperationsInput | number textFr?: StringFieldUpdateOperationsInput | string textEn?: StringFieldUpdateOperationsInput | string textEs?: StringFieldUpdateOperationsInput | string optionsFr?: QuestionUpdateoptionsFrInput | string[] optionsEn?: QuestionUpdateoptionsEnInput | string[] optionsEs?: QuestionUpdateoptionsEsInput | string[] correctIndex?: IntFieldUpdateOperationsInput | number } export type QuizAttemptUpdateWithoutQuizInput = { id?: StringFieldUpdateOperationsInput | string score?: IntFieldUpdateOperationsInput | number passed?: BoolFieldUpdateOperationsInput | boolean answers?: QuizAttemptUpdateanswersInput | number[] completedAt?: DateTimeFieldUpdateOperationsInput | Date | string user?: UserUpdateOneRequiredWithoutQuizAttemptsNestedInput } export type QuizAttemptUncheckedUpdateWithoutQuizInput = { id?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string score?: IntFieldUpdateOperationsInput | number passed?: BoolFieldUpdateOperationsInput | boolean answers?: QuizAttemptUpdateanswersInput | number[] completedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type QuizAttemptUncheckedUpdateManyWithoutQuizInput = { id?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string score?: IntFieldUpdateOperationsInput | number passed?: BoolFieldUpdateOperationsInput | boolean answers?: QuizAttemptUpdateanswersInput | number[] completedAt?: DateTimeFieldUpdateOperationsInput | Date | string } /** * Batch Payload for updateMany & deleteMany & createMany */ export type BatchPayload = { count: number } /** * DMMF */ export const dmmf: runtime.BaseDMMF }