;
/**
* Disconnect from the database
*/
$disconnect(): Promise;
/**
* Add a middleware
*/
$use(cb: Prisma.Middleware): void
/**
* 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]): Promise>
$transaction(fn: (prisma: Omit) => Promise, options?: { maxWait?: number, timeout?: number }): Promise
/**
* Executes a raw MongoDB command and returns the result of it.
* @example
* ```
* const user = await prisma.$runCommandRaw({
* aggregate: 'User',
* pipeline: [{ $match: { name: 'Bob' } }, { $project: { email: true, _id: false } }],
* explain: false,
* })
* ```
*
* Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access).
*/
$runCommandRaw(command: Prisma.InputJsonObject): Prisma.PrismaPromise
/**
* `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.role`: Exposes CRUD operations for the **Role** model.
* Example usage:
* ```ts
* // Fetch zero or more Roles
* const roles = await prisma.role.findMany()
* ```
*/
get role(): Prisma.RoleDelegate;
/**
* `prisma.casbinModel`: Exposes CRUD operations for the **CasbinModel** model.
* Example usage:
* ```ts
* // Fetch zero or more CasbinModels
* const casbinModels = await prisma.casbinModel.findMany()
* ```
*/
get casbinModel(): Prisma.CasbinModelDelegate;
/**
* `prisma.casbinPolicy`: Exposes CRUD operations for the **CasbinPolicy** model.
* Example usage:
* ```ts
* // Fetch zero or more CasbinPolicies
* const casbinPolicies = await prisma.casbinPolicy.findMany()
* ```
*/
get casbinPolicy(): Prisma.CasbinPolicyDelegate;
}
export namespace Prisma {
export import DMMF = runtime.DMMF
export type PrismaPromise = runtime.Types.Public.PrismaPromise
/**
* 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 type Metrics = runtime.Metrics
export type Metric = runtime.Metric
export type MetricHistogram = runtime.MetricHistogram
export type MetricHistogramBucket = runtime.MetricHistogramBucket
/**
* Prisma Client JS version: 4.14.1
* Query Engine version: d9a4c5988f480fa576d43970d5a23641aa77bc9c
*/
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 = 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`.'
: {})
/**
* 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 Cast = A extends B ? A : B;
export const type: unique symbol;
export function validator(): (select: runtime.Types.Utils.LegacyExact) => 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 type FieldRef = runtime.FieldRef
type FieldRefInputType = Model extends never ? never : FieldRef
export const ModelName: {
Account: 'Account',
Role: 'Role',
CasbinModel: 'CasbinModel',
CasbinPolicy: 'CasbinPolicy'
};
export type ModelName = (typeof ModelName)[keyof typeof ModelName]
export type Datasources = {
db?: Datasource
}
export type DefaultPrismaClient = PrismaClient
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
}
/* 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;
/**
* `PrismaClient` proxy available in interactive transactions.
*/
export type TransactionClient = Omit
export type Datasource = {
url?: string
}
/**
* Count Types
*/
/**
* Models
*/
/**
* Model Account
*/
export type AggregateAccount = {
_count: AccountCountAggregateOutputType | null
_min: AccountMinAggregateOutputType | null
_max: AccountMaxAggregateOutputType | null
}
export type AccountMinAggregateOutputType = {
id: string | null
name: string | null
userId: string | null
email: string | null
salt: string | null
password: string | null
createdAt: Date | null
updatedAt: Date | null
lastSignedInAt: Date | null
inactive: boolean | null
inactiveAt: Date | null
}
export type AccountMaxAggregateOutputType = {
id: string | null
name: string | null
userId: string | null
email: string | null
salt: string | null
password: string | null
createdAt: Date | null
updatedAt: Date | null
lastSignedInAt: Date | null
inactive: boolean | null
inactiveAt: Date | null
}
export type AccountCountAggregateOutputType = {
id: number
name: number
userId: number
roles: number
email: number
salt: number
password: number
createdAt: number
updatedAt: number
lastSignedInAt: number
inactive: number
inactiveAt: number
_all: number
}
export type AccountMinAggregateInputType = {
id?: true
name?: true
userId?: true
email?: true
salt?: true
password?: true
createdAt?: true
updatedAt?: true
lastSignedInAt?: true
inactive?: true
inactiveAt?: true
}
export type AccountMaxAggregateInputType = {
id?: true
name?: true
userId?: true
email?: true
salt?: true
password?: true
createdAt?: true
updatedAt?: true
lastSignedInAt?: true
inactive?: true
inactiveAt?: true
}
export type AccountCountAggregateInputType = {
id?: true
name?: true
userId?: true
roles?: true
email?: true
salt?: true
password?: true
createdAt?: true
updatedAt?: true
lastSignedInAt?: true
inactive?: true
inactiveAt?: 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 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: AccountScalarFieldEnum[]
having?: AccountScalarWhereWithAggregatesInput
take?: number
skip?: number
_count?: AccountCountAggregateInputType | true
_min?: AccountMinAggregateInputType
_max?: AccountMaxAggregateInputType
}
export type AccountGroupByOutputType = {
id: string
name: string
userId: string
roles: string[]
email: string
salt: string
password: string
createdAt: Date | null
updatedAt: Date | null
lastSignedInAt: Date | null
inactive: boolean
inactiveAt: Date | null
_count: AccountCountAggregateOutputType | null
_min: AccountMinAggregateOutputType | null
_max: AccountMaxAggregateOutputType | null
}
type GetAccountGroupByPayload = Prisma.PrismaPromise<
Array<
PickArray &
{
[P in ((keyof T) & (keyof AccountGroupByOutputType))]: P extends '_count'
? T[P] extends boolean
? number
: GetScalarType
: GetScalarType
}
>
>
export type AccountSelect = {
id?: boolean
name?: boolean
userId?: boolean
roles?: boolean
email?: boolean
salt?: boolean
password?: boolean
createdAt?: boolean
updatedAt?: boolean
lastSignedInAt?: boolean
inactive?: boolean
inactiveAt?: boolean
}
export type AccountGetPayload =
S extends { select: any, include: any } ? 'Please either choose `select` or `include`' :
S extends true ? Account :
S extends undefined ? never :
S extends { include: any } & (AccountArgs | AccountFindManyArgs)
? Account
: S extends { select: any } & (AccountArgs | AccountFindManyArgs)
? {
[P in TruthyKeys]:
P extends keyof Account ? Account[P] : never
}
: Account
type AccountCountArgs =
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 ? Prisma__AccountClient> : Prisma__AccountClient | null, null>
/**
* 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>
/**
* 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 ? Prisma__AccountClient> : Prisma__AccountClient | null, null>
/**
* 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
): Prisma__AccountClient>
/**
* 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>>
/**
* 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>
/**
* 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
/**
* 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>
/**
* 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>
/**
* 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
/**
* 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>
/**
* Find zero or more Accounts that matches the filter.
* @param {AccountFindRawArgs} args - Select which filters you would like to apply.
* @example
* const account = await prisma.account.findRaw({
* filter: { age: { $gt: 25 } }
* })
**/
findRaw(
args?: AccountFindRawArgs
): Prisma.PrismaPromise
/**
* Perform aggregation operations on a Account.
* @param {AccountAggregateRawArgs} args - Select which aggregations you would like to apply.
* @example
* const account = await prisma.account.aggregateRaw({
* pipeline: [
* { $match: { status: "registered" } },
* { $group: { _id: "$country", total: { $sum: 1 } } }
* ]
* })
**/
aggregateRaw(
args?: AccountAggregateRawArgs
): Prisma.PrismaPromise
/**
* 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 _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 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 : Prisma.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 Prisma.PrismaPromise {
private readonly _dmmf;
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?;
readonly [Symbol.toStringTag]: 'PrismaPromise';
constructor(_dmmf: runtime.DMMFClass, _queryType: 'query' | 'mutation', _rootField: string, _clientMethod: string, _args: any, _dataPath: string[], _errorFormat: ErrorFormat, _measurePerformance?: boolean | undefined, _isList?: boolean);
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
/**
* 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 findUniqueOrThrow
*/
export type AccountFindUniqueOrThrowArgs = {
/**
* Select specific fields to fetch from the Account
*/
select?: AccountSelect | null
/**
* Filter, which Account to fetch.
*/
where: AccountWhereUniqueInput
}
/**
* Account base type for findFirst actions
*/
export type AccountFindFirstArgsBase = {
/**
* Select specific fields to fetch from the Account
*/
select?: AccountSelect | 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 findFirstOrThrow
*/
export type AccountFindFirstOrThrowArgs = {
/**
* Select specific fields to fetch from the Account
*/
select?: AccountSelect | 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 findMany
*/
export type AccountFindManyArgs = {
/**
* Select specific fields to fetch from the Account
*/
select?: AccountSelect | 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
/**
* The data needed to create a Account.
*/
data: XOR
}
/**
* Account createMany
*/
export type AccountCreateManyArgs = {
/**
* The data used to create many Accounts.
*/
data: Enumerable
}
/**
* Account update
*/
export type AccountUpdateArgs = {
/**
* Select specific fields to fetch from the Account
*/
select?: AccountSelect | 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
/**
* 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
/**
* Filter which Account to delete.
*/
where: AccountWhereUniqueInput
}
/**
* Account deleteMany
*/
export type AccountDeleteManyArgs = {
/**
* Filter which Accounts to delete
*/
where?: AccountWhereInput
}
/**
* Account findRaw
*/
export type AccountFindRawArgs = {
/**
* The query predicate filter. If unspecified, then all documents in the collection will match the predicate. ${@link https://docs.mongodb.com/manual/reference/operator/query MongoDB Docs}.
*/
filter?: InputJsonValue
/**
* Additional options to pass to the `find` command ${@link https://docs.mongodb.com/manual/reference/command/find/#command-fields MongoDB Docs}.
*/
options?: InputJsonValue
}
/**
* Account aggregateRaw
*/
export type AccountAggregateRawArgs = {
/**
* An array of aggregation stages to process and transform the document stream via the aggregation pipeline. ${@link https://docs.mongodb.com/manual/reference/operator/aggregation-pipeline MongoDB Docs}.
*/
pipeline?: InputJsonValue[]
/**
* Additional options to pass to the `aggregate` command ${@link https://docs.mongodb.com/manual/reference/command/aggregate/#command-fields MongoDB Docs}.
*/
options?: InputJsonValue
}
/**
* Account without action
*/
export type AccountArgs = {
/**
* Select specific fields to fetch from the Account
*/
select?: AccountSelect | null
}
/**
* Model Role
*/
export type AggregateRole = {
_count: RoleCountAggregateOutputType | null
_min: RoleMinAggregateOutputType | null
_max: RoleMaxAggregateOutputType | null
}
export type RoleMinAggregateOutputType = {
id: string | null
name: string | null
roleId: string | null
description: string | null
createdAt: Date | null
updatedAt: Date | null
inactive: boolean | null
inactiveAt: Date | null
}
export type RoleMaxAggregateOutputType = {
id: string | null
name: string | null
roleId: string | null
description: string | null
createdAt: Date | null
updatedAt: Date | null
inactive: boolean | null
inactiveAt: Date | null
}
export type RoleCountAggregateOutputType = {
id: number
name: number
roleId: number
description: number
createdAt: number
updatedAt: number
inactive: number
inactiveAt: number
_all: number
}
export type RoleMinAggregateInputType = {
id?: true
name?: true
roleId?: true
description?: true
createdAt?: true
updatedAt?: true
inactive?: true
inactiveAt?: true
}
export type RoleMaxAggregateInputType = {
id?: true
name?: true
roleId?: true
description?: true
createdAt?: true
updatedAt?: true
inactive?: true
inactiveAt?: true
}
export type RoleCountAggregateInputType = {
id?: true
name?: true
roleId?: true
description?: true
createdAt?: true
updatedAt?: true
inactive?: true
inactiveAt?: true
_all?: true
}
export type RoleAggregateArgs = {
/**
* Filter which Role to aggregate.
*/
where?: RoleWhereInput
/**
* {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
*
* Determine the order of Roles 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?: RoleWhereUniqueInput
/**
* {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
*
* Take `±n` Roles 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` Roles.
*/
skip?: number
/**
* {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
*
* Count returned Roles
**/
_count?: true | RoleCountAggregateInputType
/**
* {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
*
* Select which fields to find the minimum value
**/
_min?: RoleMinAggregateInputType
/**
* {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
*
* Select which fields to find the maximum value
**/
_max?: RoleMaxAggregateInputType
}
export type GetRoleAggregateType = {
[P in keyof T & keyof AggregateRole]: P extends '_count' | 'count'
? T[P] extends true
? number
: GetScalarType
: GetScalarType
}
export type RoleGroupByArgs = {
where?: RoleWhereInput
orderBy?: Enumerable
by: RoleScalarFieldEnum[]
having?: RoleScalarWhereWithAggregatesInput
take?: number
skip?: number
_count?: RoleCountAggregateInputType | true
_min?: RoleMinAggregateInputType
_max?: RoleMaxAggregateInputType
}
export type RoleGroupByOutputType = {
id: string
name: string
roleId: string
description: string
createdAt: Date | null
updatedAt: Date | null
inactive: boolean
inactiveAt: Date | null
_count: RoleCountAggregateOutputType | null
_min: RoleMinAggregateOutputType | null
_max: RoleMaxAggregateOutputType | null
}
type GetRoleGroupByPayload = Prisma.PrismaPromise<
Array<
PickArray &
{
[P in ((keyof T) & (keyof RoleGroupByOutputType))]: P extends '_count'
? T[P] extends boolean
? number
: GetScalarType
: GetScalarType
}
>
>
export type RoleSelect = {
id?: boolean
name?: boolean
roleId?: boolean
description?: boolean
createdAt?: boolean
updatedAt?: boolean
inactive?: boolean
inactiveAt?: boolean
}
export type RoleGetPayload =
S extends { select: any, include: any } ? 'Please either choose `select` or `include`' :
S extends true ? Role :
S extends undefined ? never :
S extends { include: any } & (RoleArgs | RoleFindManyArgs)
? Role
: S extends { select: any } & (RoleArgs | RoleFindManyArgs)
? {
[P in TruthyKeys]:
P extends keyof Role ? Role[P] : never
}
: Role
type RoleCountArgs =
Omit & {
select?: RoleCountAggregateInputType | true
}
export interface RoleDelegate {
/**
* Find zero or one Role that matches the filter.
* @param {RoleFindUniqueArgs} args - Arguments to find a Role
* @example
* // Get one Role
* const role = await prisma.role.findUnique({
* where: {
* // ... provide filter here
* }
* })
**/
findUnique(
args: SelectSubset
): HasReject extends True ? Prisma__RoleClient> : Prisma__RoleClient | null, null>
/**
* Find one Role that matches the filter or throw an error with `error.code='P2025'`
* if no matches were found.
* @param {RoleFindUniqueOrThrowArgs} args - Arguments to find a Role
* @example
* // Get one Role
* const role = await prisma.role.findUniqueOrThrow({
* where: {
* // ... provide filter here
* }
* })
**/
findUniqueOrThrow