(query: string, ...values: any[]): 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 }): Promise>;
+
+ /**
+ * `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.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.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.post`: Exposes CRUD operations for the **Post** model.
+ * Example usage:
+ * ```ts
+ * // Fetch zero or more Posts
+ * const posts = await prisma.post.findMany()
+ * ```
+ */
+ get post(): Prisma.PostDelegate;
+}
+
+export namespace Prisma {
+ export import DMMF = runtime.DMMF
+
+ /**
+ * 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
+ export import NotFoundError = runtime.NotFoundError
+
+ /**
+ * 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 import Metrics = runtime.Metrics
+ export import Metric = runtime.Metric
+ export import MetricHistogram = runtime.MetricHistogram
+ export import MetricHistogramBucket = runtime.MetricHistogramBucket
+
+ /**
+ * Extensions
+ */
+ export type Extension = runtime.Extension
+
+ /**
+ * Prisma Client JS version: 4.5.0
+ * Query Engine version: 0362da9eebca54d94c8ef5edd3b2e90af99ba452
+ */
+ export type PrismaVersion = {
+ client: string
+ }
+
+ export const prismaVersion: PrismaVersion
+
+ /**
+ * Utility Types
+ */
+
+ /**
+ * From https://github.com/sindresorhus/type-fest/
+ * Matches a JSON object.
+ * This type can be useful to enforce some input to be JSON-compatible or as a super-type to be extended from.
+ */
+ export type JsonObject = {[Key in string]?: JsonValue}
+
+ /**
+ * From https://github.com/sindresorhus/type-fest/
+ * Matches a JSON array.
+ */
+ export interface JsonArray extends Array {}
+
+ /**
+ * From https://github.com/sindresorhus/type-fest/
+ * Matches any valid JSON value.
+ */
+ export type JsonValue = string | number | boolean | JsonObject | JsonArray | null
+
+ /**
+ * Matches a JSON object.
+ * Unlike `JsonObject`, this type allows undefined and read-only properties.
+ */
+ export type InputJsonObject = {readonly [Key in string]?: InputJsonValue | null}
+
+ /**
+ * Matches a JSON array.
+ * Unlike `JsonArray`, readonly arrays are assignable to this type.
+ */
+ export interface InputJsonArray extends ReadonlyArray {}
+
+ /**
+ * Matches any valid value that can be used as an input for operations like
+ * create and update as the value of a JSON field. Unlike `JsonValue`, this
+ * type allows read-only arrays and read-only object properties and disallows
+ * `null` at the top level.
+ *
+ * `null` cannot be used as the value of a JSON field because its meaning
+ * would be ambiguous. Use `Prisma.JsonNull` to store the JSON null value or
+ * `Prisma.DbNull` to clear the JSON value and set the field to the database
+ * NULL value instead.
+ *
+ * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-by-null-values
+ */
+ export type InputJsonValue = string | number | boolean | InputJsonObject | InputJsonArray
+
+ /**
+ * 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 HasSelect = {
+ select: any
+ }
+ type HasInclude = {
+ include: any
+ }
+ type CheckSelect = T extends SelectAndInclude
+ ? 'Please either choose `select` or `include`'
+ : T extends HasSelect
+ ? U
+ : T extends HasInclude
+ ? U
+ : S
+
+ /**
+ * 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 Promise> = 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 = {
+ [key in keyof T]: T[key] extends false | undefined | null ? never : key
+ }[keyof T]
+
+ 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`.'
+ : {})
+
+ /**
+ * 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 ? K : 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 Exact =
+ W extends unknown ? A extends Narrowable ? Cast : Cast<
+ {[K in keyof A]: K extends keyof W ? Exact : never},
+ {[K in keyof W]: K extends keyof A ? Exact : W[K]}>
+ : never;
+
+ type Narrowable = string | number | boolean | bigint;
+
+ type Cast = A extends B ? A : B;
+
+ export const type: unique symbol;
+
+ export function validator(): (select: Exact) => S;
+
+ /**
+ * 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 with an array
+ */
+ type PickArray> = Prisma__Pick>
+
+ /**
+ * Exclude all keys with underscores
+ */
+ type ExcludeUnderscoreKeys = T extends `_${string}` ? never : T
+
+
+ export import FieldRef = runtime.FieldRef
+
+ type FieldRefInputType = Model extends never ? never : FieldRef
+
+ class PrismaClientFetcher {
+ private readonly prisma;
+ private readonly debug;
+ private readonly hooks?;
+ constructor(prisma: PrismaClient, debug?: boolean, hooks?: Hooks | undefined);
+ request(document: any, dataPath?: string[], rootField?: string, typeName?: string, isList?: boolean, callsite?: string): Promise;
+ sanitizeMessage(message: string): string;
+ protected unpack(document: any, data: any, path: string[], rootField?: string, isList?: boolean): any;
+ }
+
+ export const ModelName: {
+ Account: 'Account',
+ Session: 'Session',
+ User: 'User',
+ VerificationToken: 'VerificationToken',
+ Post: 'Post'
+ };
+
+ export type ModelName = (typeof ModelName)[keyof typeof ModelName]
+
+
+ export type Datasources = {
+ db?: Datasource
+ }
+
+ export type RejectOnNotFound = boolean | ((error: Error) => Error)
+ export type RejectPerModel = { [P in ModelName]?: RejectOnNotFound }
+ export type RejectPerOperation = { [P in "findUnique" | "findFirst"]?: RejectPerModel | RejectOnNotFound }
+ type IsReject = T extends true ? True : T extends (err: Error) => Error ? True : False
+ export type HasReject<
+ GlobalRejectSettings extends Prisma.PrismaClientOptions['rejectOnNotFound'],
+ LocalRejectSettings,
+ Action extends PrismaAction,
+ Model extends ModelName
+ > = LocalRejectSettings extends RejectOnNotFound
+ ? IsReject
+ : GlobalRejectSettings extends RejectPerOperation
+ ? Action extends keyof GlobalRejectSettings
+ ? GlobalRejectSettings[Action] extends RejectOnNotFound
+ ? IsReject
+ : GlobalRejectSettings[Action] extends RejectPerModel
+ ? Model extends keyof GlobalRejectSettings[Action]
+ ? IsReject
+ : False
+ : False
+ : False
+ : IsReject
+ export type ErrorFormat = 'pretty' | 'colorless' | 'minimal'
+
+ export interface PrismaClientOptions {
+ /**
+ * Configure findUnique/findFirst to throw an error if the query returns null.
+ * @deprecated since 4.0.0. Use `findUniqueOrThrow`/`findFirstOrThrow` methods instead.
+ * @example
+ * ```
+ * // Reject on both findUnique/findFirst
+ * rejectOnNotFound: true
+ * // Reject only on findFirst with a custom error
+ * rejectOnNotFound: { findFirst: (err) => new Error("Custom Error")}
+ * // Reject on user.findUnique with a custom error
+ * rejectOnNotFound: { findUnique: {User: (err) => new Error("User not found")}}
+ * ```
+ */
+ rejectOnNotFound?: RejectOnNotFound | RejectPerOperation
+ /**
+ * Overwrites the datasource url from your schema.prisma file
+ */
+ datasources?: Datasources
+
+ /**
+ * @default "colorless"
+ */
+ errorFormat?: ErrorFormat
+
+ /**
+ * @example
+ * ```
+ * // Defaults to stdout
+ * log: ['query', 'info', 'warn', 'error']
+ *
+ * // Emit as events
+ * log: [
+ * { 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?: Array
+ }
+
+ export type Hooks = {
+ beforeRequest?: (options: { query: string, path: string[], rootField?: string, typeName?: string, document: any }) => any
+ }
+
+ /* Types for Logging */
+ export type LogLevel = 'info' | 'query' | 'warn' | 'error'
+ export type LogDefinition = {
+ level: LogLevel
+ emit: 'stdout' | 'event'
+ }
+
+ export type GetLogType = T extends LogDefinition ? T['emit'] extends 'event' ? T['level'] : never : never
+ export type GetEvents = T extends Array ?
+ GetLogType | GetLogType | GetLogType | 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'
+ | 'findMany'
+ | 'findFirst'
+ | 'create'
+ | 'createMany'
+ | 'update'
+ | 'updateMany'
+ | 'upsert'
+ | 'delete'
+ | 'deleteMany'
+ | 'executeRaw'
+ | 'queryRaw'
+ | 'aggregate'
+ | 'count'
+ | 'runCommandRaw'
+ | 'findRaw'
+
+ /**
+ * These options are being passed into the middleware as "params"
+ */
+ export type MiddlewareParams = {
+ model?: ModelName
+ action: PrismaAction
+ args: any
+ dataPath: string[]
+ runInTransaction: boolean
+ }
+
+ /**
+ * The `T` type makes sure, that the `return proceed` is not forgotten in the middleware implementation
+ */
+ export type Middleware = (
+ params: MiddlewareParams,
+ next: (params: MiddlewareParams) => Promise,
+ ) => Promise
+
+ // tested in getLogLevel.test.ts
+ export function getLogLevel(log: Array): LogLevel | undefined;
+
+ export type Datasource = {
+ url?: string
+ }
+
+ /**
+ * Count Types
+ */
+
+
+ /**
+ * Count Type UserCountOutputType
+ */
+
+
+ export type UserCountOutputType = {
+ accounts: number
+ sessions: number
+ Post: number
+ }
+
+ export type UserCountOutputTypeSelect = {
+ accounts?: boolean
+ sessions?: boolean
+ Post?: boolean
+ }
+
+ export type UserCountOutputTypeGetPayload<
+ S extends boolean | null | undefined | UserCountOutputTypeArgs,
+ U = keyof S
+ > = S extends true
+ ? UserCountOutputType
+ : S extends undefined
+ ? never
+ : S extends UserCountOutputTypeArgs
+ ?'include' extends U
+ ? UserCountOutputType
+ : 'select' extends U
+ ? {
+ [P in TrueKeys]:
+ P extends keyof UserCountOutputType ? UserCountOutputType[P] : never
+ }
+ : UserCountOutputType
+ : UserCountOutputType
+
+
+
+
+ // Custom InputTypes
+
+ /**
+ * UserCountOutputType without action
+ */
+ export type UserCountOutputTypeArgs = {
+ /**
+ * Select specific fields to fetch from the UserCountOutputType
+ *
+ **/
+ select?: UserCountOutputTypeSelect | null
+ }
+
+
+
+ /**
+ * Models
+ */
+
+ /**
+ * 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
+ createdAt: Date | null
+ updatedAt: Date | 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
+ createdAt: Date | null
+ updatedAt: Date | 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
+ createdAt: number
+ updatedAt: 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
+ createdAt?: true
+ updatedAt?: 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
+ createdAt?: true
+ updatedAt?: 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
+ createdAt?: true
+ updatedAt?: 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?: Enumerable
+ /**
+ * {@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?: Enumerable
+ by: Array
+ 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
+ createdAt: Date
+ updatedAt: Date
+ _count: AccountCountAggregateOutputType | null
+ _avg: AccountAvgAggregateOutputType | null
+ _sum: AccountSumAggregateOutputType | null
+ _min: AccountMinAggregateOutputType | null
+ _max: AccountMaxAggregateOutputType | null
+ }
+
+ type GetAccountGroupByPayload = PrismaPromise<
+ Array<
+ PickArray &
+ {
+ [P in ((keyof T) & (keyof AccountGroupByOutputType))]: P extends '_count'
+ ? T[P] extends boolean
+ ? number
+ : GetScalarType
+ : GetScalarType
+ }
+ >
+ >
+
+
+ export type AccountSelect = {
+ 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
+ createdAt?: boolean
+ updatedAt?: boolean
+ user?: boolean | UserArgs
+ }
+
+ export type AccountInclude = {
+ user?: boolean | UserArgs
+ }
+
+ export type AccountGetPayload<
+ S extends boolean | null | undefined | AccountArgs,
+ U = keyof S
+ > = S extends true
+ ? Account
+ : S extends undefined
+ ? never
+ : S extends AccountArgs | AccountFindManyArgs
+ ?'include' extends U
+ ? Account & {
+ [P in TrueKeys]:
+ P extends 'user' ? UserGetPayload[P]> : never
+ }
+ : 'select' extends U
+ ? {
+ [P in TrueKeys]:
+ P extends 'user' ? UserGetPayload[P]> : P extends keyof Account ? Account[P] : never
+ }
+ : Account
+ : Account
+
+
+ type AccountCountArgs = Merge<
+ Omit & {
+ select?: AccountCountAggregateInputType | true
+ }
+ >
+
+ export interface AccountDelegate {
+ /**
+ * 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
+ ): HasReject extends True ? CheckSelect, Prisma__AccountClient>> : CheckSelect, Prisma__AccountClient | null, null>>
+
+ /**
+ * 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
+ ): HasReject extends True ? CheckSelect, Prisma__AccountClient>> : CheckSelect, Prisma__AccountClient | null, null>>
+
+ /**
+ * 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
+ ): CheckSelect>, PrismaPromise>>>
+
+ /**
+ * 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
+ ): CheckSelect, Prisma__AccountClient>>
+
+ /**
+ * 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
+ ): PrismaPromise
+
+ /**
+ * 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
+ ): CheckSelect, Prisma__AccountClient>>
+
+ /**
+ * 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
+ ): CheckSelect, Prisma__AccountClient>>
+
+ /**
+ * 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
+ ): 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
+ ): PrismaPromise
+
+ /**
+ * 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
+ ): CheckSelect, Prisma__AccountClient>>
+
+ /**
+ * Find one Account that matches the filter or throw
+ * `NotFoundError` 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
+ ): CheckSelect, Prisma__AccountClient>>
+
+ /**
+ * Find the first Account that matches the filter or
+ * throw `NotFoundError` 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
+ ): CheckSelect, Prisma__AccountClient>>
+
+ /**
+ * 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,
+ ): PrismaPromise<
+ T extends _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): 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 TupleToUnion,
+ 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 : PrismaPromise
+
+ }
+
+ /**
+ * 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 class Prisma__AccountClient implements PrismaPromise {
+ [prisma]: true;
+ private readonly _dmmf;
+ private readonly _fetcher;
+ private readonly _queryType;
+ private readonly _rootField;
+ private readonly _clientMethod;
+ private readonly _args;
+ private readonly _dataPath;
+ private readonly _errorFormat;
+ private readonly _measurePerformance?;
+ private _isList;
+ private _callsite;
+ private _requestPromise?;
+ constructor(_dmmf: runtime.DMMFClass, _fetcher: PrismaClientFetcher, _queryType: 'query' | 'mutation', _rootField: string, _clientMethod: string, _args: any, _dataPath: string[], _errorFormat: ErrorFormat, _measurePerformance?: boolean | undefined, _isList?: boolean);
+ readonly [Symbol.toStringTag]: 'PrismaClientPromise';
+
+ user(args?: Subset): CheckSelect, Prisma__UserClient | Null>>;
+
+ private get _document();
+ /**
+ * 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): Promise;
+ /**
+ * 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): Promise;
+ /**
+ * 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): Promise;
+ }
+
+
+
+ // Custom InputTypes
+
+ /**
+ * Account base type for findUnique actions
+ */
+ export type AccountFindUniqueArgsBase = {
+ /**
+ * Select specific fields to fetch from the Account
+ *
+ **/
+ select?: AccountSelect | null
+ /**
+ * Choose, which related nodes to fetch as well.
+ *
+ **/
+ include?: AccountInclude | null
+ /**
+ * Filter, which Account to fetch.
+ *
+ **/
+ where: AccountWhereUniqueInput
+ }
+
+ /**
+ * Account: findUnique
+ */
+ export interface AccountFindUniqueArgs extends AccountFindUniqueArgsBase {
+ /**
+ * Throw an Error if query returns no results
+ * @deprecated since 4.0.0: use `findUniqueOrThrow` method instead
+ */
+ rejectOnNotFound?: RejectOnNotFound
+ }
+
+
+ /**
+ * Account base type for findFirst actions
+ */
+ export type AccountFindFirstArgsBase = {
+ /**
+ * Select specific fields to fetch from the Account
+ *
+ **/
+ select?: AccountSelect | 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?: Enumerable
+ /**
+ * {@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?: Enumerable
+ }
+
+ /**
+ * Account: findFirst
+ */
+ export interface AccountFindFirstArgs extends AccountFindFirstArgsBase {
+ /**
+ * Throw an Error if query returns no results
+ * @deprecated since 4.0.0: use `findFirstOrThrow` method instead
+ */
+ rejectOnNotFound?: RejectOnNotFound
+ }
+
+
+ /**
+ * Account findMany
+ */
+ export type AccountFindManyArgs = {
+ /**
+ * Select specific fields to fetch from the Account
+ *
+ **/
+ select?: AccountSelect | 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?: Enumerable
+ /**
+ * {@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?: Enumerable
+ }
+
+
+ /**
+ * Account create
+ */
+ export type AccountCreateArgs = {
+ /**
+ * Select specific fields to fetch from the Account
+ *
+ **/
+ select?: AccountSelect | 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: Enumerable
+ skipDuplicates?: boolean
+ }
+
+
+ /**
+ * Account update
+ */
+ export type AccountUpdateArgs = {
+ /**
+ * Select specific fields to fetch from the Account
+ *
+ **/
+ select?: AccountSelect | 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
+ }
+
+
+ /**
+ * Account upsert
+ */
+ export type AccountUpsertArgs = {
+ /**
+ * Select specific fields to fetch from the Account
+ *
+ **/
+ select?: AccountSelect | 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
+ /**
+ * 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
+ }
+
+
+ /**
+ * Account: findUniqueOrThrow
+ */
+ export type AccountFindUniqueOrThrowArgs = AccountFindUniqueArgsBase
+
+
+ /**
+ * Account: findFirstOrThrow
+ */
+ export type AccountFindFirstOrThrowArgs = AccountFindFirstArgsBase
+
+
+ /**
+ * Account without action
+ */
+ export type AccountArgs = {
+ /**
+ * Select specific fields to fetch from the Account
+ *
+ **/
+ select?: AccountSelect | 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?: Enumerable
+ /**
+ * {@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