/** * Client **/ import * as runtime from './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 Conversations * */ export type Conversations = $Result.DefaultSelection /** * Model Messages * */ export type Messages = $Result.DefaultSelection /** * Model MessageAttachments * */ export type MessageAttachments = $Result.DefaultSelection /** * Model TypingIndicators * */ export type TypingIndicators = $Result.DefaultSelection /** * Model ConversationParticipants * */ export type ConversationParticipants = $Result.DefaultSelection /** * Enums */ export namespace $Enums { export const ConversationStatus: { active: 'active', closed: 'closed', archived: 'archived' }; export type ConversationStatus = (typeof ConversationStatus)[keyof typeof ConversationStatus] export const Priority: { low: 'low', normal: 'normal', high: 'high', urgent: 'urgent' }; export type Priority = (typeof Priority)[keyof typeof Priority] export const MessageType: { text: 'text', image: 'image', file: 'file', audio: 'audio', video: 'video', location: 'location', contact: 'contact' }; export type MessageType = (typeof MessageType)[keyof typeof MessageType] export const SenderType: { admin: 'admin', user: 'user', system: 'system' }; export type SenderType = (typeof SenderType)[keyof typeof SenderType] export const MessageStatus: { sent: 'sent', delivered: 'delivered', read: 'read', failed: 'failed' }; export type MessageStatus = (typeof MessageStatus)[keyof typeof MessageStatus] export const ParticipantRole: { admin: 'admin', member: 'member', observer: 'observer' }; export type ParticipantRole = (typeof ParticipantRole)[keyof typeof ParticipantRole] } export type ConversationStatus = $Enums.ConversationStatus export const ConversationStatus: typeof $Enums.ConversationStatus export type Priority = $Enums.Priority export const Priority: typeof $Enums.Priority export type MessageType = $Enums.MessageType export const MessageType: typeof $Enums.MessageType export type SenderType = $Enums.SenderType export const SenderType: typeof $Enums.SenderType export type MessageStatus = $Enums.MessageStatus export const MessageStatus: typeof $Enums.MessageStatus export type ParticipantRole = $Enums.ParticipantRole export const ParticipantRole: typeof $Enums.ParticipantRole /** * ## Prisma Client ʲˢ * * Type-safe database client for TypeScript & Node.js * @example * ``` * const prisma = new PrismaClient() * // Fetch zero or more Conversations * const conversations = await prisma.conversations.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 Conversations * const conversations = await prisma.conversations.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; /** * Add a middleware * @deprecated since 4.16.0. For new code, prefer client extensions instead. * @see https://pris.ly/d/extensions */ $use(cb: Prisma.Middleware): void /** * 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.conversations`: Exposes CRUD operations for the **Conversations** model. * Example usage: * ```ts * // Fetch zero or more Conversations * const conversations = await prisma.conversations.findMany() * ``` */ get conversations(): Prisma.ConversationsDelegate; /** * `prisma.messages`: Exposes CRUD operations for the **Messages** model. * Example usage: * ```ts * // Fetch zero or more Messages * const messages = await prisma.messages.findMany() * ``` */ get messages(): Prisma.MessagesDelegate; /** * `prisma.messageAttachments`: Exposes CRUD operations for the **MessageAttachments** model. * Example usage: * ```ts * // Fetch zero or more MessageAttachments * const messageAttachments = await prisma.messageAttachments.findMany() * ``` */ get messageAttachments(): Prisma.MessageAttachmentsDelegate; /** * `prisma.typingIndicators`: Exposes CRUD operations for the **TypingIndicators** model. * Example usage: * ```ts * // Fetch zero or more TypingIndicators * const typingIndicators = await prisma.typingIndicators.findMany() * ``` */ get typingIndicators(): Prisma.TypingIndicatorsDelegate; /** * `prisma.conversationParticipants`: Exposes CRUD operations for the **ConversationParticipants** model. * Example usage: * ```ts * // Fetch zero or more ConversationParticipants * const conversationParticipants = await prisma.conversationParticipants.findMany() * ``` */ get conversationParticipants(): Prisma.ConversationParticipantsDelegate; } 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.13.0 * Query Engine version: 361e86d0ea4987e9f53a565309b3eed797a6bcbd */ export type PrismaVersion = { client: string } export const prismaVersion: PrismaVersion /** * Utility Types */ 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: { Conversations: 'Conversations', Messages: 'Messages', MessageAttachments: 'MessageAttachments', TypingIndicators: 'TypingIndicators', ConversationParticipants: 'ConversationParticipants' }; export type ModelName = (typeof ModelName)[keyof typeof ModelName] export type Datasources = { db_msg?: Datasource } interface TypeMapCb extends $Utils.Fn<{extArgs: $Extensions.InternalArgs }, $Utils.Record> { returns: Prisma.TypeMap } export type TypeMap = { globalOmitOptions: { omit: GlobalOmitOptions } meta: { modelProps: "conversations" | "messages" | "messageAttachments" | "typingIndicators" | "conversationParticipants" txIsolationLevel: Prisma.TransactionIsolationLevel } model: { Conversations: { payload: Prisma.$ConversationsPayload fields: Prisma.ConversationsFieldRefs operations: { findUnique: { args: Prisma.ConversationsFindUniqueArgs result: $Utils.PayloadToResult | null } findUniqueOrThrow: { args: Prisma.ConversationsFindUniqueOrThrowArgs result: $Utils.PayloadToResult } findFirst: { args: Prisma.ConversationsFindFirstArgs result: $Utils.PayloadToResult | null } findFirstOrThrow: { args: Prisma.ConversationsFindFirstOrThrowArgs result: $Utils.PayloadToResult } findMany: { args: Prisma.ConversationsFindManyArgs result: $Utils.PayloadToResult[] } create: { args: Prisma.ConversationsCreateArgs result: $Utils.PayloadToResult } createMany: { args: Prisma.ConversationsCreateManyArgs result: BatchPayload } createManyAndReturn: { args: Prisma.ConversationsCreateManyAndReturnArgs result: $Utils.PayloadToResult[] } delete: { args: Prisma.ConversationsDeleteArgs result: $Utils.PayloadToResult } update: { args: Prisma.ConversationsUpdateArgs result: $Utils.PayloadToResult } deleteMany: { args: Prisma.ConversationsDeleteManyArgs result: BatchPayload } updateMany: { args: Prisma.ConversationsUpdateManyArgs result: BatchPayload } updateManyAndReturn: { args: Prisma.ConversationsUpdateManyAndReturnArgs result: $Utils.PayloadToResult[] } upsert: { args: Prisma.ConversationsUpsertArgs result: $Utils.PayloadToResult } aggregate: { args: Prisma.ConversationsAggregateArgs result: $Utils.Optional } groupBy: { args: Prisma.ConversationsGroupByArgs result: $Utils.Optional[] } count: { args: Prisma.ConversationsCountArgs result: $Utils.Optional | number } } } Messages: { payload: Prisma.$MessagesPayload fields: Prisma.MessagesFieldRefs operations: { findUnique: { args: Prisma.MessagesFindUniqueArgs result: $Utils.PayloadToResult | null } findUniqueOrThrow: { args: Prisma.MessagesFindUniqueOrThrowArgs result: $Utils.PayloadToResult } findFirst: { args: Prisma.MessagesFindFirstArgs result: $Utils.PayloadToResult | null } findFirstOrThrow: { args: Prisma.MessagesFindFirstOrThrowArgs result: $Utils.PayloadToResult } findMany: { args: Prisma.MessagesFindManyArgs result: $Utils.PayloadToResult[] } create: { args: Prisma.MessagesCreateArgs result: $Utils.PayloadToResult } createMany: { args: Prisma.MessagesCreateManyArgs result: BatchPayload } createManyAndReturn: { args: Prisma.MessagesCreateManyAndReturnArgs result: $Utils.PayloadToResult[] } delete: { args: Prisma.MessagesDeleteArgs result: $Utils.PayloadToResult } update: { args: Prisma.MessagesUpdateArgs result: $Utils.PayloadToResult } deleteMany: { args: Prisma.MessagesDeleteManyArgs result: BatchPayload } updateMany: { args: Prisma.MessagesUpdateManyArgs result: BatchPayload } updateManyAndReturn: { args: Prisma.MessagesUpdateManyAndReturnArgs result: $Utils.PayloadToResult[] } upsert: { args: Prisma.MessagesUpsertArgs result: $Utils.PayloadToResult } aggregate: { args: Prisma.MessagesAggregateArgs result: $Utils.Optional } groupBy: { args: Prisma.MessagesGroupByArgs result: $Utils.Optional[] } count: { args: Prisma.MessagesCountArgs result: $Utils.Optional | number } } } MessageAttachments: { payload: Prisma.$MessageAttachmentsPayload fields: Prisma.MessageAttachmentsFieldRefs operations: { findUnique: { args: Prisma.MessageAttachmentsFindUniqueArgs result: $Utils.PayloadToResult | null } findUniqueOrThrow: { args: Prisma.MessageAttachmentsFindUniqueOrThrowArgs result: $Utils.PayloadToResult } findFirst: { args: Prisma.MessageAttachmentsFindFirstArgs result: $Utils.PayloadToResult | null } findFirstOrThrow: { args: Prisma.MessageAttachmentsFindFirstOrThrowArgs result: $Utils.PayloadToResult } findMany: { args: Prisma.MessageAttachmentsFindManyArgs result: $Utils.PayloadToResult[] } create: { args: Prisma.MessageAttachmentsCreateArgs result: $Utils.PayloadToResult } createMany: { args: Prisma.MessageAttachmentsCreateManyArgs result: BatchPayload } createManyAndReturn: { args: Prisma.MessageAttachmentsCreateManyAndReturnArgs result: $Utils.PayloadToResult[] } delete: { args: Prisma.MessageAttachmentsDeleteArgs result: $Utils.PayloadToResult } update: { args: Prisma.MessageAttachmentsUpdateArgs result: $Utils.PayloadToResult } deleteMany: { args: Prisma.MessageAttachmentsDeleteManyArgs result: BatchPayload } updateMany: { args: Prisma.MessageAttachmentsUpdateManyArgs result: BatchPayload } updateManyAndReturn: { args: Prisma.MessageAttachmentsUpdateManyAndReturnArgs result: $Utils.PayloadToResult[] } upsert: { args: Prisma.MessageAttachmentsUpsertArgs result: $Utils.PayloadToResult } aggregate: { args: Prisma.MessageAttachmentsAggregateArgs result: $Utils.Optional } groupBy: { args: Prisma.MessageAttachmentsGroupByArgs result: $Utils.Optional[] } count: { args: Prisma.MessageAttachmentsCountArgs result: $Utils.Optional | number } } } TypingIndicators: { payload: Prisma.$TypingIndicatorsPayload fields: Prisma.TypingIndicatorsFieldRefs operations: { findUnique: { args: Prisma.TypingIndicatorsFindUniqueArgs result: $Utils.PayloadToResult | null } findUniqueOrThrow: { args: Prisma.TypingIndicatorsFindUniqueOrThrowArgs result: $Utils.PayloadToResult } findFirst: { args: Prisma.TypingIndicatorsFindFirstArgs result: $Utils.PayloadToResult | null } findFirstOrThrow: { args: Prisma.TypingIndicatorsFindFirstOrThrowArgs result: $Utils.PayloadToResult } findMany: { args: Prisma.TypingIndicatorsFindManyArgs result: $Utils.PayloadToResult[] } create: { args: Prisma.TypingIndicatorsCreateArgs result: $Utils.PayloadToResult } createMany: { args: Prisma.TypingIndicatorsCreateManyArgs result: BatchPayload } createManyAndReturn: { args: Prisma.TypingIndicatorsCreateManyAndReturnArgs result: $Utils.PayloadToResult[] } delete: { args: Prisma.TypingIndicatorsDeleteArgs result: $Utils.PayloadToResult } update: { args: Prisma.TypingIndicatorsUpdateArgs result: $Utils.PayloadToResult } deleteMany: { args: Prisma.TypingIndicatorsDeleteManyArgs result: BatchPayload } updateMany: { args: Prisma.TypingIndicatorsUpdateManyArgs result: BatchPayload } updateManyAndReturn: { args: Prisma.TypingIndicatorsUpdateManyAndReturnArgs result: $Utils.PayloadToResult[] } upsert: { args: Prisma.TypingIndicatorsUpsertArgs result: $Utils.PayloadToResult } aggregate: { args: Prisma.TypingIndicatorsAggregateArgs result: $Utils.Optional } groupBy: { args: Prisma.TypingIndicatorsGroupByArgs result: $Utils.Optional[] } count: { args: Prisma.TypingIndicatorsCountArgs result: $Utils.Optional | number } } } ConversationParticipants: { payload: Prisma.$ConversationParticipantsPayload fields: Prisma.ConversationParticipantsFieldRefs operations: { findUnique: { args: Prisma.ConversationParticipantsFindUniqueArgs result: $Utils.PayloadToResult | null } findUniqueOrThrow: { args: Prisma.ConversationParticipantsFindUniqueOrThrowArgs result: $Utils.PayloadToResult } findFirst: { args: Prisma.ConversationParticipantsFindFirstArgs result: $Utils.PayloadToResult | null } findFirstOrThrow: { args: Prisma.ConversationParticipantsFindFirstOrThrowArgs result: $Utils.PayloadToResult } findMany: { args: Prisma.ConversationParticipantsFindManyArgs result: $Utils.PayloadToResult[] } create: { args: Prisma.ConversationParticipantsCreateArgs result: $Utils.PayloadToResult } createMany: { args: Prisma.ConversationParticipantsCreateManyArgs result: BatchPayload } createManyAndReturn: { args: Prisma.ConversationParticipantsCreateManyAndReturnArgs result: $Utils.PayloadToResult[] } delete: { args: Prisma.ConversationParticipantsDeleteArgs result: $Utils.PayloadToResult } update: { args: Prisma.ConversationParticipantsUpdateArgs result: $Utils.PayloadToResult } deleteMany: { args: Prisma.ConversationParticipantsDeleteManyArgs result: BatchPayload } updateMany: { args: Prisma.ConversationParticipantsUpdateManyArgs result: BatchPayload } updateManyAndReturn: { args: Prisma.ConversationParticipantsUpdateManyAndReturnArgs result: $Utils.PayloadToResult[] } upsert: { args: Prisma.ConversationParticipantsUpsertArgs result: $Utils.PayloadToResult } aggregate: { args: Prisma.ConversationParticipantsAggregateArgs result: $Utils.Optional } groupBy: { args: Prisma.ConversationParticipantsGroupByArgs result: $Utils.Optional[] } count: { args: Prisma.ConversationParticipantsCountArgs 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 } /** * Global configuration for omitting model fields by default. * * @example * ``` * const prisma = new PrismaClient({ * omit: { * user: { * password: true * } * } * }) * ``` */ omit?: Prisma.GlobalOmitConfig } export type GlobalOmitConfig = { conversations?: ConversationsOmit messages?: MessagesOmit messageAttachments?: MessageAttachmentsOmit typingIndicators?: TypingIndicatorsOmit conversationParticipants?: ConversationParticipantsOmit } /* 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' /** * 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) => $Utils.JsPromise, ) => $Utils.JsPromise // 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 ConversationsCountOutputType */ export type ConversationsCountOutputType = { messages: number } export type ConversationsCountOutputTypeSelect = { messages?: boolean | ConversationsCountOutputTypeCountMessagesArgs } // Custom InputTypes /** * ConversationsCountOutputType without action */ export type ConversationsCountOutputTypeDefaultArgs = { /** * Select specific fields to fetch from the ConversationsCountOutputType */ select?: ConversationsCountOutputTypeSelect | null } /** * ConversationsCountOutputType without action */ export type ConversationsCountOutputTypeCountMessagesArgs = { where?: MessagesWhereInput } /** * Models */ /** * Model Conversations */ export type AggregateConversations = { _count: ConversationsCountAggregateOutputType | null _min: ConversationsMinAggregateOutputType | null _max: ConversationsMaxAggregateOutputType | null } export type ConversationsMinAggregateOutputType = { id: string | null subject: string | null status: $Enums.ConversationStatus | null priority: $Enums.Priority | null category: string | null userId: string | null adminId: string | null createdAt: Date | null updatedAt: Date | null lastMessageAt: Date | null } export type ConversationsMaxAggregateOutputType = { id: string | null subject: string | null status: $Enums.ConversationStatus | null priority: $Enums.Priority | null category: string | null userId: string | null adminId: string | null createdAt: Date | null updatedAt: Date | null lastMessageAt: Date | null } export type ConversationsCountAggregateOutputType = { id: number subject: number status: number priority: number category: number userId: number adminId: number createdAt: number updatedAt: number lastMessageAt: number metadata: number _all: number } export type ConversationsMinAggregateInputType = { id?: true subject?: true status?: true priority?: true category?: true userId?: true adminId?: true createdAt?: true updatedAt?: true lastMessageAt?: true } export type ConversationsMaxAggregateInputType = { id?: true subject?: true status?: true priority?: true category?: true userId?: true adminId?: true createdAt?: true updatedAt?: true lastMessageAt?: true } export type ConversationsCountAggregateInputType = { id?: true subject?: true status?: true priority?: true category?: true userId?: true adminId?: true createdAt?: true updatedAt?: true lastMessageAt?: true metadata?: true _all?: true } export type ConversationsAggregateArgs = { /** * Filter which Conversations to aggregate. */ where?: ConversationsWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Conversations to fetch. */ orderBy?: ConversationsOrderByWithRelationInput | ConversationsOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the start position */ cursor?: ConversationsWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Conversations 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` Conversations. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Count returned Conversations **/ _count?: true | ConversationsCountAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the minimum value **/ _min?: ConversationsMinAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the maximum value **/ _max?: ConversationsMaxAggregateInputType } export type GetConversationsAggregateType = { [P in keyof T & keyof AggregateConversations]: P extends '_count' | 'count' ? T[P] extends true ? number : GetScalarType : GetScalarType } export type ConversationsGroupByArgs = { where?: ConversationsWhereInput orderBy?: ConversationsOrderByWithAggregationInput | ConversationsOrderByWithAggregationInput[] by: ConversationsScalarFieldEnum[] | ConversationsScalarFieldEnum having?: ConversationsScalarWhereWithAggregatesInput take?: number skip?: number _count?: ConversationsCountAggregateInputType | true _min?: ConversationsMinAggregateInputType _max?: ConversationsMaxAggregateInputType } export type ConversationsGroupByOutputType = { id: string subject: string | null status: $Enums.ConversationStatus priority: $Enums.Priority category: string | null userId: string adminId: string | null createdAt: Date updatedAt: Date lastMessageAt: Date | null metadata: JsonValue | null _count: ConversationsCountAggregateOutputType | null _min: ConversationsMinAggregateOutputType | null _max: ConversationsMaxAggregateOutputType | null } type GetConversationsGroupByPayload = Prisma.PrismaPromise< Array< PickEnumerable & { [P in ((keyof T) & (keyof ConversationsGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : GetScalarType : GetScalarType } > > export type ConversationsSelect = $Extensions.GetSelect<{ id?: boolean subject?: boolean status?: boolean priority?: boolean category?: boolean userId?: boolean adminId?: boolean createdAt?: boolean updatedAt?: boolean lastMessageAt?: boolean metadata?: boolean messages?: boolean | Conversations$messagesArgs _count?: boolean | ConversationsCountOutputTypeDefaultArgs }, ExtArgs["result"]["conversations"]> export type ConversationsSelectCreateManyAndReturn = $Extensions.GetSelect<{ id?: boolean subject?: boolean status?: boolean priority?: boolean category?: boolean userId?: boolean adminId?: boolean createdAt?: boolean updatedAt?: boolean lastMessageAt?: boolean metadata?: boolean }, ExtArgs["result"]["conversations"]> export type ConversationsSelectUpdateManyAndReturn = $Extensions.GetSelect<{ id?: boolean subject?: boolean status?: boolean priority?: boolean category?: boolean userId?: boolean adminId?: boolean createdAt?: boolean updatedAt?: boolean lastMessageAt?: boolean metadata?: boolean }, ExtArgs["result"]["conversations"]> export type ConversationsSelectScalar = { id?: boolean subject?: boolean status?: boolean priority?: boolean category?: boolean userId?: boolean adminId?: boolean createdAt?: boolean updatedAt?: boolean lastMessageAt?: boolean metadata?: boolean } export type ConversationsOmit = $Extensions.GetOmit<"id" | "subject" | "status" | "priority" | "category" | "userId" | "adminId" | "createdAt" | "updatedAt" | "lastMessageAt" | "metadata", ExtArgs["result"]["conversations"]> export type ConversationsInclude = { messages?: boolean | Conversations$messagesArgs _count?: boolean | ConversationsCountOutputTypeDefaultArgs } export type ConversationsIncludeCreateManyAndReturn = {} export type ConversationsIncludeUpdateManyAndReturn = {} export type $ConversationsPayload = { name: "Conversations" objects: { messages: Prisma.$MessagesPayload[] } scalars: $Extensions.GetPayloadResult<{ id: string subject: string | null status: $Enums.ConversationStatus priority: $Enums.Priority category: string | null userId: string adminId: string | null createdAt: Date updatedAt: Date lastMessageAt: Date | null metadata: Prisma.JsonValue | null }, ExtArgs["result"]["conversations"]> composites: {} } type ConversationsGetPayload = $Result.GetResult type ConversationsCountArgs = Omit & { select?: ConversationsCountAggregateInputType | true } export interface ConversationsDelegate { [K: symbol]: { types: Prisma.TypeMap['model']['Conversations'], meta: { name: 'Conversations' } } /** * Find zero or one Conversations that matches the filter. * @param {ConversationsFindUniqueArgs} args - Arguments to find a Conversations * @example * // Get one Conversations * const conversations = await prisma.conversations.findUnique({ * where: { * // ... provide filter here * } * }) */ findUnique(args: SelectSubset>): Prisma__ConversationsClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find one Conversations that matches the filter or throw an error with `error.code='P2025'` * if no matches were found. * @param {ConversationsFindUniqueOrThrowArgs} args - Arguments to find a Conversations * @example * // Get one Conversations * const conversations = await prisma.conversations.findUniqueOrThrow({ * where: { * // ... provide filter here * } * }) */ findUniqueOrThrow(args: SelectSubset>): Prisma__ConversationsClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find the first Conversations 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 {ConversationsFindFirstArgs} args - Arguments to find a Conversations * @example * // Get one Conversations * const conversations = await prisma.conversations.findFirst({ * where: { * // ... provide filter here * } * }) */ findFirst(args?: SelectSubset>): Prisma__ConversationsClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find the first Conversations 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 {ConversationsFindFirstOrThrowArgs} args - Arguments to find a Conversations * @example * // Get one Conversations * const conversations = await prisma.conversations.findFirstOrThrow({ * where: { * // ... provide filter here * } * }) */ findFirstOrThrow(args?: SelectSubset>): Prisma__ConversationsClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find zero or more Conversations 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 {ConversationsFindManyArgs} args - Arguments to filter and select certain fields only. * @example * // Get all Conversations * const conversations = await prisma.conversations.findMany() * * // Get first 10 Conversations * const conversations = await prisma.conversations.findMany({ take: 10 }) * * // Only select the `id` * const conversationsWithIdOnly = await prisma.conversations.findMany({ select: { id: true } }) * */ findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> /** * Create a Conversations. * @param {ConversationsCreateArgs} args - Arguments to create a Conversations. * @example * // Create one Conversations * const Conversations = await prisma.conversations.create({ * data: { * // ... data to create a Conversations * } * }) * */ create(args: SelectSubset>): Prisma__ConversationsClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Create many Conversations. * @param {ConversationsCreateManyArgs} args - Arguments to create many Conversations. * @example * // Create many Conversations * const conversations = await prisma.conversations.createMany({ * data: [ * // ... provide data here * ] * }) * */ createMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Create many Conversations and returns the data saved in the database. * @param {ConversationsCreateManyAndReturnArgs} args - Arguments to create many Conversations. * @example * // Create many Conversations * const conversations = await prisma.conversations.createManyAndReturn({ * data: [ * // ... provide data here * ] * }) * * // Create many Conversations and only return the `id` * const conversationsWithIdOnly = await prisma.conversations.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 Conversations. * @param {ConversationsDeleteArgs} args - Arguments to delete one Conversations. * @example * // Delete one Conversations * const Conversations = await prisma.conversations.delete({ * where: { * // ... filter to delete one Conversations * } * }) * */ delete(args: SelectSubset>): Prisma__ConversationsClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Update one Conversations. * @param {ConversationsUpdateArgs} args - Arguments to update one Conversations. * @example * // Update one Conversations * const conversations = await prisma.conversations.update({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ update(args: SelectSubset>): Prisma__ConversationsClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Delete zero or more Conversations. * @param {ConversationsDeleteManyArgs} args - Arguments to filter Conversations to delete. * @example * // Delete a few Conversations * const { count } = await prisma.conversations.deleteMany({ * where: { * // ... provide filter here * } * }) * */ deleteMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Conversations. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {ConversationsUpdateManyArgs} args - Arguments to update one or more rows. * @example * // Update many Conversations * const conversations = await prisma.conversations.updateMany({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ updateMany(args: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Conversations and returns the data updated in the database. * @param {ConversationsUpdateManyAndReturnArgs} args - Arguments to update many Conversations. * @example * // Update many Conversations * const conversations = await prisma.conversations.updateManyAndReturn({ * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * * // Update zero or more Conversations and only return the `id` * const conversationsWithIdOnly = await prisma.conversations.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 Conversations. * @param {ConversationsUpsertArgs} args - Arguments to update or create a Conversations. * @example * // Update or create a Conversations * const conversations = await prisma.conversations.upsert({ * create: { * // ... data to create a Conversations * }, * update: { * // ... in case it already exists, update * }, * where: { * // ... the filter for the Conversations we want to update * } * }) */ upsert(args: SelectSubset>): Prisma__ConversationsClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Count the number of Conversations. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {ConversationsCountArgs} args - Arguments to filter Conversations to count. * @example * // Count the number of Conversations * const count = await prisma.conversations.count({ * where: { * // ... the filter for the Conversations 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 Conversations. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {ConversationsAggregateArgs} 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 Conversations. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {ConversationsGroupByArgs} 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 ConversationsGroupByArgs, HasSelectOrTake extends Or< Extends<'skip', Keys>, Extends<'take', Keys> >, OrderByArg extends True extends HasSelectOrTake ? { orderBy: ConversationsGroupByArgs['orderBy'] } : { orderBy?: ConversationsGroupByArgs['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 ? GetConversationsGroupByPayload : Prisma.PrismaPromise /** * Fields of the Conversations model */ readonly fields: ConversationsFieldRefs; } /** * The delegate class that acts as a "Promise-like" for Conversations. * 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__ConversationsClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" messages = {}>(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 Conversations model */ interface ConversationsFieldRefs { readonly id: FieldRef<"Conversations", 'String'> readonly subject: FieldRef<"Conversations", 'String'> readonly status: FieldRef<"Conversations", 'ConversationStatus'> readonly priority: FieldRef<"Conversations", 'Priority'> readonly category: FieldRef<"Conversations", 'String'> readonly userId: FieldRef<"Conversations", 'String'> readonly adminId: FieldRef<"Conversations", 'String'> readonly createdAt: FieldRef<"Conversations", 'DateTime'> readonly updatedAt: FieldRef<"Conversations", 'DateTime'> readonly lastMessageAt: FieldRef<"Conversations", 'DateTime'> readonly metadata: FieldRef<"Conversations", 'Json'> } // Custom InputTypes /** * Conversations findUnique */ export type ConversationsFindUniqueArgs = { /** * Select specific fields to fetch from the Conversations */ select?: ConversationsSelect | null /** * Omit specific fields from the Conversations */ omit?: ConversationsOmit | null /** * Choose, which related nodes to fetch as well */ include?: ConversationsInclude | null /** * Filter, which Conversations to fetch. */ where: ConversationsWhereUniqueInput } /** * Conversations findUniqueOrThrow */ export type ConversationsFindUniqueOrThrowArgs = { /** * Select specific fields to fetch from the Conversations */ select?: ConversationsSelect | null /** * Omit specific fields from the Conversations */ omit?: ConversationsOmit | null /** * Choose, which related nodes to fetch as well */ include?: ConversationsInclude | null /** * Filter, which Conversations to fetch. */ where: ConversationsWhereUniqueInput } /** * Conversations findFirst */ export type ConversationsFindFirstArgs = { /** * Select specific fields to fetch from the Conversations */ select?: ConversationsSelect | null /** * Omit specific fields from the Conversations */ omit?: ConversationsOmit | null /** * Choose, which related nodes to fetch as well */ include?: ConversationsInclude | null /** * Filter, which Conversations to fetch. */ where?: ConversationsWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Conversations to fetch. */ orderBy?: ConversationsOrderByWithRelationInput | ConversationsOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Conversations. */ cursor?: ConversationsWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Conversations 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` Conversations. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Conversations. */ distinct?: ConversationsScalarFieldEnum | ConversationsScalarFieldEnum[] } /** * Conversations findFirstOrThrow */ export type ConversationsFindFirstOrThrowArgs = { /** * Select specific fields to fetch from the Conversations */ select?: ConversationsSelect | null /** * Omit specific fields from the Conversations */ omit?: ConversationsOmit | null /** * Choose, which related nodes to fetch as well */ include?: ConversationsInclude | null /** * Filter, which Conversations to fetch. */ where?: ConversationsWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Conversations to fetch. */ orderBy?: ConversationsOrderByWithRelationInput | ConversationsOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Conversations. */ cursor?: ConversationsWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Conversations 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` Conversations. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Conversations. */ distinct?: ConversationsScalarFieldEnum | ConversationsScalarFieldEnum[] } /** * Conversations findMany */ export type ConversationsFindManyArgs = { /** * Select specific fields to fetch from the Conversations */ select?: ConversationsSelect | null /** * Omit specific fields from the Conversations */ omit?: ConversationsOmit | null /** * Choose, which related nodes to fetch as well */ include?: ConversationsInclude | null /** * Filter, which Conversations to fetch. */ where?: ConversationsWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Conversations to fetch. */ orderBy?: ConversationsOrderByWithRelationInput | ConversationsOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for listing Conversations. */ cursor?: ConversationsWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Conversations 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` Conversations. */ skip?: number distinct?: ConversationsScalarFieldEnum | ConversationsScalarFieldEnum[] } /** * Conversations create */ export type ConversationsCreateArgs = { /** * Select specific fields to fetch from the Conversations */ select?: ConversationsSelect | null /** * Omit specific fields from the Conversations */ omit?: ConversationsOmit | null /** * Choose, which related nodes to fetch as well */ include?: ConversationsInclude | null /** * The data needed to create a Conversations. */ data: XOR } /** * Conversations createMany */ export type ConversationsCreateManyArgs = { /** * The data used to create many Conversations. */ data: ConversationsCreateManyInput | ConversationsCreateManyInput[] skipDuplicates?: boolean } /** * Conversations createManyAndReturn */ export type ConversationsCreateManyAndReturnArgs = { /** * Select specific fields to fetch from the Conversations */ select?: ConversationsSelectCreateManyAndReturn | null /** * Omit specific fields from the Conversations */ omit?: ConversationsOmit | null /** * The data used to create many Conversations. */ data: ConversationsCreateManyInput | ConversationsCreateManyInput[] skipDuplicates?: boolean } /** * Conversations update */ export type ConversationsUpdateArgs = { /** * Select specific fields to fetch from the Conversations */ select?: ConversationsSelect | null /** * Omit specific fields from the Conversations */ omit?: ConversationsOmit | null /** * Choose, which related nodes to fetch as well */ include?: ConversationsInclude | null /** * The data needed to update a Conversations. */ data: XOR /** * Choose, which Conversations to update. */ where: ConversationsWhereUniqueInput } /** * Conversations updateMany */ export type ConversationsUpdateManyArgs = { /** * The data used to update Conversations. */ data: XOR /** * Filter which Conversations to update */ where?: ConversationsWhereInput /** * Limit how many Conversations to update. */ limit?: number } /** * Conversations updateManyAndReturn */ export type ConversationsUpdateManyAndReturnArgs = { /** * Select specific fields to fetch from the Conversations */ select?: ConversationsSelectUpdateManyAndReturn | null /** * Omit specific fields from the Conversations */ omit?: ConversationsOmit | null /** * The data used to update Conversations. */ data: XOR /** * Filter which Conversations to update */ where?: ConversationsWhereInput /** * Limit how many Conversations to update. */ limit?: number } /** * Conversations upsert */ export type ConversationsUpsertArgs = { /** * Select specific fields to fetch from the Conversations */ select?: ConversationsSelect | null /** * Omit specific fields from the Conversations */ omit?: ConversationsOmit | null /** * Choose, which related nodes to fetch as well */ include?: ConversationsInclude | null /** * The filter to search for the Conversations to update in case it exists. */ where: ConversationsWhereUniqueInput /** * In case the Conversations found by the `where` argument doesn't exist, create a new Conversations with this data. */ create: XOR /** * In case the Conversations was found with the provided `where` argument, update it with this data. */ update: XOR } /** * Conversations delete */ export type ConversationsDeleteArgs = { /** * Select specific fields to fetch from the Conversations */ select?: ConversationsSelect | null /** * Omit specific fields from the Conversations */ omit?: ConversationsOmit | null /** * Choose, which related nodes to fetch as well */ include?: ConversationsInclude | null /** * Filter which Conversations to delete. */ where: ConversationsWhereUniqueInput } /** * Conversations deleteMany */ export type ConversationsDeleteManyArgs = { /** * Filter which Conversations to delete */ where?: ConversationsWhereInput /** * Limit how many Conversations to delete. */ limit?: number } /** * Conversations.messages */ export type Conversations$messagesArgs = { /** * Select specific fields to fetch from the Messages */ select?: MessagesSelect | null /** * Omit specific fields from the Messages */ omit?: MessagesOmit | null /** * Choose, which related nodes to fetch as well */ include?: MessagesInclude | null where?: MessagesWhereInput orderBy?: MessagesOrderByWithRelationInput | MessagesOrderByWithRelationInput[] cursor?: MessagesWhereUniqueInput take?: number skip?: number distinct?: MessagesScalarFieldEnum | MessagesScalarFieldEnum[] } /** * Conversations without action */ export type ConversationsDefaultArgs = { /** * Select specific fields to fetch from the Conversations */ select?: ConversationsSelect | null /** * Omit specific fields from the Conversations */ omit?: ConversationsOmit | null /** * Choose, which related nodes to fetch as well */ include?: ConversationsInclude | null } /** * Model Messages */ export type AggregateMessages = { _count: MessagesCountAggregateOutputType | null _min: MessagesMinAggregateOutputType | null _max: MessagesMaxAggregateOutputType | null } export type MessagesMinAggregateOutputType = { id: string | null conversationId: string | null content: string | null messageType: $Enums.MessageType | null senderId: string | null senderType: $Enums.SenderType | null senderName: string | null status: $Enums.MessageStatus | null readAt: Date | null deliveredAt: Date | null createdAt: Date | null updatedAt: Date | null } export type MessagesMaxAggregateOutputType = { id: string | null conversationId: string | null content: string | null messageType: $Enums.MessageType | null senderId: string | null senderType: $Enums.SenderType | null senderName: string | null status: $Enums.MessageStatus | null readAt: Date | null deliveredAt: Date | null createdAt: Date | null updatedAt: Date | null } export type MessagesCountAggregateOutputType = { id: number conversationId: number content: number messageType: number senderId: number senderType: number senderName: number status: number readAt: number deliveredAt: number metadata: number createdAt: number updatedAt: number _all: number } export type MessagesMinAggregateInputType = { id?: true conversationId?: true content?: true messageType?: true senderId?: true senderType?: true senderName?: true status?: true readAt?: true deliveredAt?: true createdAt?: true updatedAt?: true } export type MessagesMaxAggregateInputType = { id?: true conversationId?: true content?: true messageType?: true senderId?: true senderType?: true senderName?: true status?: true readAt?: true deliveredAt?: true createdAt?: true updatedAt?: true } export type MessagesCountAggregateInputType = { id?: true conversationId?: true content?: true messageType?: true senderId?: true senderType?: true senderName?: true status?: true readAt?: true deliveredAt?: true metadata?: true createdAt?: true updatedAt?: true _all?: true } export type MessagesAggregateArgs = { /** * Filter which Messages to aggregate. */ where?: MessagesWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Messages to fetch. */ orderBy?: MessagesOrderByWithRelationInput | MessagesOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the start position */ cursor?: MessagesWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Messages 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` Messages. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Count returned Messages **/ _count?: true | MessagesCountAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the minimum value **/ _min?: MessagesMinAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the maximum value **/ _max?: MessagesMaxAggregateInputType } export type GetMessagesAggregateType = { [P in keyof T & keyof AggregateMessages]: P extends '_count' | 'count' ? T[P] extends true ? number : GetScalarType : GetScalarType } export type MessagesGroupByArgs = { where?: MessagesWhereInput orderBy?: MessagesOrderByWithAggregationInput | MessagesOrderByWithAggregationInput[] by: MessagesScalarFieldEnum[] | MessagesScalarFieldEnum having?: MessagesScalarWhereWithAggregatesInput take?: number skip?: number _count?: MessagesCountAggregateInputType | true _min?: MessagesMinAggregateInputType _max?: MessagesMaxAggregateInputType } export type MessagesGroupByOutputType = { id: string conversationId: string content: string messageType: $Enums.MessageType senderId: string senderType: $Enums.SenderType senderName: string | null status: $Enums.MessageStatus readAt: Date | null deliveredAt: Date | null metadata: JsonValue | null createdAt: Date updatedAt: Date _count: MessagesCountAggregateOutputType | null _min: MessagesMinAggregateOutputType | null _max: MessagesMaxAggregateOutputType | null } type GetMessagesGroupByPayload = Prisma.PrismaPromise< Array< PickEnumerable & { [P in ((keyof T) & (keyof MessagesGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : GetScalarType : GetScalarType } > > export type MessagesSelect = $Extensions.GetSelect<{ id?: boolean conversationId?: boolean content?: boolean messageType?: boolean senderId?: boolean senderType?: boolean senderName?: boolean status?: boolean readAt?: boolean deliveredAt?: boolean metadata?: boolean createdAt?: boolean updatedAt?: boolean conversation?: boolean | ConversationsDefaultArgs }, ExtArgs["result"]["messages"]> export type MessagesSelectCreateManyAndReturn = $Extensions.GetSelect<{ id?: boolean conversationId?: boolean content?: boolean messageType?: boolean senderId?: boolean senderType?: boolean senderName?: boolean status?: boolean readAt?: boolean deliveredAt?: boolean metadata?: boolean createdAt?: boolean updatedAt?: boolean conversation?: boolean | ConversationsDefaultArgs }, ExtArgs["result"]["messages"]> export type MessagesSelectUpdateManyAndReturn = $Extensions.GetSelect<{ id?: boolean conversationId?: boolean content?: boolean messageType?: boolean senderId?: boolean senderType?: boolean senderName?: boolean status?: boolean readAt?: boolean deliveredAt?: boolean metadata?: boolean createdAt?: boolean updatedAt?: boolean conversation?: boolean | ConversationsDefaultArgs }, ExtArgs["result"]["messages"]> export type MessagesSelectScalar = { id?: boolean conversationId?: boolean content?: boolean messageType?: boolean senderId?: boolean senderType?: boolean senderName?: boolean status?: boolean readAt?: boolean deliveredAt?: boolean metadata?: boolean createdAt?: boolean updatedAt?: boolean } export type MessagesOmit = $Extensions.GetOmit<"id" | "conversationId" | "content" | "messageType" | "senderId" | "senderType" | "senderName" | "status" | "readAt" | "deliveredAt" | "metadata" | "createdAt" | "updatedAt", ExtArgs["result"]["messages"]> export type MessagesInclude = { conversation?: boolean | ConversationsDefaultArgs } export type MessagesIncludeCreateManyAndReturn = { conversation?: boolean | ConversationsDefaultArgs } export type MessagesIncludeUpdateManyAndReturn = { conversation?: boolean | ConversationsDefaultArgs } export type $MessagesPayload = { name: "Messages" objects: { conversation: Prisma.$ConversationsPayload } scalars: $Extensions.GetPayloadResult<{ id: string conversationId: string content: string messageType: $Enums.MessageType senderId: string senderType: $Enums.SenderType senderName: string | null status: $Enums.MessageStatus readAt: Date | null deliveredAt: Date | null metadata: Prisma.JsonValue | null createdAt: Date updatedAt: Date }, ExtArgs["result"]["messages"]> composites: {} } type MessagesGetPayload = $Result.GetResult type MessagesCountArgs = Omit & { select?: MessagesCountAggregateInputType | true } export interface MessagesDelegate { [K: symbol]: { types: Prisma.TypeMap['model']['Messages'], meta: { name: 'Messages' } } /** * Find zero or one Messages that matches the filter. * @param {MessagesFindUniqueArgs} args - Arguments to find a Messages * @example * // Get one Messages * const messages = await prisma.messages.findUnique({ * where: { * // ... provide filter here * } * }) */ findUnique(args: SelectSubset>): Prisma__MessagesClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find one Messages that matches the filter or throw an error with `error.code='P2025'` * if no matches were found. * @param {MessagesFindUniqueOrThrowArgs} args - Arguments to find a Messages * @example * // Get one Messages * const messages = await prisma.messages.findUniqueOrThrow({ * where: { * // ... provide filter here * } * }) */ findUniqueOrThrow(args: SelectSubset>): Prisma__MessagesClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find the first Messages 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 {MessagesFindFirstArgs} args - Arguments to find a Messages * @example * // Get one Messages * const messages = await prisma.messages.findFirst({ * where: { * // ... provide filter here * } * }) */ findFirst(args?: SelectSubset>): Prisma__MessagesClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find the first Messages 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 {MessagesFindFirstOrThrowArgs} args - Arguments to find a Messages * @example * // Get one Messages * const messages = await prisma.messages.findFirstOrThrow({ * where: { * // ... provide filter here * } * }) */ findFirstOrThrow(args?: SelectSubset>): Prisma__MessagesClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find zero or more Messages 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 {MessagesFindManyArgs} args - Arguments to filter and select certain fields only. * @example * // Get all Messages * const messages = await prisma.messages.findMany() * * // Get first 10 Messages * const messages = await prisma.messages.findMany({ take: 10 }) * * // Only select the `id` * const messagesWithIdOnly = await prisma.messages.findMany({ select: { id: true } }) * */ findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> /** * Create a Messages. * @param {MessagesCreateArgs} args - Arguments to create a Messages. * @example * // Create one Messages * const Messages = await prisma.messages.create({ * data: { * // ... data to create a Messages * } * }) * */ create(args: SelectSubset>): Prisma__MessagesClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Create many Messages. * @param {MessagesCreateManyArgs} args - Arguments to create many Messages. * @example * // Create many Messages * const messages = await prisma.messages.createMany({ * data: [ * // ... provide data here * ] * }) * */ createMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Create many Messages and returns the data saved in the database. * @param {MessagesCreateManyAndReturnArgs} args - Arguments to create many Messages. * @example * // Create many Messages * const messages = await prisma.messages.createManyAndReturn({ * data: [ * // ... provide data here * ] * }) * * // Create many Messages and only return the `id` * const messagesWithIdOnly = await prisma.messages.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 Messages. * @param {MessagesDeleteArgs} args - Arguments to delete one Messages. * @example * // Delete one Messages * const Messages = await prisma.messages.delete({ * where: { * // ... filter to delete one Messages * } * }) * */ delete(args: SelectSubset>): Prisma__MessagesClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Update one Messages. * @param {MessagesUpdateArgs} args - Arguments to update one Messages. * @example * // Update one Messages * const messages = await prisma.messages.update({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ update(args: SelectSubset>): Prisma__MessagesClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Delete zero or more Messages. * @param {MessagesDeleteManyArgs} args - Arguments to filter Messages to delete. * @example * // Delete a few Messages * const { count } = await prisma.messages.deleteMany({ * where: { * // ... provide filter here * } * }) * */ deleteMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Messages. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {MessagesUpdateManyArgs} args - Arguments to update one or more rows. * @example * // Update many Messages * const messages = await prisma.messages.updateMany({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ updateMany(args: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Messages and returns the data updated in the database. * @param {MessagesUpdateManyAndReturnArgs} args - Arguments to update many Messages. * @example * // Update many Messages * const messages = await prisma.messages.updateManyAndReturn({ * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * * // Update zero or more Messages and only return the `id` * const messagesWithIdOnly = await prisma.messages.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 Messages. * @param {MessagesUpsertArgs} args - Arguments to update or create a Messages. * @example * // Update or create a Messages * const messages = await prisma.messages.upsert({ * create: { * // ... data to create a Messages * }, * update: { * // ... in case it already exists, update * }, * where: { * // ... the filter for the Messages we want to update * } * }) */ upsert(args: SelectSubset>): Prisma__MessagesClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Count the number of Messages. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {MessagesCountArgs} args - Arguments to filter Messages to count. * @example * // Count the number of Messages * const count = await prisma.messages.count({ * where: { * // ... the filter for the Messages 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 Messages. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {MessagesAggregateArgs} 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 Messages. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {MessagesGroupByArgs} 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 MessagesGroupByArgs, HasSelectOrTake extends Or< Extends<'skip', Keys>, Extends<'take', Keys> >, OrderByArg extends True extends HasSelectOrTake ? { orderBy: MessagesGroupByArgs['orderBy'] } : { orderBy?: MessagesGroupByArgs['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 ? GetMessagesGroupByPayload : Prisma.PrismaPromise /** * Fields of the Messages model */ readonly fields: MessagesFieldRefs; } /** * The delegate class that acts as a "Promise-like" for Messages. * 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__MessagesClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" conversation = {}>(args?: Subset>): Prisma__ConversationsClient<$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 Messages model */ interface MessagesFieldRefs { readonly id: FieldRef<"Messages", 'String'> readonly conversationId: FieldRef<"Messages", 'String'> readonly content: FieldRef<"Messages", 'String'> readonly messageType: FieldRef<"Messages", 'MessageType'> readonly senderId: FieldRef<"Messages", 'String'> readonly senderType: FieldRef<"Messages", 'SenderType'> readonly senderName: FieldRef<"Messages", 'String'> readonly status: FieldRef<"Messages", 'MessageStatus'> readonly readAt: FieldRef<"Messages", 'DateTime'> readonly deliveredAt: FieldRef<"Messages", 'DateTime'> readonly metadata: FieldRef<"Messages", 'Json'> readonly createdAt: FieldRef<"Messages", 'DateTime'> readonly updatedAt: FieldRef<"Messages", 'DateTime'> } // Custom InputTypes /** * Messages findUnique */ export type MessagesFindUniqueArgs = { /** * Select specific fields to fetch from the Messages */ select?: MessagesSelect | null /** * Omit specific fields from the Messages */ omit?: MessagesOmit | null /** * Choose, which related nodes to fetch as well */ include?: MessagesInclude | null /** * Filter, which Messages to fetch. */ where: MessagesWhereUniqueInput } /** * Messages findUniqueOrThrow */ export type MessagesFindUniqueOrThrowArgs = { /** * Select specific fields to fetch from the Messages */ select?: MessagesSelect | null /** * Omit specific fields from the Messages */ omit?: MessagesOmit | null /** * Choose, which related nodes to fetch as well */ include?: MessagesInclude | null /** * Filter, which Messages to fetch. */ where: MessagesWhereUniqueInput } /** * Messages findFirst */ export type MessagesFindFirstArgs = { /** * Select specific fields to fetch from the Messages */ select?: MessagesSelect | null /** * Omit specific fields from the Messages */ omit?: MessagesOmit | null /** * Choose, which related nodes to fetch as well */ include?: MessagesInclude | null /** * Filter, which Messages to fetch. */ where?: MessagesWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Messages to fetch. */ orderBy?: MessagesOrderByWithRelationInput | MessagesOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Messages. */ cursor?: MessagesWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Messages 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` Messages. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Messages. */ distinct?: MessagesScalarFieldEnum | MessagesScalarFieldEnum[] } /** * Messages findFirstOrThrow */ export type MessagesFindFirstOrThrowArgs = { /** * Select specific fields to fetch from the Messages */ select?: MessagesSelect | null /** * Omit specific fields from the Messages */ omit?: MessagesOmit | null /** * Choose, which related nodes to fetch as well */ include?: MessagesInclude | null /** * Filter, which Messages to fetch. */ where?: MessagesWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Messages to fetch. */ orderBy?: MessagesOrderByWithRelationInput | MessagesOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Messages. */ cursor?: MessagesWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Messages 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` Messages. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Messages. */ distinct?: MessagesScalarFieldEnum | MessagesScalarFieldEnum[] } /** * Messages findMany */ export type MessagesFindManyArgs = { /** * Select specific fields to fetch from the Messages */ select?: MessagesSelect | null /** * Omit specific fields from the Messages */ omit?: MessagesOmit | null /** * Choose, which related nodes to fetch as well */ include?: MessagesInclude | null /** * Filter, which Messages to fetch. */ where?: MessagesWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Messages to fetch. */ orderBy?: MessagesOrderByWithRelationInput | MessagesOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for listing Messages. */ cursor?: MessagesWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Messages 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` Messages. */ skip?: number distinct?: MessagesScalarFieldEnum | MessagesScalarFieldEnum[] } /** * Messages create */ export type MessagesCreateArgs = { /** * Select specific fields to fetch from the Messages */ select?: MessagesSelect | null /** * Omit specific fields from the Messages */ omit?: MessagesOmit | null /** * Choose, which related nodes to fetch as well */ include?: MessagesInclude | null /** * The data needed to create a Messages. */ data: XOR } /** * Messages createMany */ export type MessagesCreateManyArgs = { /** * The data used to create many Messages. */ data: MessagesCreateManyInput | MessagesCreateManyInput[] skipDuplicates?: boolean } /** * Messages createManyAndReturn */ export type MessagesCreateManyAndReturnArgs = { /** * Select specific fields to fetch from the Messages */ select?: MessagesSelectCreateManyAndReturn | null /** * Omit specific fields from the Messages */ omit?: MessagesOmit | null /** * The data used to create many Messages. */ data: MessagesCreateManyInput | MessagesCreateManyInput[] skipDuplicates?: boolean /** * Choose, which related nodes to fetch as well */ include?: MessagesIncludeCreateManyAndReturn | null } /** * Messages update */ export type MessagesUpdateArgs = { /** * Select specific fields to fetch from the Messages */ select?: MessagesSelect | null /** * Omit specific fields from the Messages */ omit?: MessagesOmit | null /** * Choose, which related nodes to fetch as well */ include?: MessagesInclude | null /** * The data needed to update a Messages. */ data: XOR /** * Choose, which Messages to update. */ where: MessagesWhereUniqueInput } /** * Messages updateMany */ export type MessagesUpdateManyArgs = { /** * The data used to update Messages. */ data: XOR /** * Filter which Messages to update */ where?: MessagesWhereInput /** * Limit how many Messages to update. */ limit?: number } /** * Messages updateManyAndReturn */ export type MessagesUpdateManyAndReturnArgs = { /** * Select specific fields to fetch from the Messages */ select?: MessagesSelectUpdateManyAndReturn | null /** * Omit specific fields from the Messages */ omit?: MessagesOmit | null /** * The data used to update Messages. */ data: XOR /** * Filter which Messages to update */ where?: MessagesWhereInput /** * Limit how many Messages to update. */ limit?: number /** * Choose, which related nodes to fetch as well */ include?: MessagesIncludeUpdateManyAndReturn | null } /** * Messages upsert */ export type MessagesUpsertArgs = { /** * Select specific fields to fetch from the Messages */ select?: MessagesSelect | null /** * Omit specific fields from the Messages */ omit?: MessagesOmit | null /** * Choose, which related nodes to fetch as well */ include?: MessagesInclude | null /** * The filter to search for the Messages to update in case it exists. */ where: MessagesWhereUniqueInput /** * In case the Messages found by the `where` argument doesn't exist, create a new Messages with this data. */ create: XOR /** * In case the Messages was found with the provided `where` argument, update it with this data. */ update: XOR } /** * Messages delete */ export type MessagesDeleteArgs = { /** * Select specific fields to fetch from the Messages */ select?: MessagesSelect | null /** * Omit specific fields from the Messages */ omit?: MessagesOmit | null /** * Choose, which related nodes to fetch as well */ include?: MessagesInclude | null /** * Filter which Messages to delete. */ where: MessagesWhereUniqueInput } /** * Messages deleteMany */ export type MessagesDeleteManyArgs = { /** * Filter which Messages to delete */ where?: MessagesWhereInput /** * Limit how many Messages to delete. */ limit?: number } /** * Messages without action */ export type MessagesDefaultArgs = { /** * Select specific fields to fetch from the Messages */ select?: MessagesSelect | null /** * Omit specific fields from the Messages */ omit?: MessagesOmit | null /** * Choose, which related nodes to fetch as well */ include?: MessagesInclude | null } /** * Model MessageAttachments */ export type AggregateMessageAttachments = { _count: MessageAttachmentsCountAggregateOutputType | null _avg: MessageAttachmentsAvgAggregateOutputType | null _sum: MessageAttachmentsSumAggregateOutputType | null _min: MessageAttachmentsMinAggregateOutputType | null _max: MessageAttachmentsMaxAggregateOutputType | null } export type MessageAttachmentsAvgAggregateOutputType = { fileSize: number | null } export type MessageAttachmentsSumAggregateOutputType = { fileSize: number | null } export type MessageAttachmentsMinAggregateOutputType = { id: string | null messageId: string | null fileName: string | null fileSize: number | null mimeType: string | null fileUrl: string | null thumbnailUrl: string | null createdAt: Date | null } export type MessageAttachmentsMaxAggregateOutputType = { id: string | null messageId: string | null fileName: string | null fileSize: number | null mimeType: string | null fileUrl: string | null thumbnailUrl: string | null createdAt: Date | null } export type MessageAttachmentsCountAggregateOutputType = { id: number messageId: number fileName: number fileSize: number mimeType: number fileUrl: number thumbnailUrl: number metadata: number createdAt: number _all: number } export type MessageAttachmentsAvgAggregateInputType = { fileSize?: true } export type MessageAttachmentsSumAggregateInputType = { fileSize?: true } export type MessageAttachmentsMinAggregateInputType = { id?: true messageId?: true fileName?: true fileSize?: true mimeType?: true fileUrl?: true thumbnailUrl?: true createdAt?: true } export type MessageAttachmentsMaxAggregateInputType = { id?: true messageId?: true fileName?: true fileSize?: true mimeType?: true fileUrl?: true thumbnailUrl?: true createdAt?: true } export type MessageAttachmentsCountAggregateInputType = { id?: true messageId?: true fileName?: true fileSize?: true mimeType?: true fileUrl?: true thumbnailUrl?: true metadata?: true createdAt?: true _all?: true } export type MessageAttachmentsAggregateArgs = { /** * Filter which MessageAttachments to aggregate. */ where?: MessageAttachmentsWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of MessageAttachments to fetch. */ orderBy?: MessageAttachmentsOrderByWithRelationInput | MessageAttachmentsOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the start position */ cursor?: MessageAttachmentsWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` MessageAttachments 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` MessageAttachments. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Count returned MessageAttachments **/ _count?: true | MessageAttachmentsCountAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to average **/ _avg?: MessageAttachmentsAvgAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to sum **/ _sum?: MessageAttachmentsSumAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the minimum value **/ _min?: MessageAttachmentsMinAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the maximum value **/ _max?: MessageAttachmentsMaxAggregateInputType } export type GetMessageAttachmentsAggregateType = { [P in keyof T & keyof AggregateMessageAttachments]: P extends '_count' | 'count' ? T[P] extends true ? number : GetScalarType : GetScalarType } export type MessageAttachmentsGroupByArgs = { where?: MessageAttachmentsWhereInput orderBy?: MessageAttachmentsOrderByWithAggregationInput | MessageAttachmentsOrderByWithAggregationInput[] by: MessageAttachmentsScalarFieldEnum[] | MessageAttachmentsScalarFieldEnum having?: MessageAttachmentsScalarWhereWithAggregatesInput take?: number skip?: number _count?: MessageAttachmentsCountAggregateInputType | true _avg?: MessageAttachmentsAvgAggregateInputType _sum?: MessageAttachmentsSumAggregateInputType _min?: MessageAttachmentsMinAggregateInputType _max?: MessageAttachmentsMaxAggregateInputType } export type MessageAttachmentsGroupByOutputType = { id: string messageId: string fileName: string fileSize: number mimeType: string fileUrl: string thumbnailUrl: string | null metadata: JsonValue | null createdAt: Date _count: MessageAttachmentsCountAggregateOutputType | null _avg: MessageAttachmentsAvgAggregateOutputType | null _sum: MessageAttachmentsSumAggregateOutputType | null _min: MessageAttachmentsMinAggregateOutputType | null _max: MessageAttachmentsMaxAggregateOutputType | null } type GetMessageAttachmentsGroupByPayload = Prisma.PrismaPromise< Array< PickEnumerable & { [P in ((keyof T) & (keyof MessageAttachmentsGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : GetScalarType : GetScalarType } > > export type MessageAttachmentsSelect = $Extensions.GetSelect<{ id?: boolean messageId?: boolean fileName?: boolean fileSize?: boolean mimeType?: boolean fileUrl?: boolean thumbnailUrl?: boolean metadata?: boolean createdAt?: boolean }, ExtArgs["result"]["messageAttachments"]> export type MessageAttachmentsSelectCreateManyAndReturn = $Extensions.GetSelect<{ id?: boolean messageId?: boolean fileName?: boolean fileSize?: boolean mimeType?: boolean fileUrl?: boolean thumbnailUrl?: boolean metadata?: boolean createdAt?: boolean }, ExtArgs["result"]["messageAttachments"]> export type MessageAttachmentsSelectUpdateManyAndReturn = $Extensions.GetSelect<{ id?: boolean messageId?: boolean fileName?: boolean fileSize?: boolean mimeType?: boolean fileUrl?: boolean thumbnailUrl?: boolean metadata?: boolean createdAt?: boolean }, ExtArgs["result"]["messageAttachments"]> export type MessageAttachmentsSelectScalar = { id?: boolean messageId?: boolean fileName?: boolean fileSize?: boolean mimeType?: boolean fileUrl?: boolean thumbnailUrl?: boolean metadata?: boolean createdAt?: boolean } export type MessageAttachmentsOmit = $Extensions.GetOmit<"id" | "messageId" | "fileName" | "fileSize" | "mimeType" | "fileUrl" | "thumbnailUrl" | "metadata" | "createdAt", ExtArgs["result"]["messageAttachments"]> export type $MessageAttachmentsPayload = { name: "MessageAttachments" objects: {} scalars: $Extensions.GetPayloadResult<{ id: string messageId: string fileName: string fileSize: number mimeType: string fileUrl: string thumbnailUrl: string | null metadata: Prisma.JsonValue | null createdAt: Date }, ExtArgs["result"]["messageAttachments"]> composites: {} } type MessageAttachmentsGetPayload = $Result.GetResult type MessageAttachmentsCountArgs = Omit & { select?: MessageAttachmentsCountAggregateInputType | true } export interface MessageAttachmentsDelegate { [K: symbol]: { types: Prisma.TypeMap['model']['MessageAttachments'], meta: { name: 'MessageAttachments' } } /** * Find zero or one MessageAttachments that matches the filter. * @param {MessageAttachmentsFindUniqueArgs} args - Arguments to find a MessageAttachments * @example * // Get one MessageAttachments * const messageAttachments = await prisma.messageAttachments.findUnique({ * where: { * // ... provide filter here * } * }) */ findUnique(args: SelectSubset>): Prisma__MessageAttachmentsClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find one MessageAttachments that matches the filter or throw an error with `error.code='P2025'` * if no matches were found. * @param {MessageAttachmentsFindUniqueOrThrowArgs} args - Arguments to find a MessageAttachments * @example * // Get one MessageAttachments * const messageAttachments = await prisma.messageAttachments.findUniqueOrThrow({ * where: { * // ... provide filter here * } * }) */ findUniqueOrThrow(args: SelectSubset>): Prisma__MessageAttachmentsClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find the first MessageAttachments 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 {MessageAttachmentsFindFirstArgs} args - Arguments to find a MessageAttachments * @example * // Get one MessageAttachments * const messageAttachments = await prisma.messageAttachments.findFirst({ * where: { * // ... provide filter here * } * }) */ findFirst(args?: SelectSubset>): Prisma__MessageAttachmentsClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find the first MessageAttachments 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 {MessageAttachmentsFindFirstOrThrowArgs} args - Arguments to find a MessageAttachments * @example * // Get one MessageAttachments * const messageAttachments = await prisma.messageAttachments.findFirstOrThrow({ * where: { * // ... provide filter here * } * }) */ findFirstOrThrow(args?: SelectSubset>): Prisma__MessageAttachmentsClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find zero or more MessageAttachments 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 {MessageAttachmentsFindManyArgs} args - Arguments to filter and select certain fields only. * @example * // Get all MessageAttachments * const messageAttachments = await prisma.messageAttachments.findMany() * * // Get first 10 MessageAttachments * const messageAttachments = await prisma.messageAttachments.findMany({ take: 10 }) * * // Only select the `id` * const messageAttachmentsWithIdOnly = await prisma.messageAttachments.findMany({ select: { id: true } }) * */ findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> /** * Create a MessageAttachments. * @param {MessageAttachmentsCreateArgs} args - Arguments to create a MessageAttachments. * @example * // Create one MessageAttachments * const MessageAttachments = await prisma.messageAttachments.create({ * data: { * // ... data to create a MessageAttachments * } * }) * */ create(args: SelectSubset>): Prisma__MessageAttachmentsClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Create many MessageAttachments. * @param {MessageAttachmentsCreateManyArgs} args - Arguments to create many MessageAttachments. * @example * // Create many MessageAttachments * const messageAttachments = await prisma.messageAttachments.createMany({ * data: [ * // ... provide data here * ] * }) * */ createMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Create many MessageAttachments and returns the data saved in the database. * @param {MessageAttachmentsCreateManyAndReturnArgs} args - Arguments to create many MessageAttachments. * @example * // Create many MessageAttachments * const messageAttachments = await prisma.messageAttachments.createManyAndReturn({ * data: [ * // ... provide data here * ] * }) * * // Create many MessageAttachments and only return the `id` * const messageAttachmentsWithIdOnly = await prisma.messageAttachments.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 MessageAttachments. * @param {MessageAttachmentsDeleteArgs} args - Arguments to delete one MessageAttachments. * @example * // Delete one MessageAttachments * const MessageAttachments = await prisma.messageAttachments.delete({ * where: { * // ... filter to delete one MessageAttachments * } * }) * */ delete(args: SelectSubset>): Prisma__MessageAttachmentsClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Update one MessageAttachments. * @param {MessageAttachmentsUpdateArgs} args - Arguments to update one MessageAttachments. * @example * // Update one MessageAttachments * const messageAttachments = await prisma.messageAttachments.update({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ update(args: SelectSubset>): Prisma__MessageAttachmentsClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Delete zero or more MessageAttachments. * @param {MessageAttachmentsDeleteManyArgs} args - Arguments to filter MessageAttachments to delete. * @example * // Delete a few MessageAttachments * const { count } = await prisma.messageAttachments.deleteMany({ * where: { * // ... provide filter here * } * }) * */ deleteMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more MessageAttachments. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {MessageAttachmentsUpdateManyArgs} args - Arguments to update one or more rows. * @example * // Update many MessageAttachments * const messageAttachments = await prisma.messageAttachments.updateMany({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ updateMany(args: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more MessageAttachments and returns the data updated in the database. * @param {MessageAttachmentsUpdateManyAndReturnArgs} args - Arguments to update many MessageAttachments. * @example * // Update many MessageAttachments * const messageAttachments = await prisma.messageAttachments.updateManyAndReturn({ * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * * // Update zero or more MessageAttachments and only return the `id` * const messageAttachmentsWithIdOnly = await prisma.messageAttachments.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 MessageAttachments. * @param {MessageAttachmentsUpsertArgs} args - Arguments to update or create a MessageAttachments. * @example * // Update or create a MessageAttachments * const messageAttachments = await prisma.messageAttachments.upsert({ * create: { * // ... data to create a MessageAttachments * }, * update: { * // ... in case it already exists, update * }, * where: { * // ... the filter for the MessageAttachments we want to update * } * }) */ upsert(args: SelectSubset>): Prisma__MessageAttachmentsClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Count the number of MessageAttachments. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {MessageAttachmentsCountArgs} args - Arguments to filter MessageAttachments to count. * @example * // Count the number of MessageAttachments * const count = await prisma.messageAttachments.count({ * where: { * // ... the filter for the MessageAttachments 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 MessageAttachments. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {MessageAttachmentsAggregateArgs} 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 MessageAttachments. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {MessageAttachmentsGroupByArgs} 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 MessageAttachmentsGroupByArgs, HasSelectOrTake extends Or< Extends<'skip', Keys>, Extends<'take', Keys> >, OrderByArg extends True extends HasSelectOrTake ? { orderBy: MessageAttachmentsGroupByArgs['orderBy'] } : { orderBy?: MessageAttachmentsGroupByArgs['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 ? GetMessageAttachmentsGroupByPayload : Prisma.PrismaPromise /** * Fields of the MessageAttachments model */ readonly fields: MessageAttachmentsFieldRefs; } /** * The delegate class that acts as a "Promise-like" for MessageAttachments. * 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__MessageAttachmentsClient 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 MessageAttachments model */ interface MessageAttachmentsFieldRefs { readonly id: FieldRef<"MessageAttachments", 'String'> readonly messageId: FieldRef<"MessageAttachments", 'String'> readonly fileName: FieldRef<"MessageAttachments", 'String'> readonly fileSize: FieldRef<"MessageAttachments", 'Int'> readonly mimeType: FieldRef<"MessageAttachments", 'String'> readonly fileUrl: FieldRef<"MessageAttachments", 'String'> readonly thumbnailUrl: FieldRef<"MessageAttachments", 'String'> readonly metadata: FieldRef<"MessageAttachments", 'Json'> readonly createdAt: FieldRef<"MessageAttachments", 'DateTime'> } // Custom InputTypes /** * MessageAttachments findUnique */ export type MessageAttachmentsFindUniqueArgs = { /** * Select specific fields to fetch from the MessageAttachments */ select?: MessageAttachmentsSelect | null /** * Omit specific fields from the MessageAttachments */ omit?: MessageAttachmentsOmit | null /** * Filter, which MessageAttachments to fetch. */ where: MessageAttachmentsWhereUniqueInput } /** * MessageAttachments findUniqueOrThrow */ export type MessageAttachmentsFindUniqueOrThrowArgs = { /** * Select specific fields to fetch from the MessageAttachments */ select?: MessageAttachmentsSelect | null /** * Omit specific fields from the MessageAttachments */ omit?: MessageAttachmentsOmit | null /** * Filter, which MessageAttachments to fetch. */ where: MessageAttachmentsWhereUniqueInput } /** * MessageAttachments findFirst */ export type MessageAttachmentsFindFirstArgs = { /** * Select specific fields to fetch from the MessageAttachments */ select?: MessageAttachmentsSelect | null /** * Omit specific fields from the MessageAttachments */ omit?: MessageAttachmentsOmit | null /** * Filter, which MessageAttachments to fetch. */ where?: MessageAttachmentsWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of MessageAttachments to fetch. */ orderBy?: MessageAttachmentsOrderByWithRelationInput | MessageAttachmentsOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for MessageAttachments. */ cursor?: MessageAttachmentsWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` MessageAttachments 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` MessageAttachments. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of MessageAttachments. */ distinct?: MessageAttachmentsScalarFieldEnum | MessageAttachmentsScalarFieldEnum[] } /** * MessageAttachments findFirstOrThrow */ export type MessageAttachmentsFindFirstOrThrowArgs = { /** * Select specific fields to fetch from the MessageAttachments */ select?: MessageAttachmentsSelect | null /** * Omit specific fields from the MessageAttachments */ omit?: MessageAttachmentsOmit | null /** * Filter, which MessageAttachments to fetch. */ where?: MessageAttachmentsWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of MessageAttachments to fetch. */ orderBy?: MessageAttachmentsOrderByWithRelationInput | MessageAttachmentsOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for MessageAttachments. */ cursor?: MessageAttachmentsWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` MessageAttachments 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` MessageAttachments. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of MessageAttachments. */ distinct?: MessageAttachmentsScalarFieldEnum | MessageAttachmentsScalarFieldEnum[] } /** * MessageAttachments findMany */ export type MessageAttachmentsFindManyArgs = { /** * Select specific fields to fetch from the MessageAttachments */ select?: MessageAttachmentsSelect | null /** * Omit specific fields from the MessageAttachments */ omit?: MessageAttachmentsOmit | null /** * Filter, which MessageAttachments to fetch. */ where?: MessageAttachmentsWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of MessageAttachments to fetch. */ orderBy?: MessageAttachmentsOrderByWithRelationInput | MessageAttachmentsOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for listing MessageAttachments. */ cursor?: MessageAttachmentsWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` MessageAttachments 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` MessageAttachments. */ skip?: number distinct?: MessageAttachmentsScalarFieldEnum | MessageAttachmentsScalarFieldEnum[] } /** * MessageAttachments create */ export type MessageAttachmentsCreateArgs = { /** * Select specific fields to fetch from the MessageAttachments */ select?: MessageAttachmentsSelect | null /** * Omit specific fields from the MessageAttachments */ omit?: MessageAttachmentsOmit | null /** * The data needed to create a MessageAttachments. */ data: XOR } /** * MessageAttachments createMany */ export type MessageAttachmentsCreateManyArgs = { /** * The data used to create many MessageAttachments. */ data: MessageAttachmentsCreateManyInput | MessageAttachmentsCreateManyInput[] skipDuplicates?: boolean } /** * MessageAttachments createManyAndReturn */ export type MessageAttachmentsCreateManyAndReturnArgs = { /** * Select specific fields to fetch from the MessageAttachments */ select?: MessageAttachmentsSelectCreateManyAndReturn | null /** * Omit specific fields from the MessageAttachments */ omit?: MessageAttachmentsOmit | null /** * The data used to create many MessageAttachments. */ data: MessageAttachmentsCreateManyInput | MessageAttachmentsCreateManyInput[] skipDuplicates?: boolean } /** * MessageAttachments update */ export type MessageAttachmentsUpdateArgs = { /** * Select specific fields to fetch from the MessageAttachments */ select?: MessageAttachmentsSelect | null /** * Omit specific fields from the MessageAttachments */ omit?: MessageAttachmentsOmit | null /** * The data needed to update a MessageAttachments. */ data: XOR /** * Choose, which MessageAttachments to update. */ where: MessageAttachmentsWhereUniqueInput } /** * MessageAttachments updateMany */ export type MessageAttachmentsUpdateManyArgs = { /** * The data used to update MessageAttachments. */ data: XOR /** * Filter which MessageAttachments to update */ where?: MessageAttachmentsWhereInput /** * Limit how many MessageAttachments to update. */ limit?: number } /** * MessageAttachments updateManyAndReturn */ export type MessageAttachmentsUpdateManyAndReturnArgs = { /** * Select specific fields to fetch from the MessageAttachments */ select?: MessageAttachmentsSelectUpdateManyAndReturn | null /** * Omit specific fields from the MessageAttachments */ omit?: MessageAttachmentsOmit | null /** * The data used to update MessageAttachments. */ data: XOR /** * Filter which MessageAttachments to update */ where?: MessageAttachmentsWhereInput /** * Limit how many MessageAttachments to update. */ limit?: number } /** * MessageAttachments upsert */ export type MessageAttachmentsUpsertArgs = { /** * Select specific fields to fetch from the MessageAttachments */ select?: MessageAttachmentsSelect | null /** * Omit specific fields from the MessageAttachments */ omit?: MessageAttachmentsOmit | null /** * The filter to search for the MessageAttachments to update in case it exists. */ where: MessageAttachmentsWhereUniqueInput /** * In case the MessageAttachments found by the `where` argument doesn't exist, create a new MessageAttachments with this data. */ create: XOR /** * In case the MessageAttachments was found with the provided `where` argument, update it with this data. */ update: XOR } /** * MessageAttachments delete */ export type MessageAttachmentsDeleteArgs = { /** * Select specific fields to fetch from the MessageAttachments */ select?: MessageAttachmentsSelect | null /** * Omit specific fields from the MessageAttachments */ omit?: MessageAttachmentsOmit | null /** * Filter which MessageAttachments to delete. */ where: MessageAttachmentsWhereUniqueInput } /** * MessageAttachments deleteMany */ export type MessageAttachmentsDeleteManyArgs = { /** * Filter which MessageAttachments to delete */ where?: MessageAttachmentsWhereInput /** * Limit how many MessageAttachments to delete. */ limit?: number } /** * MessageAttachments without action */ export type MessageAttachmentsDefaultArgs = { /** * Select specific fields to fetch from the MessageAttachments */ select?: MessageAttachmentsSelect | null /** * Omit specific fields from the MessageAttachments */ omit?: MessageAttachmentsOmit | null } /** * Model TypingIndicators */ export type AggregateTypingIndicators = { _count: TypingIndicatorsCountAggregateOutputType | null _min: TypingIndicatorsMinAggregateOutputType | null _max: TypingIndicatorsMaxAggregateOutputType | null } export type TypingIndicatorsMinAggregateOutputType = { id: string | null conversationId: string | null userId: string | null userType: $Enums.SenderType | null startedAt: Date | null } export type TypingIndicatorsMaxAggregateOutputType = { id: string | null conversationId: string | null userId: string | null userType: $Enums.SenderType | null startedAt: Date | null } export type TypingIndicatorsCountAggregateOutputType = { id: number conversationId: number userId: number userType: number startedAt: number _all: number } export type TypingIndicatorsMinAggregateInputType = { id?: true conversationId?: true userId?: true userType?: true startedAt?: true } export type TypingIndicatorsMaxAggregateInputType = { id?: true conversationId?: true userId?: true userType?: true startedAt?: true } export type TypingIndicatorsCountAggregateInputType = { id?: true conversationId?: true userId?: true userType?: true startedAt?: true _all?: true } export type TypingIndicatorsAggregateArgs = { /** * Filter which TypingIndicators to aggregate. */ where?: TypingIndicatorsWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of TypingIndicators to fetch. */ orderBy?: TypingIndicatorsOrderByWithRelationInput | TypingIndicatorsOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the start position */ cursor?: TypingIndicatorsWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` TypingIndicators 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` TypingIndicators. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Count returned TypingIndicators **/ _count?: true | TypingIndicatorsCountAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the minimum value **/ _min?: TypingIndicatorsMinAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the maximum value **/ _max?: TypingIndicatorsMaxAggregateInputType } export type GetTypingIndicatorsAggregateType = { [P in keyof T & keyof AggregateTypingIndicators]: P extends '_count' | 'count' ? T[P] extends true ? number : GetScalarType : GetScalarType } export type TypingIndicatorsGroupByArgs = { where?: TypingIndicatorsWhereInput orderBy?: TypingIndicatorsOrderByWithAggregationInput | TypingIndicatorsOrderByWithAggregationInput[] by: TypingIndicatorsScalarFieldEnum[] | TypingIndicatorsScalarFieldEnum having?: TypingIndicatorsScalarWhereWithAggregatesInput take?: number skip?: number _count?: TypingIndicatorsCountAggregateInputType | true _min?: TypingIndicatorsMinAggregateInputType _max?: TypingIndicatorsMaxAggregateInputType } export type TypingIndicatorsGroupByOutputType = { id: string conversationId: string userId: string userType: $Enums.SenderType startedAt: Date _count: TypingIndicatorsCountAggregateOutputType | null _min: TypingIndicatorsMinAggregateOutputType | null _max: TypingIndicatorsMaxAggregateOutputType | null } type GetTypingIndicatorsGroupByPayload = Prisma.PrismaPromise< Array< PickEnumerable & { [P in ((keyof T) & (keyof TypingIndicatorsGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : GetScalarType : GetScalarType } > > export type TypingIndicatorsSelect = $Extensions.GetSelect<{ id?: boolean conversationId?: boolean userId?: boolean userType?: boolean startedAt?: boolean }, ExtArgs["result"]["typingIndicators"]> export type TypingIndicatorsSelectCreateManyAndReturn = $Extensions.GetSelect<{ id?: boolean conversationId?: boolean userId?: boolean userType?: boolean startedAt?: boolean }, ExtArgs["result"]["typingIndicators"]> export type TypingIndicatorsSelectUpdateManyAndReturn = $Extensions.GetSelect<{ id?: boolean conversationId?: boolean userId?: boolean userType?: boolean startedAt?: boolean }, ExtArgs["result"]["typingIndicators"]> export type TypingIndicatorsSelectScalar = { id?: boolean conversationId?: boolean userId?: boolean userType?: boolean startedAt?: boolean } export type TypingIndicatorsOmit = $Extensions.GetOmit<"id" | "conversationId" | "userId" | "userType" | "startedAt", ExtArgs["result"]["typingIndicators"]> export type $TypingIndicatorsPayload = { name: "TypingIndicators" objects: {} scalars: $Extensions.GetPayloadResult<{ id: string conversationId: string userId: string userType: $Enums.SenderType startedAt: Date }, ExtArgs["result"]["typingIndicators"]> composites: {} } type TypingIndicatorsGetPayload = $Result.GetResult type TypingIndicatorsCountArgs = Omit & { select?: TypingIndicatorsCountAggregateInputType | true } export interface TypingIndicatorsDelegate { [K: symbol]: { types: Prisma.TypeMap['model']['TypingIndicators'], meta: { name: 'TypingIndicators' } } /** * Find zero or one TypingIndicators that matches the filter. * @param {TypingIndicatorsFindUniqueArgs} args - Arguments to find a TypingIndicators * @example * // Get one TypingIndicators * const typingIndicators = await prisma.typingIndicators.findUnique({ * where: { * // ... provide filter here * } * }) */ findUnique(args: SelectSubset>): Prisma__TypingIndicatorsClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find one TypingIndicators that matches the filter or throw an error with `error.code='P2025'` * if no matches were found. * @param {TypingIndicatorsFindUniqueOrThrowArgs} args - Arguments to find a TypingIndicators * @example * // Get one TypingIndicators * const typingIndicators = await prisma.typingIndicators.findUniqueOrThrow({ * where: { * // ... provide filter here * } * }) */ findUniqueOrThrow(args: SelectSubset>): Prisma__TypingIndicatorsClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find the first TypingIndicators 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 {TypingIndicatorsFindFirstArgs} args - Arguments to find a TypingIndicators * @example * // Get one TypingIndicators * const typingIndicators = await prisma.typingIndicators.findFirst({ * where: { * // ... provide filter here * } * }) */ findFirst(args?: SelectSubset>): Prisma__TypingIndicatorsClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find the first TypingIndicators 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 {TypingIndicatorsFindFirstOrThrowArgs} args - Arguments to find a TypingIndicators * @example * // Get one TypingIndicators * const typingIndicators = await prisma.typingIndicators.findFirstOrThrow({ * where: { * // ... provide filter here * } * }) */ findFirstOrThrow(args?: SelectSubset>): Prisma__TypingIndicatorsClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find zero or more TypingIndicators 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 {TypingIndicatorsFindManyArgs} args - Arguments to filter and select certain fields only. * @example * // Get all TypingIndicators * const typingIndicators = await prisma.typingIndicators.findMany() * * // Get first 10 TypingIndicators * const typingIndicators = await prisma.typingIndicators.findMany({ take: 10 }) * * // Only select the `id` * const typingIndicatorsWithIdOnly = await prisma.typingIndicators.findMany({ select: { id: true } }) * */ findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> /** * Create a TypingIndicators. * @param {TypingIndicatorsCreateArgs} args - Arguments to create a TypingIndicators. * @example * // Create one TypingIndicators * const TypingIndicators = await prisma.typingIndicators.create({ * data: { * // ... data to create a TypingIndicators * } * }) * */ create(args: SelectSubset>): Prisma__TypingIndicatorsClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Create many TypingIndicators. * @param {TypingIndicatorsCreateManyArgs} args - Arguments to create many TypingIndicators. * @example * // Create many TypingIndicators * const typingIndicators = await prisma.typingIndicators.createMany({ * data: [ * // ... provide data here * ] * }) * */ createMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Create many TypingIndicators and returns the data saved in the database. * @param {TypingIndicatorsCreateManyAndReturnArgs} args - Arguments to create many TypingIndicators. * @example * // Create many TypingIndicators * const typingIndicators = await prisma.typingIndicators.createManyAndReturn({ * data: [ * // ... provide data here * ] * }) * * // Create many TypingIndicators and only return the `id` * const typingIndicatorsWithIdOnly = await prisma.typingIndicators.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 TypingIndicators. * @param {TypingIndicatorsDeleteArgs} args - Arguments to delete one TypingIndicators. * @example * // Delete one TypingIndicators * const TypingIndicators = await prisma.typingIndicators.delete({ * where: { * // ... filter to delete one TypingIndicators * } * }) * */ delete(args: SelectSubset>): Prisma__TypingIndicatorsClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Update one TypingIndicators. * @param {TypingIndicatorsUpdateArgs} args - Arguments to update one TypingIndicators. * @example * // Update one TypingIndicators * const typingIndicators = await prisma.typingIndicators.update({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ update(args: SelectSubset>): Prisma__TypingIndicatorsClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Delete zero or more TypingIndicators. * @param {TypingIndicatorsDeleteManyArgs} args - Arguments to filter TypingIndicators to delete. * @example * // Delete a few TypingIndicators * const { count } = await prisma.typingIndicators.deleteMany({ * where: { * // ... provide filter here * } * }) * */ deleteMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more TypingIndicators. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {TypingIndicatorsUpdateManyArgs} args - Arguments to update one or more rows. * @example * // Update many TypingIndicators * const typingIndicators = await prisma.typingIndicators.updateMany({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ updateMany(args: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more TypingIndicators and returns the data updated in the database. * @param {TypingIndicatorsUpdateManyAndReturnArgs} args - Arguments to update many TypingIndicators. * @example * // Update many TypingIndicators * const typingIndicators = await prisma.typingIndicators.updateManyAndReturn({ * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * * // Update zero or more TypingIndicators and only return the `id` * const typingIndicatorsWithIdOnly = await prisma.typingIndicators.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 TypingIndicators. * @param {TypingIndicatorsUpsertArgs} args - Arguments to update or create a TypingIndicators. * @example * // Update or create a TypingIndicators * const typingIndicators = await prisma.typingIndicators.upsert({ * create: { * // ... data to create a TypingIndicators * }, * update: { * // ... in case it already exists, update * }, * where: { * // ... the filter for the TypingIndicators we want to update * } * }) */ upsert(args: SelectSubset>): Prisma__TypingIndicatorsClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Count the number of TypingIndicators. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {TypingIndicatorsCountArgs} args - Arguments to filter TypingIndicators to count. * @example * // Count the number of TypingIndicators * const count = await prisma.typingIndicators.count({ * where: { * // ... the filter for the TypingIndicators 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 TypingIndicators. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {TypingIndicatorsAggregateArgs} 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 TypingIndicators. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {TypingIndicatorsGroupByArgs} 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 TypingIndicatorsGroupByArgs, HasSelectOrTake extends Or< Extends<'skip', Keys>, Extends<'take', Keys> >, OrderByArg extends True extends HasSelectOrTake ? { orderBy: TypingIndicatorsGroupByArgs['orderBy'] } : { orderBy?: TypingIndicatorsGroupByArgs['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 ? GetTypingIndicatorsGroupByPayload : Prisma.PrismaPromise /** * Fields of the TypingIndicators model */ readonly fields: TypingIndicatorsFieldRefs; } /** * The delegate class that acts as a "Promise-like" for TypingIndicators. * 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__TypingIndicatorsClient 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 TypingIndicators model */ interface TypingIndicatorsFieldRefs { readonly id: FieldRef<"TypingIndicators", 'String'> readonly conversationId: FieldRef<"TypingIndicators", 'String'> readonly userId: FieldRef<"TypingIndicators", 'String'> readonly userType: FieldRef<"TypingIndicators", 'SenderType'> readonly startedAt: FieldRef<"TypingIndicators", 'DateTime'> } // Custom InputTypes /** * TypingIndicators findUnique */ export type TypingIndicatorsFindUniqueArgs = { /** * Select specific fields to fetch from the TypingIndicators */ select?: TypingIndicatorsSelect | null /** * Omit specific fields from the TypingIndicators */ omit?: TypingIndicatorsOmit | null /** * Filter, which TypingIndicators to fetch. */ where: TypingIndicatorsWhereUniqueInput } /** * TypingIndicators findUniqueOrThrow */ export type TypingIndicatorsFindUniqueOrThrowArgs = { /** * Select specific fields to fetch from the TypingIndicators */ select?: TypingIndicatorsSelect | null /** * Omit specific fields from the TypingIndicators */ omit?: TypingIndicatorsOmit | null /** * Filter, which TypingIndicators to fetch. */ where: TypingIndicatorsWhereUniqueInput } /** * TypingIndicators findFirst */ export type TypingIndicatorsFindFirstArgs = { /** * Select specific fields to fetch from the TypingIndicators */ select?: TypingIndicatorsSelect | null /** * Omit specific fields from the TypingIndicators */ omit?: TypingIndicatorsOmit | null /** * Filter, which TypingIndicators to fetch. */ where?: TypingIndicatorsWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of TypingIndicators to fetch. */ orderBy?: TypingIndicatorsOrderByWithRelationInput | TypingIndicatorsOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for TypingIndicators. */ cursor?: TypingIndicatorsWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` TypingIndicators 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` TypingIndicators. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of TypingIndicators. */ distinct?: TypingIndicatorsScalarFieldEnum | TypingIndicatorsScalarFieldEnum[] } /** * TypingIndicators findFirstOrThrow */ export type TypingIndicatorsFindFirstOrThrowArgs = { /** * Select specific fields to fetch from the TypingIndicators */ select?: TypingIndicatorsSelect | null /** * Omit specific fields from the TypingIndicators */ omit?: TypingIndicatorsOmit | null /** * Filter, which TypingIndicators to fetch. */ where?: TypingIndicatorsWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of TypingIndicators to fetch. */ orderBy?: TypingIndicatorsOrderByWithRelationInput | TypingIndicatorsOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for TypingIndicators. */ cursor?: TypingIndicatorsWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` TypingIndicators 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` TypingIndicators. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of TypingIndicators. */ distinct?: TypingIndicatorsScalarFieldEnum | TypingIndicatorsScalarFieldEnum[] } /** * TypingIndicators findMany */ export type TypingIndicatorsFindManyArgs = { /** * Select specific fields to fetch from the TypingIndicators */ select?: TypingIndicatorsSelect | null /** * Omit specific fields from the TypingIndicators */ omit?: TypingIndicatorsOmit | null /** * Filter, which TypingIndicators to fetch. */ where?: TypingIndicatorsWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of TypingIndicators to fetch. */ orderBy?: TypingIndicatorsOrderByWithRelationInput | TypingIndicatorsOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for listing TypingIndicators. */ cursor?: TypingIndicatorsWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` TypingIndicators 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` TypingIndicators. */ skip?: number distinct?: TypingIndicatorsScalarFieldEnum | TypingIndicatorsScalarFieldEnum[] } /** * TypingIndicators create */ export type TypingIndicatorsCreateArgs = { /** * Select specific fields to fetch from the TypingIndicators */ select?: TypingIndicatorsSelect | null /** * Omit specific fields from the TypingIndicators */ omit?: TypingIndicatorsOmit | null /** * The data needed to create a TypingIndicators. */ data: XOR } /** * TypingIndicators createMany */ export type TypingIndicatorsCreateManyArgs = { /** * The data used to create many TypingIndicators. */ data: TypingIndicatorsCreateManyInput | TypingIndicatorsCreateManyInput[] skipDuplicates?: boolean } /** * TypingIndicators createManyAndReturn */ export type TypingIndicatorsCreateManyAndReturnArgs = { /** * Select specific fields to fetch from the TypingIndicators */ select?: TypingIndicatorsSelectCreateManyAndReturn | null /** * Omit specific fields from the TypingIndicators */ omit?: TypingIndicatorsOmit | null /** * The data used to create many TypingIndicators. */ data: TypingIndicatorsCreateManyInput | TypingIndicatorsCreateManyInput[] skipDuplicates?: boolean } /** * TypingIndicators update */ export type TypingIndicatorsUpdateArgs = { /** * Select specific fields to fetch from the TypingIndicators */ select?: TypingIndicatorsSelect | null /** * Omit specific fields from the TypingIndicators */ omit?: TypingIndicatorsOmit | null /** * The data needed to update a TypingIndicators. */ data: XOR /** * Choose, which TypingIndicators to update. */ where: TypingIndicatorsWhereUniqueInput } /** * TypingIndicators updateMany */ export type TypingIndicatorsUpdateManyArgs = { /** * The data used to update TypingIndicators. */ data: XOR /** * Filter which TypingIndicators to update */ where?: TypingIndicatorsWhereInput /** * Limit how many TypingIndicators to update. */ limit?: number } /** * TypingIndicators updateManyAndReturn */ export type TypingIndicatorsUpdateManyAndReturnArgs = { /** * Select specific fields to fetch from the TypingIndicators */ select?: TypingIndicatorsSelectUpdateManyAndReturn | null /** * Omit specific fields from the TypingIndicators */ omit?: TypingIndicatorsOmit | null /** * The data used to update TypingIndicators. */ data: XOR /** * Filter which TypingIndicators to update */ where?: TypingIndicatorsWhereInput /** * Limit how many TypingIndicators to update. */ limit?: number } /** * TypingIndicators upsert */ export type TypingIndicatorsUpsertArgs = { /** * Select specific fields to fetch from the TypingIndicators */ select?: TypingIndicatorsSelect | null /** * Omit specific fields from the TypingIndicators */ omit?: TypingIndicatorsOmit | null /** * The filter to search for the TypingIndicators to update in case it exists. */ where: TypingIndicatorsWhereUniqueInput /** * In case the TypingIndicators found by the `where` argument doesn't exist, create a new TypingIndicators with this data. */ create: XOR /** * In case the TypingIndicators was found with the provided `where` argument, update it with this data. */ update: XOR } /** * TypingIndicators delete */ export type TypingIndicatorsDeleteArgs = { /** * Select specific fields to fetch from the TypingIndicators */ select?: TypingIndicatorsSelect | null /** * Omit specific fields from the TypingIndicators */ omit?: TypingIndicatorsOmit | null /** * Filter which TypingIndicators to delete. */ where: TypingIndicatorsWhereUniqueInput } /** * TypingIndicators deleteMany */ export type TypingIndicatorsDeleteManyArgs = { /** * Filter which TypingIndicators to delete */ where?: TypingIndicatorsWhereInput /** * Limit how many TypingIndicators to delete. */ limit?: number } /** * TypingIndicators without action */ export type TypingIndicatorsDefaultArgs = { /** * Select specific fields to fetch from the TypingIndicators */ select?: TypingIndicatorsSelect | null /** * Omit specific fields from the TypingIndicators */ omit?: TypingIndicatorsOmit | null } /** * Model ConversationParticipants */ export type AggregateConversationParticipants = { _count: ConversationParticipantsCountAggregateOutputType | null _min: ConversationParticipantsMinAggregateOutputType | null _max: ConversationParticipantsMaxAggregateOutputType | null } export type ConversationParticipantsMinAggregateOutputType = { id: string | null conversationId: string | null userId: string | null userType: $Enums.SenderType | null role: $Enums.ParticipantRole | null joinedAt: Date | null leftAt: Date | null } export type ConversationParticipantsMaxAggregateOutputType = { id: string | null conversationId: string | null userId: string | null userType: $Enums.SenderType | null role: $Enums.ParticipantRole | null joinedAt: Date | null leftAt: Date | null } export type ConversationParticipantsCountAggregateOutputType = { id: number conversationId: number userId: number userType: number role: number joinedAt: number leftAt: number _all: number } export type ConversationParticipantsMinAggregateInputType = { id?: true conversationId?: true userId?: true userType?: true role?: true joinedAt?: true leftAt?: true } export type ConversationParticipantsMaxAggregateInputType = { id?: true conversationId?: true userId?: true userType?: true role?: true joinedAt?: true leftAt?: true } export type ConversationParticipantsCountAggregateInputType = { id?: true conversationId?: true userId?: true userType?: true role?: true joinedAt?: true leftAt?: true _all?: true } export type ConversationParticipantsAggregateArgs = { /** * Filter which ConversationParticipants to aggregate. */ where?: ConversationParticipantsWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of ConversationParticipants to fetch. */ orderBy?: ConversationParticipantsOrderByWithRelationInput | ConversationParticipantsOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the start position */ cursor?: ConversationParticipantsWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` ConversationParticipants 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` ConversationParticipants. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Count returned ConversationParticipants **/ _count?: true | ConversationParticipantsCountAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the minimum value **/ _min?: ConversationParticipantsMinAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the maximum value **/ _max?: ConversationParticipantsMaxAggregateInputType } export type GetConversationParticipantsAggregateType = { [P in keyof T & keyof AggregateConversationParticipants]: P extends '_count' | 'count' ? T[P] extends true ? number : GetScalarType : GetScalarType } export type ConversationParticipantsGroupByArgs = { where?: ConversationParticipantsWhereInput orderBy?: ConversationParticipantsOrderByWithAggregationInput | ConversationParticipantsOrderByWithAggregationInput[] by: ConversationParticipantsScalarFieldEnum[] | ConversationParticipantsScalarFieldEnum having?: ConversationParticipantsScalarWhereWithAggregatesInput take?: number skip?: number _count?: ConversationParticipantsCountAggregateInputType | true _min?: ConversationParticipantsMinAggregateInputType _max?: ConversationParticipantsMaxAggregateInputType } export type ConversationParticipantsGroupByOutputType = { id: string conversationId: string userId: string userType: $Enums.SenderType role: $Enums.ParticipantRole joinedAt: Date leftAt: Date | null _count: ConversationParticipantsCountAggregateOutputType | null _min: ConversationParticipantsMinAggregateOutputType | null _max: ConversationParticipantsMaxAggregateOutputType | null } type GetConversationParticipantsGroupByPayload = Prisma.PrismaPromise< Array< PickEnumerable & { [P in ((keyof T) & (keyof ConversationParticipantsGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : GetScalarType : GetScalarType } > > export type ConversationParticipantsSelect = $Extensions.GetSelect<{ id?: boolean conversationId?: boolean userId?: boolean userType?: boolean role?: boolean joinedAt?: boolean leftAt?: boolean }, ExtArgs["result"]["conversationParticipants"]> export type ConversationParticipantsSelectCreateManyAndReturn = $Extensions.GetSelect<{ id?: boolean conversationId?: boolean userId?: boolean userType?: boolean role?: boolean joinedAt?: boolean leftAt?: boolean }, ExtArgs["result"]["conversationParticipants"]> export type ConversationParticipantsSelectUpdateManyAndReturn = $Extensions.GetSelect<{ id?: boolean conversationId?: boolean userId?: boolean userType?: boolean role?: boolean joinedAt?: boolean leftAt?: boolean }, ExtArgs["result"]["conversationParticipants"]> export type ConversationParticipantsSelectScalar = { id?: boolean conversationId?: boolean userId?: boolean userType?: boolean role?: boolean joinedAt?: boolean leftAt?: boolean } export type ConversationParticipantsOmit = $Extensions.GetOmit<"id" | "conversationId" | "userId" | "userType" | "role" | "joinedAt" | "leftAt", ExtArgs["result"]["conversationParticipants"]> export type $ConversationParticipantsPayload = { name: "ConversationParticipants" objects: {} scalars: $Extensions.GetPayloadResult<{ id: string conversationId: string userId: string userType: $Enums.SenderType role: $Enums.ParticipantRole joinedAt: Date leftAt: Date | null }, ExtArgs["result"]["conversationParticipants"]> composites: {} } type ConversationParticipantsGetPayload = $Result.GetResult type ConversationParticipantsCountArgs = Omit & { select?: ConversationParticipantsCountAggregateInputType | true } export interface ConversationParticipantsDelegate { [K: symbol]: { types: Prisma.TypeMap['model']['ConversationParticipants'], meta: { name: 'ConversationParticipants' } } /** * Find zero or one ConversationParticipants that matches the filter. * @param {ConversationParticipantsFindUniqueArgs} args - Arguments to find a ConversationParticipants * @example * // Get one ConversationParticipants * const conversationParticipants = await prisma.conversationParticipants.findUnique({ * where: { * // ... provide filter here * } * }) */ findUnique(args: SelectSubset>): Prisma__ConversationParticipantsClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find one ConversationParticipants that matches the filter or throw an error with `error.code='P2025'` * if no matches were found. * @param {ConversationParticipantsFindUniqueOrThrowArgs} args - Arguments to find a ConversationParticipants * @example * // Get one ConversationParticipants * const conversationParticipants = await prisma.conversationParticipants.findUniqueOrThrow({ * where: { * // ... provide filter here * } * }) */ findUniqueOrThrow(args: SelectSubset>): Prisma__ConversationParticipantsClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find the first ConversationParticipants 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 {ConversationParticipantsFindFirstArgs} args - Arguments to find a ConversationParticipants * @example * // Get one ConversationParticipants * const conversationParticipants = await prisma.conversationParticipants.findFirst({ * where: { * // ... provide filter here * } * }) */ findFirst(args?: SelectSubset>): Prisma__ConversationParticipantsClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find the first ConversationParticipants 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 {ConversationParticipantsFindFirstOrThrowArgs} args - Arguments to find a ConversationParticipants * @example * // Get one ConversationParticipants * const conversationParticipants = await prisma.conversationParticipants.findFirstOrThrow({ * where: { * // ... provide filter here * } * }) */ findFirstOrThrow(args?: SelectSubset>): Prisma__ConversationParticipantsClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find zero or more ConversationParticipants 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 {ConversationParticipantsFindManyArgs} args - Arguments to filter and select certain fields only. * @example * // Get all ConversationParticipants * const conversationParticipants = await prisma.conversationParticipants.findMany() * * // Get first 10 ConversationParticipants * const conversationParticipants = await prisma.conversationParticipants.findMany({ take: 10 }) * * // Only select the `id` * const conversationParticipantsWithIdOnly = await prisma.conversationParticipants.findMany({ select: { id: true } }) * */ findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>> /** * Create a ConversationParticipants. * @param {ConversationParticipantsCreateArgs} args - Arguments to create a ConversationParticipants. * @example * // Create one ConversationParticipants * const ConversationParticipants = await prisma.conversationParticipants.create({ * data: { * // ... data to create a ConversationParticipants * } * }) * */ create(args: SelectSubset>): Prisma__ConversationParticipantsClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Create many ConversationParticipants. * @param {ConversationParticipantsCreateManyArgs} args - Arguments to create many ConversationParticipants. * @example * // Create many ConversationParticipants * const conversationParticipants = await prisma.conversationParticipants.createMany({ * data: [ * // ... provide data here * ] * }) * */ createMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Create many ConversationParticipants and returns the data saved in the database. * @param {ConversationParticipantsCreateManyAndReturnArgs} args - Arguments to create many ConversationParticipants. * @example * // Create many ConversationParticipants * const conversationParticipants = await prisma.conversationParticipants.createManyAndReturn({ * data: [ * // ... provide data here * ] * }) * * // Create many ConversationParticipants and only return the `id` * const conversationParticipantsWithIdOnly = await prisma.conversationParticipants.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 ConversationParticipants. * @param {ConversationParticipantsDeleteArgs} args - Arguments to delete one ConversationParticipants. * @example * // Delete one ConversationParticipants * const ConversationParticipants = await prisma.conversationParticipants.delete({ * where: { * // ... filter to delete one ConversationParticipants * } * }) * */ delete(args: SelectSubset>): Prisma__ConversationParticipantsClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Update one ConversationParticipants. * @param {ConversationParticipantsUpdateArgs} args - Arguments to update one ConversationParticipants. * @example * // Update one ConversationParticipants * const conversationParticipants = await prisma.conversationParticipants.update({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ update(args: SelectSubset>): Prisma__ConversationParticipantsClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Delete zero or more ConversationParticipants. * @param {ConversationParticipantsDeleteManyArgs} args - Arguments to filter ConversationParticipants to delete. * @example * // Delete a few ConversationParticipants * const { count } = await prisma.conversationParticipants.deleteMany({ * where: { * // ... provide filter here * } * }) * */ deleteMany(args?: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more ConversationParticipants. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {ConversationParticipantsUpdateManyArgs} args - Arguments to update one or more rows. * @example * // Update many ConversationParticipants * const conversationParticipants = await prisma.conversationParticipants.updateMany({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ updateMany(args: SelectSubset>): Prisma.PrismaPromise /** * Update zero or more ConversationParticipants and returns the data updated in the database. * @param {ConversationParticipantsUpdateManyAndReturnArgs} args - Arguments to update many ConversationParticipants. * @example * // Update many ConversationParticipants * const conversationParticipants = await prisma.conversationParticipants.updateManyAndReturn({ * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * * // Update zero or more ConversationParticipants and only return the `id` * const conversationParticipantsWithIdOnly = await prisma.conversationParticipants.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 ConversationParticipants. * @param {ConversationParticipantsUpsertArgs} args - Arguments to update or create a ConversationParticipants. * @example * // Update or create a ConversationParticipants * const conversationParticipants = await prisma.conversationParticipants.upsert({ * create: { * // ... data to create a ConversationParticipants * }, * update: { * // ... in case it already exists, update * }, * where: { * // ... the filter for the ConversationParticipants we want to update * } * }) */ upsert(args: SelectSubset>): Prisma__ConversationParticipantsClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Count the number of ConversationParticipants. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {ConversationParticipantsCountArgs} args - Arguments to filter ConversationParticipants to count. * @example * // Count the number of ConversationParticipants * const count = await prisma.conversationParticipants.count({ * where: { * // ... the filter for the ConversationParticipants 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 ConversationParticipants. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {ConversationParticipantsAggregateArgs} 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 ConversationParticipants. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {ConversationParticipantsGroupByArgs} 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 ConversationParticipantsGroupByArgs, HasSelectOrTake extends Or< Extends<'skip', Keys>, Extends<'take', Keys> >, OrderByArg extends True extends HasSelectOrTake ? { orderBy: ConversationParticipantsGroupByArgs['orderBy'] } : { orderBy?: ConversationParticipantsGroupByArgs['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 ? GetConversationParticipantsGroupByPayload : Prisma.PrismaPromise /** * Fields of the ConversationParticipants model */ readonly fields: ConversationParticipantsFieldRefs; } /** * The delegate class that acts as a "Promise-like" for ConversationParticipants. * 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__ConversationParticipantsClient 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 ConversationParticipants model */ interface ConversationParticipantsFieldRefs { readonly id: FieldRef<"ConversationParticipants", 'String'> readonly conversationId: FieldRef<"ConversationParticipants", 'String'> readonly userId: FieldRef<"ConversationParticipants", 'String'> readonly userType: FieldRef<"ConversationParticipants", 'SenderType'> readonly role: FieldRef<"ConversationParticipants", 'ParticipantRole'> readonly joinedAt: FieldRef<"ConversationParticipants", 'DateTime'> readonly leftAt: FieldRef<"ConversationParticipants", 'DateTime'> } // Custom InputTypes /** * ConversationParticipants findUnique */ export type ConversationParticipantsFindUniqueArgs = { /** * Select specific fields to fetch from the ConversationParticipants */ select?: ConversationParticipantsSelect | null /** * Omit specific fields from the ConversationParticipants */ omit?: ConversationParticipantsOmit | null /** * Filter, which ConversationParticipants to fetch. */ where: ConversationParticipantsWhereUniqueInput } /** * ConversationParticipants findUniqueOrThrow */ export type ConversationParticipantsFindUniqueOrThrowArgs = { /** * Select specific fields to fetch from the ConversationParticipants */ select?: ConversationParticipantsSelect | null /** * Omit specific fields from the ConversationParticipants */ omit?: ConversationParticipantsOmit | null /** * Filter, which ConversationParticipants to fetch. */ where: ConversationParticipantsWhereUniqueInput } /** * ConversationParticipants findFirst */ export type ConversationParticipantsFindFirstArgs = { /** * Select specific fields to fetch from the ConversationParticipants */ select?: ConversationParticipantsSelect | null /** * Omit specific fields from the ConversationParticipants */ omit?: ConversationParticipantsOmit | null /** * Filter, which ConversationParticipants to fetch. */ where?: ConversationParticipantsWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of ConversationParticipants to fetch. */ orderBy?: ConversationParticipantsOrderByWithRelationInput | ConversationParticipantsOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for ConversationParticipants. */ cursor?: ConversationParticipantsWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` ConversationParticipants 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` ConversationParticipants. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of ConversationParticipants. */ distinct?: ConversationParticipantsScalarFieldEnum | ConversationParticipantsScalarFieldEnum[] } /** * ConversationParticipants findFirstOrThrow */ export type ConversationParticipantsFindFirstOrThrowArgs = { /** * Select specific fields to fetch from the ConversationParticipants */ select?: ConversationParticipantsSelect | null /** * Omit specific fields from the ConversationParticipants */ omit?: ConversationParticipantsOmit | null /** * Filter, which ConversationParticipants to fetch. */ where?: ConversationParticipantsWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of ConversationParticipants to fetch. */ orderBy?: ConversationParticipantsOrderByWithRelationInput | ConversationParticipantsOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for ConversationParticipants. */ cursor?: ConversationParticipantsWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` ConversationParticipants 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` ConversationParticipants. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of ConversationParticipants. */ distinct?: ConversationParticipantsScalarFieldEnum | ConversationParticipantsScalarFieldEnum[] } /** * ConversationParticipants findMany */ export type ConversationParticipantsFindManyArgs = { /** * Select specific fields to fetch from the ConversationParticipants */ select?: ConversationParticipantsSelect | null /** * Omit specific fields from the ConversationParticipants */ omit?: ConversationParticipantsOmit | null /** * Filter, which ConversationParticipants to fetch. */ where?: ConversationParticipantsWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of ConversationParticipants to fetch. */ orderBy?: ConversationParticipantsOrderByWithRelationInput | ConversationParticipantsOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for listing ConversationParticipants. */ cursor?: ConversationParticipantsWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` ConversationParticipants 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` ConversationParticipants. */ skip?: number distinct?: ConversationParticipantsScalarFieldEnum | ConversationParticipantsScalarFieldEnum[] } /** * ConversationParticipants create */ export type ConversationParticipantsCreateArgs = { /** * Select specific fields to fetch from the ConversationParticipants */ select?: ConversationParticipantsSelect | null /** * Omit specific fields from the ConversationParticipants */ omit?: ConversationParticipantsOmit | null /** * The data needed to create a ConversationParticipants. */ data: XOR } /** * ConversationParticipants createMany */ export type ConversationParticipantsCreateManyArgs = { /** * The data used to create many ConversationParticipants. */ data: ConversationParticipantsCreateManyInput | ConversationParticipantsCreateManyInput[] skipDuplicates?: boolean } /** * ConversationParticipants createManyAndReturn */ export type ConversationParticipantsCreateManyAndReturnArgs = { /** * Select specific fields to fetch from the ConversationParticipants */ select?: ConversationParticipantsSelectCreateManyAndReturn | null /** * Omit specific fields from the ConversationParticipants */ omit?: ConversationParticipantsOmit | null /** * The data used to create many ConversationParticipants. */ data: ConversationParticipantsCreateManyInput | ConversationParticipantsCreateManyInput[] skipDuplicates?: boolean } /** * ConversationParticipants update */ export type ConversationParticipantsUpdateArgs = { /** * Select specific fields to fetch from the ConversationParticipants */ select?: ConversationParticipantsSelect | null /** * Omit specific fields from the ConversationParticipants */ omit?: ConversationParticipantsOmit | null /** * The data needed to update a ConversationParticipants. */ data: XOR /** * Choose, which ConversationParticipants to update. */ where: ConversationParticipantsWhereUniqueInput } /** * ConversationParticipants updateMany */ export type ConversationParticipantsUpdateManyArgs = { /** * The data used to update ConversationParticipants. */ data: XOR /** * Filter which ConversationParticipants to update */ where?: ConversationParticipantsWhereInput /** * Limit how many ConversationParticipants to update. */ limit?: number } /** * ConversationParticipants updateManyAndReturn */ export type ConversationParticipantsUpdateManyAndReturnArgs = { /** * Select specific fields to fetch from the ConversationParticipants */ select?: ConversationParticipantsSelectUpdateManyAndReturn | null /** * Omit specific fields from the ConversationParticipants */ omit?: ConversationParticipantsOmit | null /** * The data used to update ConversationParticipants. */ data: XOR /** * Filter which ConversationParticipants to update */ where?: ConversationParticipantsWhereInput /** * Limit how many ConversationParticipants to update. */ limit?: number } /** * ConversationParticipants upsert */ export type ConversationParticipantsUpsertArgs = { /** * Select specific fields to fetch from the ConversationParticipants */ select?: ConversationParticipantsSelect | null /** * Omit specific fields from the ConversationParticipants */ omit?: ConversationParticipantsOmit | null /** * The filter to search for the ConversationParticipants to update in case it exists. */ where: ConversationParticipantsWhereUniqueInput /** * In case the ConversationParticipants found by the `where` argument doesn't exist, create a new ConversationParticipants with this data. */ create: XOR /** * In case the ConversationParticipants was found with the provided `where` argument, update it with this data. */ update: XOR } /** * ConversationParticipants delete */ export type ConversationParticipantsDeleteArgs = { /** * Select specific fields to fetch from the ConversationParticipants */ select?: ConversationParticipantsSelect | null /** * Omit specific fields from the ConversationParticipants */ omit?: ConversationParticipantsOmit | null /** * Filter which ConversationParticipants to delete. */ where: ConversationParticipantsWhereUniqueInput } /** * ConversationParticipants deleteMany */ export type ConversationParticipantsDeleteManyArgs = { /** * Filter which ConversationParticipants to delete */ where?: ConversationParticipantsWhereInput /** * Limit how many ConversationParticipants to delete. */ limit?: number } /** * ConversationParticipants without action */ export type ConversationParticipantsDefaultArgs = { /** * Select specific fields to fetch from the ConversationParticipants */ select?: ConversationParticipantsSelect | null /** * Omit specific fields from the ConversationParticipants */ omit?: ConversationParticipantsOmit | null } /** * Enums */ export const TransactionIsolationLevel: { ReadUncommitted: 'ReadUncommitted', ReadCommitted: 'ReadCommitted', RepeatableRead: 'RepeatableRead', Serializable: 'Serializable' }; export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel] export const ConversationsScalarFieldEnum: { id: 'id', subject: 'subject', status: 'status', priority: 'priority', category: 'category', userId: 'userId', adminId: 'adminId', createdAt: 'createdAt', updatedAt: 'updatedAt', lastMessageAt: 'lastMessageAt', metadata: 'metadata' }; export type ConversationsScalarFieldEnum = (typeof ConversationsScalarFieldEnum)[keyof typeof ConversationsScalarFieldEnum] export const MessagesScalarFieldEnum: { id: 'id', conversationId: 'conversationId', content: 'content', messageType: 'messageType', senderId: 'senderId', senderType: 'senderType', senderName: 'senderName', status: 'status', readAt: 'readAt', deliveredAt: 'deliveredAt', metadata: 'metadata', createdAt: 'createdAt', updatedAt: 'updatedAt' }; export type MessagesScalarFieldEnum = (typeof MessagesScalarFieldEnum)[keyof typeof MessagesScalarFieldEnum] export const MessageAttachmentsScalarFieldEnum: { id: 'id', messageId: 'messageId', fileName: 'fileName', fileSize: 'fileSize', mimeType: 'mimeType', fileUrl: 'fileUrl', thumbnailUrl: 'thumbnailUrl', metadata: 'metadata', createdAt: 'createdAt' }; export type MessageAttachmentsScalarFieldEnum = (typeof MessageAttachmentsScalarFieldEnum)[keyof typeof MessageAttachmentsScalarFieldEnum] export const TypingIndicatorsScalarFieldEnum: { id: 'id', conversationId: 'conversationId', userId: 'userId', userType: 'userType', startedAt: 'startedAt' }; export type TypingIndicatorsScalarFieldEnum = (typeof TypingIndicatorsScalarFieldEnum)[keyof typeof TypingIndicatorsScalarFieldEnum] export const ConversationParticipantsScalarFieldEnum: { id: 'id', conversationId: 'conversationId', userId: 'userId', userType: 'userType', role: 'role', joinedAt: 'joinedAt', leftAt: 'leftAt' }; export type ConversationParticipantsScalarFieldEnum = (typeof ConversationParticipantsScalarFieldEnum)[keyof typeof ConversationParticipantsScalarFieldEnum] export const SortOrder: { asc: 'asc', desc: 'desc' }; export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder] export const NullableJsonNullValueInput: { DbNull: typeof DbNull, JsonNull: typeof JsonNull }; export type NullableJsonNullValueInput = (typeof NullableJsonNullValueInput)[keyof typeof NullableJsonNullValueInput] export const QueryMode: { default: 'default', insensitive: 'insensitive' }; export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode] export const JsonNullValueFilter: { DbNull: typeof DbNull, JsonNull: typeof JsonNull, AnyNull: typeof AnyNull }; export type JsonNullValueFilter = (typeof JsonNullValueFilter)[keyof typeof JsonNullValueFilter] 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 'ConversationStatus' */ export type EnumConversationStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ConversationStatus'> /** * Reference to a field of type 'ConversationStatus[]' */ export type ListEnumConversationStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ConversationStatus[]'> /** * Reference to a field of type 'Priority' */ export type EnumPriorityFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Priority'> /** * Reference to a field of type 'Priority[]' */ export type ListEnumPriorityFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Priority[]'> /** * 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 'Json' */ export type JsonFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Json'> /** * Reference to a field of type 'QueryMode' */ export type EnumQueryModeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'QueryMode'> /** * Reference to a field of type 'MessageType' */ export type EnumMessageTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MessageType'> /** * Reference to a field of type 'MessageType[]' */ export type ListEnumMessageTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MessageType[]'> /** * Reference to a field of type 'SenderType' */ export type EnumSenderTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SenderType'> /** * Reference to a field of type 'SenderType[]' */ export type ListEnumSenderTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SenderType[]'> /** * Reference to a field of type 'MessageStatus' */ export type EnumMessageStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MessageStatus'> /** * Reference to a field of type 'MessageStatus[]' */ export type ListEnumMessageStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MessageStatus[]'> /** * 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 'ParticipantRole' */ export type EnumParticipantRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ParticipantRole'> /** * Reference to a field of type 'ParticipantRole[]' */ export type ListEnumParticipantRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ParticipantRole[]'> /** * 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 ConversationsWhereInput = { AND?: ConversationsWhereInput | ConversationsWhereInput[] OR?: ConversationsWhereInput[] NOT?: ConversationsWhereInput | ConversationsWhereInput[] id?: StringFilter<"Conversations"> | string subject?: StringNullableFilter<"Conversations"> | string | null status?: EnumConversationStatusFilter<"Conversations"> | $Enums.ConversationStatus priority?: EnumPriorityFilter<"Conversations"> | $Enums.Priority category?: StringNullableFilter<"Conversations"> | string | null userId?: StringFilter<"Conversations"> | string adminId?: StringNullableFilter<"Conversations"> | string | null createdAt?: DateTimeFilter<"Conversations"> | Date | string updatedAt?: DateTimeFilter<"Conversations"> | Date | string lastMessageAt?: DateTimeNullableFilter<"Conversations"> | Date | string | null metadata?: JsonNullableFilter<"Conversations"> messages?: MessagesListRelationFilter } export type ConversationsOrderByWithRelationInput = { id?: SortOrder subject?: SortOrderInput | SortOrder status?: SortOrder priority?: SortOrder category?: SortOrderInput | SortOrder userId?: SortOrder adminId?: SortOrderInput | SortOrder createdAt?: SortOrder updatedAt?: SortOrder lastMessageAt?: SortOrderInput | SortOrder metadata?: SortOrderInput | SortOrder messages?: MessagesOrderByRelationAggregateInput } export type ConversationsWhereUniqueInput = Prisma.AtLeast<{ id?: string AND?: ConversationsWhereInput | ConversationsWhereInput[] OR?: ConversationsWhereInput[] NOT?: ConversationsWhereInput | ConversationsWhereInput[] subject?: StringNullableFilter<"Conversations"> | string | null status?: EnumConversationStatusFilter<"Conversations"> | $Enums.ConversationStatus priority?: EnumPriorityFilter<"Conversations"> | $Enums.Priority category?: StringNullableFilter<"Conversations"> | string | null userId?: StringFilter<"Conversations"> | string adminId?: StringNullableFilter<"Conversations"> | string | null createdAt?: DateTimeFilter<"Conversations"> | Date | string updatedAt?: DateTimeFilter<"Conversations"> | Date | string lastMessageAt?: DateTimeNullableFilter<"Conversations"> | Date | string | null metadata?: JsonNullableFilter<"Conversations"> messages?: MessagesListRelationFilter }, "id"> export type ConversationsOrderByWithAggregationInput = { id?: SortOrder subject?: SortOrderInput | SortOrder status?: SortOrder priority?: SortOrder category?: SortOrderInput | SortOrder userId?: SortOrder adminId?: SortOrderInput | SortOrder createdAt?: SortOrder updatedAt?: SortOrder lastMessageAt?: SortOrderInput | SortOrder metadata?: SortOrderInput | SortOrder _count?: ConversationsCountOrderByAggregateInput _max?: ConversationsMaxOrderByAggregateInput _min?: ConversationsMinOrderByAggregateInput } export type ConversationsScalarWhereWithAggregatesInput = { AND?: ConversationsScalarWhereWithAggregatesInput | ConversationsScalarWhereWithAggregatesInput[] OR?: ConversationsScalarWhereWithAggregatesInput[] NOT?: ConversationsScalarWhereWithAggregatesInput | ConversationsScalarWhereWithAggregatesInput[] id?: StringWithAggregatesFilter<"Conversations"> | string subject?: StringNullableWithAggregatesFilter<"Conversations"> | string | null status?: EnumConversationStatusWithAggregatesFilter<"Conversations"> | $Enums.ConversationStatus priority?: EnumPriorityWithAggregatesFilter<"Conversations"> | $Enums.Priority category?: StringNullableWithAggregatesFilter<"Conversations"> | string | null userId?: StringWithAggregatesFilter<"Conversations"> | string adminId?: StringNullableWithAggregatesFilter<"Conversations"> | string | null createdAt?: DateTimeWithAggregatesFilter<"Conversations"> | Date | string updatedAt?: DateTimeWithAggregatesFilter<"Conversations"> | Date | string lastMessageAt?: DateTimeNullableWithAggregatesFilter<"Conversations"> | Date | string | null metadata?: JsonNullableWithAggregatesFilter<"Conversations"> } export type MessagesWhereInput = { AND?: MessagesWhereInput | MessagesWhereInput[] OR?: MessagesWhereInput[] NOT?: MessagesWhereInput | MessagesWhereInput[] id?: StringFilter<"Messages"> | string conversationId?: StringFilter<"Messages"> | string content?: StringFilter<"Messages"> | string messageType?: EnumMessageTypeFilter<"Messages"> | $Enums.MessageType senderId?: StringFilter<"Messages"> | string senderType?: EnumSenderTypeFilter<"Messages"> | $Enums.SenderType senderName?: StringNullableFilter<"Messages"> | string | null status?: EnumMessageStatusFilter<"Messages"> | $Enums.MessageStatus readAt?: DateTimeNullableFilter<"Messages"> | Date | string | null deliveredAt?: DateTimeNullableFilter<"Messages"> | Date | string | null metadata?: JsonNullableFilter<"Messages"> createdAt?: DateTimeFilter<"Messages"> | Date | string updatedAt?: DateTimeFilter<"Messages"> | Date | string conversation?: XOR } export type MessagesOrderByWithRelationInput = { id?: SortOrder conversationId?: SortOrder content?: SortOrder messageType?: SortOrder senderId?: SortOrder senderType?: SortOrder senderName?: SortOrderInput | SortOrder status?: SortOrder readAt?: SortOrderInput | SortOrder deliveredAt?: SortOrderInput | SortOrder metadata?: SortOrderInput | SortOrder createdAt?: SortOrder updatedAt?: SortOrder conversation?: ConversationsOrderByWithRelationInput } export type MessagesWhereUniqueInput = Prisma.AtLeast<{ id?: string AND?: MessagesWhereInput | MessagesWhereInput[] OR?: MessagesWhereInput[] NOT?: MessagesWhereInput | MessagesWhereInput[] conversationId?: StringFilter<"Messages"> | string content?: StringFilter<"Messages"> | string messageType?: EnumMessageTypeFilter<"Messages"> | $Enums.MessageType senderId?: StringFilter<"Messages"> | string senderType?: EnumSenderTypeFilter<"Messages"> | $Enums.SenderType senderName?: StringNullableFilter<"Messages"> | string | null status?: EnumMessageStatusFilter<"Messages"> | $Enums.MessageStatus readAt?: DateTimeNullableFilter<"Messages"> | Date | string | null deliveredAt?: DateTimeNullableFilter<"Messages"> | Date | string | null metadata?: JsonNullableFilter<"Messages"> createdAt?: DateTimeFilter<"Messages"> | Date | string updatedAt?: DateTimeFilter<"Messages"> | Date | string conversation?: XOR }, "id"> export type MessagesOrderByWithAggregationInput = { id?: SortOrder conversationId?: SortOrder content?: SortOrder messageType?: SortOrder senderId?: SortOrder senderType?: SortOrder senderName?: SortOrderInput | SortOrder status?: SortOrder readAt?: SortOrderInput | SortOrder deliveredAt?: SortOrderInput | SortOrder metadata?: SortOrderInput | SortOrder createdAt?: SortOrder updatedAt?: SortOrder _count?: MessagesCountOrderByAggregateInput _max?: MessagesMaxOrderByAggregateInput _min?: MessagesMinOrderByAggregateInput } export type MessagesScalarWhereWithAggregatesInput = { AND?: MessagesScalarWhereWithAggregatesInput | MessagesScalarWhereWithAggregatesInput[] OR?: MessagesScalarWhereWithAggregatesInput[] NOT?: MessagesScalarWhereWithAggregatesInput | MessagesScalarWhereWithAggregatesInput[] id?: StringWithAggregatesFilter<"Messages"> | string conversationId?: StringWithAggregatesFilter<"Messages"> | string content?: StringWithAggregatesFilter<"Messages"> | string messageType?: EnumMessageTypeWithAggregatesFilter<"Messages"> | $Enums.MessageType senderId?: StringWithAggregatesFilter<"Messages"> | string senderType?: EnumSenderTypeWithAggregatesFilter<"Messages"> | $Enums.SenderType senderName?: StringNullableWithAggregatesFilter<"Messages"> | string | null status?: EnumMessageStatusWithAggregatesFilter<"Messages"> | $Enums.MessageStatus readAt?: DateTimeNullableWithAggregatesFilter<"Messages"> | Date | string | null deliveredAt?: DateTimeNullableWithAggregatesFilter<"Messages"> | Date | string | null metadata?: JsonNullableWithAggregatesFilter<"Messages"> createdAt?: DateTimeWithAggregatesFilter<"Messages"> | Date | string updatedAt?: DateTimeWithAggregatesFilter<"Messages"> | Date | string } export type MessageAttachmentsWhereInput = { AND?: MessageAttachmentsWhereInput | MessageAttachmentsWhereInput[] OR?: MessageAttachmentsWhereInput[] NOT?: MessageAttachmentsWhereInput | MessageAttachmentsWhereInput[] id?: StringFilter<"MessageAttachments"> | string messageId?: StringFilter<"MessageAttachments"> | string fileName?: StringFilter<"MessageAttachments"> | string fileSize?: IntFilter<"MessageAttachments"> | number mimeType?: StringFilter<"MessageAttachments"> | string fileUrl?: StringFilter<"MessageAttachments"> | string thumbnailUrl?: StringNullableFilter<"MessageAttachments"> | string | null metadata?: JsonNullableFilter<"MessageAttachments"> createdAt?: DateTimeFilter<"MessageAttachments"> | Date | string } export type MessageAttachmentsOrderByWithRelationInput = { id?: SortOrder messageId?: SortOrder fileName?: SortOrder fileSize?: SortOrder mimeType?: SortOrder fileUrl?: SortOrder thumbnailUrl?: SortOrderInput | SortOrder metadata?: SortOrderInput | SortOrder createdAt?: SortOrder } export type MessageAttachmentsWhereUniqueInput = Prisma.AtLeast<{ id?: string AND?: MessageAttachmentsWhereInput | MessageAttachmentsWhereInput[] OR?: MessageAttachmentsWhereInput[] NOT?: MessageAttachmentsWhereInput | MessageAttachmentsWhereInput[] messageId?: StringFilter<"MessageAttachments"> | string fileName?: StringFilter<"MessageAttachments"> | string fileSize?: IntFilter<"MessageAttachments"> | number mimeType?: StringFilter<"MessageAttachments"> | string fileUrl?: StringFilter<"MessageAttachments"> | string thumbnailUrl?: StringNullableFilter<"MessageAttachments"> | string | null metadata?: JsonNullableFilter<"MessageAttachments"> createdAt?: DateTimeFilter<"MessageAttachments"> | Date | string }, "id"> export type MessageAttachmentsOrderByWithAggregationInput = { id?: SortOrder messageId?: SortOrder fileName?: SortOrder fileSize?: SortOrder mimeType?: SortOrder fileUrl?: SortOrder thumbnailUrl?: SortOrderInput | SortOrder metadata?: SortOrderInput | SortOrder createdAt?: SortOrder _count?: MessageAttachmentsCountOrderByAggregateInput _avg?: MessageAttachmentsAvgOrderByAggregateInput _max?: MessageAttachmentsMaxOrderByAggregateInput _min?: MessageAttachmentsMinOrderByAggregateInput _sum?: MessageAttachmentsSumOrderByAggregateInput } export type MessageAttachmentsScalarWhereWithAggregatesInput = { AND?: MessageAttachmentsScalarWhereWithAggregatesInput | MessageAttachmentsScalarWhereWithAggregatesInput[] OR?: MessageAttachmentsScalarWhereWithAggregatesInput[] NOT?: MessageAttachmentsScalarWhereWithAggregatesInput | MessageAttachmentsScalarWhereWithAggregatesInput[] id?: StringWithAggregatesFilter<"MessageAttachments"> | string messageId?: StringWithAggregatesFilter<"MessageAttachments"> | string fileName?: StringWithAggregatesFilter<"MessageAttachments"> | string fileSize?: IntWithAggregatesFilter<"MessageAttachments"> | number mimeType?: StringWithAggregatesFilter<"MessageAttachments"> | string fileUrl?: StringWithAggregatesFilter<"MessageAttachments"> | string thumbnailUrl?: StringNullableWithAggregatesFilter<"MessageAttachments"> | string | null metadata?: JsonNullableWithAggregatesFilter<"MessageAttachments"> createdAt?: DateTimeWithAggregatesFilter<"MessageAttachments"> | Date | string } export type TypingIndicatorsWhereInput = { AND?: TypingIndicatorsWhereInput | TypingIndicatorsWhereInput[] OR?: TypingIndicatorsWhereInput[] NOT?: TypingIndicatorsWhereInput | TypingIndicatorsWhereInput[] id?: StringFilter<"TypingIndicators"> | string conversationId?: StringFilter<"TypingIndicators"> | string userId?: StringFilter<"TypingIndicators"> | string userType?: EnumSenderTypeFilter<"TypingIndicators"> | $Enums.SenderType startedAt?: DateTimeFilter<"TypingIndicators"> | Date | string } export type TypingIndicatorsOrderByWithRelationInput = { id?: SortOrder conversationId?: SortOrder userId?: SortOrder userType?: SortOrder startedAt?: SortOrder } export type TypingIndicatorsWhereUniqueInput = Prisma.AtLeast<{ id?: string conversationId_userId?: TypingIndicatorsConversationIdUserIdCompoundUniqueInput AND?: TypingIndicatorsWhereInput | TypingIndicatorsWhereInput[] OR?: TypingIndicatorsWhereInput[] NOT?: TypingIndicatorsWhereInput | TypingIndicatorsWhereInput[] conversationId?: StringFilter<"TypingIndicators"> | string userId?: StringFilter<"TypingIndicators"> | string userType?: EnumSenderTypeFilter<"TypingIndicators"> | $Enums.SenderType startedAt?: DateTimeFilter<"TypingIndicators"> | Date | string }, "id" | "conversationId_userId"> export type TypingIndicatorsOrderByWithAggregationInput = { id?: SortOrder conversationId?: SortOrder userId?: SortOrder userType?: SortOrder startedAt?: SortOrder _count?: TypingIndicatorsCountOrderByAggregateInput _max?: TypingIndicatorsMaxOrderByAggregateInput _min?: TypingIndicatorsMinOrderByAggregateInput } export type TypingIndicatorsScalarWhereWithAggregatesInput = { AND?: TypingIndicatorsScalarWhereWithAggregatesInput | TypingIndicatorsScalarWhereWithAggregatesInput[] OR?: TypingIndicatorsScalarWhereWithAggregatesInput[] NOT?: TypingIndicatorsScalarWhereWithAggregatesInput | TypingIndicatorsScalarWhereWithAggregatesInput[] id?: StringWithAggregatesFilter<"TypingIndicators"> | string conversationId?: StringWithAggregatesFilter<"TypingIndicators"> | string userId?: StringWithAggregatesFilter<"TypingIndicators"> | string userType?: EnumSenderTypeWithAggregatesFilter<"TypingIndicators"> | $Enums.SenderType startedAt?: DateTimeWithAggregatesFilter<"TypingIndicators"> | Date | string } export type ConversationParticipantsWhereInput = { AND?: ConversationParticipantsWhereInput | ConversationParticipantsWhereInput[] OR?: ConversationParticipantsWhereInput[] NOT?: ConversationParticipantsWhereInput | ConversationParticipantsWhereInput[] id?: StringFilter<"ConversationParticipants"> | string conversationId?: StringFilter<"ConversationParticipants"> | string userId?: StringFilter<"ConversationParticipants"> | string userType?: EnumSenderTypeFilter<"ConversationParticipants"> | $Enums.SenderType role?: EnumParticipantRoleFilter<"ConversationParticipants"> | $Enums.ParticipantRole joinedAt?: DateTimeFilter<"ConversationParticipants"> | Date | string leftAt?: DateTimeNullableFilter<"ConversationParticipants"> | Date | string | null } export type ConversationParticipantsOrderByWithRelationInput = { id?: SortOrder conversationId?: SortOrder userId?: SortOrder userType?: SortOrder role?: SortOrder joinedAt?: SortOrder leftAt?: SortOrderInput | SortOrder } export type ConversationParticipantsWhereUniqueInput = Prisma.AtLeast<{ id?: string conversationId_userId?: ConversationParticipantsConversationIdUserIdCompoundUniqueInput AND?: ConversationParticipantsWhereInput | ConversationParticipantsWhereInput[] OR?: ConversationParticipantsWhereInput[] NOT?: ConversationParticipantsWhereInput | ConversationParticipantsWhereInput[] conversationId?: StringFilter<"ConversationParticipants"> | string userId?: StringFilter<"ConversationParticipants"> | string userType?: EnumSenderTypeFilter<"ConversationParticipants"> | $Enums.SenderType role?: EnumParticipantRoleFilter<"ConversationParticipants"> | $Enums.ParticipantRole joinedAt?: DateTimeFilter<"ConversationParticipants"> | Date | string leftAt?: DateTimeNullableFilter<"ConversationParticipants"> | Date | string | null }, "id" | "conversationId_userId"> export type ConversationParticipantsOrderByWithAggregationInput = { id?: SortOrder conversationId?: SortOrder userId?: SortOrder userType?: SortOrder role?: SortOrder joinedAt?: SortOrder leftAt?: SortOrderInput | SortOrder _count?: ConversationParticipantsCountOrderByAggregateInput _max?: ConversationParticipantsMaxOrderByAggregateInput _min?: ConversationParticipantsMinOrderByAggregateInput } export type ConversationParticipantsScalarWhereWithAggregatesInput = { AND?: ConversationParticipantsScalarWhereWithAggregatesInput | ConversationParticipantsScalarWhereWithAggregatesInput[] OR?: ConversationParticipantsScalarWhereWithAggregatesInput[] NOT?: ConversationParticipantsScalarWhereWithAggregatesInput | ConversationParticipantsScalarWhereWithAggregatesInput[] id?: StringWithAggregatesFilter<"ConversationParticipants"> | string conversationId?: StringWithAggregatesFilter<"ConversationParticipants"> | string userId?: StringWithAggregatesFilter<"ConversationParticipants"> | string userType?: EnumSenderTypeWithAggregatesFilter<"ConversationParticipants"> | $Enums.SenderType role?: EnumParticipantRoleWithAggregatesFilter<"ConversationParticipants"> | $Enums.ParticipantRole joinedAt?: DateTimeWithAggregatesFilter<"ConversationParticipants"> | Date | string leftAt?: DateTimeNullableWithAggregatesFilter<"ConversationParticipants"> | Date | string | null } export type ConversationsCreateInput = { id?: string subject?: string | null status?: $Enums.ConversationStatus priority?: $Enums.Priority category?: string | null userId: string adminId?: string | null createdAt?: Date | string updatedAt?: Date | string lastMessageAt?: Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue messages?: MessagesCreateNestedManyWithoutConversationInput } export type ConversationsUncheckedCreateInput = { id?: string subject?: string | null status?: $Enums.ConversationStatus priority?: $Enums.Priority category?: string | null userId: string adminId?: string | null createdAt?: Date | string updatedAt?: Date | string lastMessageAt?: Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue messages?: MessagesUncheckedCreateNestedManyWithoutConversationInput } export type ConversationsUpdateInput = { id?: StringFieldUpdateOperationsInput | string subject?: NullableStringFieldUpdateOperationsInput | string | null status?: EnumConversationStatusFieldUpdateOperationsInput | $Enums.ConversationStatus priority?: EnumPriorityFieldUpdateOperationsInput | $Enums.Priority category?: NullableStringFieldUpdateOperationsInput | string | null userId?: StringFieldUpdateOperationsInput | string adminId?: NullableStringFieldUpdateOperationsInput | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string lastMessageAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue messages?: MessagesUpdateManyWithoutConversationNestedInput } export type ConversationsUncheckedUpdateInput = { id?: StringFieldUpdateOperationsInput | string subject?: NullableStringFieldUpdateOperationsInput | string | null status?: EnumConversationStatusFieldUpdateOperationsInput | $Enums.ConversationStatus priority?: EnumPriorityFieldUpdateOperationsInput | $Enums.Priority category?: NullableStringFieldUpdateOperationsInput | string | null userId?: StringFieldUpdateOperationsInput | string adminId?: NullableStringFieldUpdateOperationsInput | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string lastMessageAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue messages?: MessagesUncheckedUpdateManyWithoutConversationNestedInput } export type ConversationsCreateManyInput = { id?: string subject?: string | null status?: $Enums.ConversationStatus priority?: $Enums.Priority category?: string | null userId: string adminId?: string | null createdAt?: Date | string updatedAt?: Date | string lastMessageAt?: Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue } export type ConversationsUpdateManyMutationInput = { id?: StringFieldUpdateOperationsInput | string subject?: NullableStringFieldUpdateOperationsInput | string | null status?: EnumConversationStatusFieldUpdateOperationsInput | $Enums.ConversationStatus priority?: EnumPriorityFieldUpdateOperationsInput | $Enums.Priority category?: NullableStringFieldUpdateOperationsInput | string | null userId?: StringFieldUpdateOperationsInput | string adminId?: NullableStringFieldUpdateOperationsInput | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string lastMessageAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue } export type ConversationsUncheckedUpdateManyInput = { id?: StringFieldUpdateOperationsInput | string subject?: NullableStringFieldUpdateOperationsInput | string | null status?: EnumConversationStatusFieldUpdateOperationsInput | $Enums.ConversationStatus priority?: EnumPriorityFieldUpdateOperationsInput | $Enums.Priority category?: NullableStringFieldUpdateOperationsInput | string | null userId?: StringFieldUpdateOperationsInput | string adminId?: NullableStringFieldUpdateOperationsInput | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string lastMessageAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue } export type MessagesCreateInput = { id?: string content: string messageType?: $Enums.MessageType senderId: string senderType: $Enums.SenderType senderName?: string | null status?: $Enums.MessageStatus readAt?: Date | string | null deliveredAt?: Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue createdAt?: Date | string updatedAt?: Date | string conversation: ConversationsCreateNestedOneWithoutMessagesInput } export type MessagesUncheckedCreateInput = { id?: string conversationId: string content: string messageType?: $Enums.MessageType senderId: string senderType: $Enums.SenderType senderName?: string | null status?: $Enums.MessageStatus readAt?: Date | string | null deliveredAt?: Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue createdAt?: Date | string updatedAt?: Date | string } export type MessagesUpdateInput = { id?: StringFieldUpdateOperationsInput | string content?: StringFieldUpdateOperationsInput | string messageType?: EnumMessageTypeFieldUpdateOperationsInput | $Enums.MessageType senderId?: StringFieldUpdateOperationsInput | string senderType?: EnumSenderTypeFieldUpdateOperationsInput | $Enums.SenderType senderName?: NullableStringFieldUpdateOperationsInput | string | null status?: EnumMessageStatusFieldUpdateOperationsInput | $Enums.MessageStatus readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null deliveredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string conversation?: ConversationsUpdateOneRequiredWithoutMessagesNestedInput } export type MessagesUncheckedUpdateInput = { id?: StringFieldUpdateOperationsInput | string conversationId?: StringFieldUpdateOperationsInput | string content?: StringFieldUpdateOperationsInput | string messageType?: EnumMessageTypeFieldUpdateOperationsInput | $Enums.MessageType senderId?: StringFieldUpdateOperationsInput | string senderType?: EnumSenderTypeFieldUpdateOperationsInput | $Enums.SenderType senderName?: NullableStringFieldUpdateOperationsInput | string | null status?: EnumMessageStatusFieldUpdateOperationsInput | $Enums.MessageStatus readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null deliveredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type MessagesCreateManyInput = { id?: string conversationId: string content: string messageType?: $Enums.MessageType senderId: string senderType: $Enums.SenderType senderName?: string | null status?: $Enums.MessageStatus readAt?: Date | string | null deliveredAt?: Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue createdAt?: Date | string updatedAt?: Date | string } export type MessagesUpdateManyMutationInput = { id?: StringFieldUpdateOperationsInput | string content?: StringFieldUpdateOperationsInput | string messageType?: EnumMessageTypeFieldUpdateOperationsInput | $Enums.MessageType senderId?: StringFieldUpdateOperationsInput | string senderType?: EnumSenderTypeFieldUpdateOperationsInput | $Enums.SenderType senderName?: NullableStringFieldUpdateOperationsInput | string | null status?: EnumMessageStatusFieldUpdateOperationsInput | $Enums.MessageStatus readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null deliveredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type MessagesUncheckedUpdateManyInput = { id?: StringFieldUpdateOperationsInput | string conversationId?: StringFieldUpdateOperationsInput | string content?: StringFieldUpdateOperationsInput | string messageType?: EnumMessageTypeFieldUpdateOperationsInput | $Enums.MessageType senderId?: StringFieldUpdateOperationsInput | string senderType?: EnumSenderTypeFieldUpdateOperationsInput | $Enums.SenderType senderName?: NullableStringFieldUpdateOperationsInput | string | null status?: EnumMessageStatusFieldUpdateOperationsInput | $Enums.MessageStatus readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null deliveredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type MessageAttachmentsCreateInput = { id?: string messageId: string fileName: string fileSize: number mimeType: string fileUrl: string thumbnailUrl?: string | null metadata?: NullableJsonNullValueInput | InputJsonValue createdAt?: Date | string } export type MessageAttachmentsUncheckedCreateInput = { id?: string messageId: string fileName: string fileSize: number mimeType: string fileUrl: string thumbnailUrl?: string | null metadata?: NullableJsonNullValueInput | InputJsonValue createdAt?: Date | string } export type MessageAttachmentsUpdateInput = { id?: StringFieldUpdateOperationsInput | string messageId?: StringFieldUpdateOperationsInput | string fileName?: StringFieldUpdateOperationsInput | string fileSize?: IntFieldUpdateOperationsInput | number mimeType?: StringFieldUpdateOperationsInput | string fileUrl?: StringFieldUpdateOperationsInput | string thumbnailUrl?: NullableStringFieldUpdateOperationsInput | string | null metadata?: NullableJsonNullValueInput | InputJsonValue createdAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type MessageAttachmentsUncheckedUpdateInput = { id?: StringFieldUpdateOperationsInput | string messageId?: StringFieldUpdateOperationsInput | string fileName?: StringFieldUpdateOperationsInput | string fileSize?: IntFieldUpdateOperationsInput | number mimeType?: StringFieldUpdateOperationsInput | string fileUrl?: StringFieldUpdateOperationsInput | string thumbnailUrl?: NullableStringFieldUpdateOperationsInput | string | null metadata?: NullableJsonNullValueInput | InputJsonValue createdAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type MessageAttachmentsCreateManyInput = { id?: string messageId: string fileName: string fileSize: number mimeType: string fileUrl: string thumbnailUrl?: string | null metadata?: NullableJsonNullValueInput | InputJsonValue createdAt?: Date | string } export type MessageAttachmentsUpdateManyMutationInput = { id?: StringFieldUpdateOperationsInput | string messageId?: StringFieldUpdateOperationsInput | string fileName?: StringFieldUpdateOperationsInput | string fileSize?: IntFieldUpdateOperationsInput | number mimeType?: StringFieldUpdateOperationsInput | string fileUrl?: StringFieldUpdateOperationsInput | string thumbnailUrl?: NullableStringFieldUpdateOperationsInput | string | null metadata?: NullableJsonNullValueInput | InputJsonValue createdAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type MessageAttachmentsUncheckedUpdateManyInput = { id?: StringFieldUpdateOperationsInput | string messageId?: StringFieldUpdateOperationsInput | string fileName?: StringFieldUpdateOperationsInput | string fileSize?: IntFieldUpdateOperationsInput | number mimeType?: StringFieldUpdateOperationsInput | string fileUrl?: StringFieldUpdateOperationsInput | string thumbnailUrl?: NullableStringFieldUpdateOperationsInput | string | null metadata?: NullableJsonNullValueInput | InputJsonValue createdAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type TypingIndicatorsCreateInput = { id?: string conversationId: string userId: string userType: $Enums.SenderType startedAt?: Date | string } export type TypingIndicatorsUncheckedCreateInput = { id?: string conversationId: string userId: string userType: $Enums.SenderType startedAt?: Date | string } export type TypingIndicatorsUpdateInput = { id?: StringFieldUpdateOperationsInput | string conversationId?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string userType?: EnumSenderTypeFieldUpdateOperationsInput | $Enums.SenderType startedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type TypingIndicatorsUncheckedUpdateInput = { id?: StringFieldUpdateOperationsInput | string conversationId?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string userType?: EnumSenderTypeFieldUpdateOperationsInput | $Enums.SenderType startedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type TypingIndicatorsCreateManyInput = { id?: string conversationId: string userId: string userType: $Enums.SenderType startedAt?: Date | string } export type TypingIndicatorsUpdateManyMutationInput = { id?: StringFieldUpdateOperationsInput | string conversationId?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string userType?: EnumSenderTypeFieldUpdateOperationsInput | $Enums.SenderType startedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type TypingIndicatorsUncheckedUpdateManyInput = { id?: StringFieldUpdateOperationsInput | string conversationId?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string userType?: EnumSenderTypeFieldUpdateOperationsInput | $Enums.SenderType startedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type ConversationParticipantsCreateInput = { id?: string conversationId: string userId: string userType: $Enums.SenderType role?: $Enums.ParticipantRole joinedAt?: Date | string leftAt?: Date | string | null } export type ConversationParticipantsUncheckedCreateInput = { id?: string conversationId: string userId: string userType: $Enums.SenderType role?: $Enums.ParticipantRole joinedAt?: Date | string leftAt?: Date | string | null } export type ConversationParticipantsUpdateInput = { id?: StringFieldUpdateOperationsInput | string conversationId?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string userType?: EnumSenderTypeFieldUpdateOperationsInput | $Enums.SenderType role?: EnumParticipantRoleFieldUpdateOperationsInput | $Enums.ParticipantRole joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null } export type ConversationParticipantsUncheckedUpdateInput = { id?: StringFieldUpdateOperationsInput | string conversationId?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string userType?: EnumSenderTypeFieldUpdateOperationsInput | $Enums.SenderType role?: EnumParticipantRoleFieldUpdateOperationsInput | $Enums.ParticipantRole joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null } export type ConversationParticipantsCreateManyInput = { id?: string conversationId: string userId: string userType: $Enums.SenderType role?: $Enums.ParticipantRole joinedAt?: Date | string leftAt?: Date | string | null } export type ConversationParticipantsUpdateManyMutationInput = { id?: StringFieldUpdateOperationsInput | string conversationId?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string userType?: EnumSenderTypeFieldUpdateOperationsInput | $Enums.SenderType role?: EnumParticipantRoleFieldUpdateOperationsInput | $Enums.ParticipantRole joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null } export type ConversationParticipantsUncheckedUpdateManyInput = { id?: StringFieldUpdateOperationsInput | string conversationId?: StringFieldUpdateOperationsInput | string userId?: StringFieldUpdateOperationsInput | string userType?: EnumSenderTypeFieldUpdateOperationsInput | $Enums.SenderType role?: EnumParticipantRoleFieldUpdateOperationsInput | $Enums.ParticipantRole joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null } 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 EnumConversationStatusFilter<$PrismaModel = never> = { equals?: $Enums.ConversationStatus | EnumConversationStatusFieldRefInput<$PrismaModel> in?: $Enums.ConversationStatus[] | ListEnumConversationStatusFieldRefInput<$PrismaModel> notIn?: $Enums.ConversationStatus[] | ListEnumConversationStatusFieldRefInput<$PrismaModel> not?: NestedEnumConversationStatusFilter<$PrismaModel> | $Enums.ConversationStatus } export type EnumPriorityFilter<$PrismaModel = never> = { equals?: $Enums.Priority | EnumPriorityFieldRefInput<$PrismaModel> in?: $Enums.Priority[] | ListEnumPriorityFieldRefInput<$PrismaModel> notIn?: $Enums.Priority[] | ListEnumPriorityFieldRefInput<$PrismaModel> not?: NestedEnumPriorityFilter<$PrismaModel> | $Enums.Priority } 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 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 JsonNullableFilter<$PrismaModel = never> = | PatchUndefined< Either>, Exclude>, 'path'>>, Required> > | OptionalFlat>, 'path'>> export type JsonNullableFilterBase<$PrismaModel = never> = { equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter path?: string[] mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel> string_contains?: string | StringFieldRefInput<$PrismaModel> string_starts_with?: string | StringFieldRefInput<$PrismaModel> string_ends_with?: string | StringFieldRefInput<$PrismaModel> array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel> lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel> gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel> gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel> not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter } export type MessagesListRelationFilter = { every?: MessagesWhereInput some?: MessagesWhereInput none?: MessagesWhereInput } export type SortOrderInput = { sort: SortOrder nulls?: NullsOrder } export type MessagesOrderByRelationAggregateInput = { _count?: SortOrder } export type ConversationsCountOrderByAggregateInput = { id?: SortOrder subject?: SortOrder status?: SortOrder priority?: SortOrder category?: SortOrder userId?: SortOrder adminId?: SortOrder createdAt?: SortOrder updatedAt?: SortOrder lastMessageAt?: SortOrder metadata?: SortOrder } export type ConversationsMaxOrderByAggregateInput = { id?: SortOrder subject?: SortOrder status?: SortOrder priority?: SortOrder category?: SortOrder userId?: SortOrder adminId?: SortOrder createdAt?: SortOrder updatedAt?: SortOrder lastMessageAt?: SortOrder } export type ConversationsMinOrderByAggregateInput = { id?: SortOrder subject?: SortOrder status?: SortOrder priority?: SortOrder category?: SortOrder userId?: SortOrder adminId?: SortOrder createdAt?: SortOrder updatedAt?: SortOrder lastMessageAt?: 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 EnumConversationStatusWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.ConversationStatus | EnumConversationStatusFieldRefInput<$PrismaModel> in?: $Enums.ConversationStatus[] | ListEnumConversationStatusFieldRefInput<$PrismaModel> notIn?: $Enums.ConversationStatus[] | ListEnumConversationStatusFieldRefInput<$PrismaModel> not?: NestedEnumConversationStatusWithAggregatesFilter<$PrismaModel> | $Enums.ConversationStatus _count?: NestedIntFilter<$PrismaModel> _min?: NestedEnumConversationStatusFilter<$PrismaModel> _max?: NestedEnumConversationStatusFilter<$PrismaModel> } export type EnumPriorityWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.Priority | EnumPriorityFieldRefInput<$PrismaModel> in?: $Enums.Priority[] | ListEnumPriorityFieldRefInput<$PrismaModel> notIn?: $Enums.Priority[] | ListEnumPriorityFieldRefInput<$PrismaModel> not?: NestedEnumPriorityWithAggregatesFilter<$PrismaModel> | $Enums.Priority _count?: NestedIntFilter<$PrismaModel> _min?: NestedEnumPriorityFilter<$PrismaModel> _max?: NestedEnumPriorityFilter<$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 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 JsonNullableWithAggregatesFilter<$PrismaModel = never> = | PatchUndefined< Either>, Exclude>, 'path'>>, Required> > | OptionalFlat>, 'path'>> export type JsonNullableWithAggregatesFilterBase<$PrismaModel = never> = { equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter path?: string[] mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel> string_contains?: string | StringFieldRefInput<$PrismaModel> string_starts_with?: string | StringFieldRefInput<$PrismaModel> string_ends_with?: string | StringFieldRefInput<$PrismaModel> array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel> lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel> gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel> gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel> not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter _count?: NestedIntNullableFilter<$PrismaModel> _min?: NestedJsonNullableFilter<$PrismaModel> _max?: NestedJsonNullableFilter<$PrismaModel> } export type EnumMessageTypeFilter<$PrismaModel = never> = { equals?: $Enums.MessageType | EnumMessageTypeFieldRefInput<$PrismaModel> in?: $Enums.MessageType[] | ListEnumMessageTypeFieldRefInput<$PrismaModel> notIn?: $Enums.MessageType[] | ListEnumMessageTypeFieldRefInput<$PrismaModel> not?: NestedEnumMessageTypeFilter<$PrismaModel> | $Enums.MessageType } export type EnumSenderTypeFilter<$PrismaModel = never> = { equals?: $Enums.SenderType | EnumSenderTypeFieldRefInput<$PrismaModel> in?: $Enums.SenderType[] | ListEnumSenderTypeFieldRefInput<$PrismaModel> notIn?: $Enums.SenderType[] | ListEnumSenderTypeFieldRefInput<$PrismaModel> not?: NestedEnumSenderTypeFilter<$PrismaModel> | $Enums.SenderType } export type EnumMessageStatusFilter<$PrismaModel = never> = { equals?: $Enums.MessageStatus | EnumMessageStatusFieldRefInput<$PrismaModel> in?: $Enums.MessageStatus[] | ListEnumMessageStatusFieldRefInput<$PrismaModel> notIn?: $Enums.MessageStatus[] | ListEnumMessageStatusFieldRefInput<$PrismaModel> not?: NestedEnumMessageStatusFilter<$PrismaModel> | $Enums.MessageStatus } export type ConversationsScalarRelationFilter = { is?: ConversationsWhereInput isNot?: ConversationsWhereInput } export type MessagesCountOrderByAggregateInput = { id?: SortOrder conversationId?: SortOrder content?: SortOrder messageType?: SortOrder senderId?: SortOrder senderType?: SortOrder senderName?: SortOrder status?: SortOrder readAt?: SortOrder deliveredAt?: SortOrder metadata?: SortOrder createdAt?: SortOrder updatedAt?: SortOrder } export type MessagesMaxOrderByAggregateInput = { id?: SortOrder conversationId?: SortOrder content?: SortOrder messageType?: SortOrder senderId?: SortOrder senderType?: SortOrder senderName?: SortOrder status?: SortOrder readAt?: SortOrder deliveredAt?: SortOrder createdAt?: SortOrder updatedAt?: SortOrder } export type MessagesMinOrderByAggregateInput = { id?: SortOrder conversationId?: SortOrder content?: SortOrder messageType?: SortOrder senderId?: SortOrder senderType?: SortOrder senderName?: SortOrder status?: SortOrder readAt?: SortOrder deliveredAt?: SortOrder createdAt?: SortOrder updatedAt?: SortOrder } export type EnumMessageTypeWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.MessageType | EnumMessageTypeFieldRefInput<$PrismaModel> in?: $Enums.MessageType[] | ListEnumMessageTypeFieldRefInput<$PrismaModel> notIn?: $Enums.MessageType[] | ListEnumMessageTypeFieldRefInput<$PrismaModel> not?: NestedEnumMessageTypeWithAggregatesFilter<$PrismaModel> | $Enums.MessageType _count?: NestedIntFilter<$PrismaModel> _min?: NestedEnumMessageTypeFilter<$PrismaModel> _max?: NestedEnumMessageTypeFilter<$PrismaModel> } export type EnumSenderTypeWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.SenderType | EnumSenderTypeFieldRefInput<$PrismaModel> in?: $Enums.SenderType[] | ListEnumSenderTypeFieldRefInput<$PrismaModel> notIn?: $Enums.SenderType[] | ListEnumSenderTypeFieldRefInput<$PrismaModel> not?: NestedEnumSenderTypeWithAggregatesFilter<$PrismaModel> | $Enums.SenderType _count?: NestedIntFilter<$PrismaModel> _min?: NestedEnumSenderTypeFilter<$PrismaModel> _max?: NestedEnumSenderTypeFilter<$PrismaModel> } export type EnumMessageStatusWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.MessageStatus | EnumMessageStatusFieldRefInput<$PrismaModel> in?: $Enums.MessageStatus[] | ListEnumMessageStatusFieldRefInput<$PrismaModel> notIn?: $Enums.MessageStatus[] | ListEnumMessageStatusFieldRefInput<$PrismaModel> not?: NestedEnumMessageStatusWithAggregatesFilter<$PrismaModel> | $Enums.MessageStatus _count?: NestedIntFilter<$PrismaModel> _min?: NestedEnumMessageStatusFilter<$PrismaModel> _max?: NestedEnumMessageStatusFilter<$PrismaModel> } 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 MessageAttachmentsCountOrderByAggregateInput = { id?: SortOrder messageId?: SortOrder fileName?: SortOrder fileSize?: SortOrder mimeType?: SortOrder fileUrl?: SortOrder thumbnailUrl?: SortOrder metadata?: SortOrder createdAt?: SortOrder } export type MessageAttachmentsAvgOrderByAggregateInput = { fileSize?: SortOrder } export type MessageAttachmentsMaxOrderByAggregateInput = { id?: SortOrder messageId?: SortOrder fileName?: SortOrder fileSize?: SortOrder mimeType?: SortOrder fileUrl?: SortOrder thumbnailUrl?: SortOrder createdAt?: SortOrder } export type MessageAttachmentsMinOrderByAggregateInput = { id?: SortOrder messageId?: SortOrder fileName?: SortOrder fileSize?: SortOrder mimeType?: SortOrder fileUrl?: SortOrder thumbnailUrl?: SortOrder createdAt?: SortOrder } export type MessageAttachmentsSumOrderByAggregateInput = { fileSize?: SortOrder } 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 TypingIndicatorsConversationIdUserIdCompoundUniqueInput = { conversationId: string userId: string } export type TypingIndicatorsCountOrderByAggregateInput = { id?: SortOrder conversationId?: SortOrder userId?: SortOrder userType?: SortOrder startedAt?: SortOrder } export type TypingIndicatorsMaxOrderByAggregateInput = { id?: SortOrder conversationId?: SortOrder userId?: SortOrder userType?: SortOrder startedAt?: SortOrder } export type TypingIndicatorsMinOrderByAggregateInput = { id?: SortOrder conversationId?: SortOrder userId?: SortOrder userType?: SortOrder startedAt?: SortOrder } export type EnumParticipantRoleFilter<$PrismaModel = never> = { equals?: $Enums.ParticipantRole | EnumParticipantRoleFieldRefInput<$PrismaModel> in?: $Enums.ParticipantRole[] | ListEnumParticipantRoleFieldRefInput<$PrismaModel> notIn?: $Enums.ParticipantRole[] | ListEnumParticipantRoleFieldRefInput<$PrismaModel> not?: NestedEnumParticipantRoleFilter<$PrismaModel> | $Enums.ParticipantRole } export type ConversationParticipantsConversationIdUserIdCompoundUniqueInput = { conversationId: string userId: string } export type ConversationParticipantsCountOrderByAggregateInput = { id?: SortOrder conversationId?: SortOrder userId?: SortOrder userType?: SortOrder role?: SortOrder joinedAt?: SortOrder leftAt?: SortOrder } export type ConversationParticipantsMaxOrderByAggregateInput = { id?: SortOrder conversationId?: SortOrder userId?: SortOrder userType?: SortOrder role?: SortOrder joinedAt?: SortOrder leftAt?: SortOrder } export type ConversationParticipantsMinOrderByAggregateInput = { id?: SortOrder conversationId?: SortOrder userId?: SortOrder userType?: SortOrder role?: SortOrder joinedAt?: SortOrder leftAt?: SortOrder } export type EnumParticipantRoleWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.ParticipantRole | EnumParticipantRoleFieldRefInput<$PrismaModel> in?: $Enums.ParticipantRole[] | ListEnumParticipantRoleFieldRefInput<$PrismaModel> notIn?: $Enums.ParticipantRole[] | ListEnumParticipantRoleFieldRefInput<$PrismaModel> not?: NestedEnumParticipantRoleWithAggregatesFilter<$PrismaModel> | $Enums.ParticipantRole _count?: NestedIntFilter<$PrismaModel> _min?: NestedEnumParticipantRoleFilter<$PrismaModel> _max?: NestedEnumParticipantRoleFilter<$PrismaModel> } export type MessagesCreateNestedManyWithoutConversationInput = { create?: XOR | MessagesCreateWithoutConversationInput[] | MessagesUncheckedCreateWithoutConversationInput[] connectOrCreate?: MessagesCreateOrConnectWithoutConversationInput | MessagesCreateOrConnectWithoutConversationInput[] createMany?: MessagesCreateManyConversationInputEnvelope connect?: MessagesWhereUniqueInput | MessagesWhereUniqueInput[] } export type MessagesUncheckedCreateNestedManyWithoutConversationInput = { create?: XOR | MessagesCreateWithoutConversationInput[] | MessagesUncheckedCreateWithoutConversationInput[] connectOrCreate?: MessagesCreateOrConnectWithoutConversationInput | MessagesCreateOrConnectWithoutConversationInput[] createMany?: MessagesCreateManyConversationInputEnvelope connect?: MessagesWhereUniqueInput | MessagesWhereUniqueInput[] } export type StringFieldUpdateOperationsInput = { set?: string } export type NullableStringFieldUpdateOperationsInput = { set?: string | null } export type EnumConversationStatusFieldUpdateOperationsInput = { set?: $Enums.ConversationStatus } export type EnumPriorityFieldUpdateOperationsInput = { set?: $Enums.Priority } export type DateTimeFieldUpdateOperationsInput = { set?: Date | string } export type NullableDateTimeFieldUpdateOperationsInput = { set?: Date | string | null } export type MessagesUpdateManyWithoutConversationNestedInput = { create?: XOR | MessagesCreateWithoutConversationInput[] | MessagesUncheckedCreateWithoutConversationInput[] connectOrCreate?: MessagesCreateOrConnectWithoutConversationInput | MessagesCreateOrConnectWithoutConversationInput[] upsert?: MessagesUpsertWithWhereUniqueWithoutConversationInput | MessagesUpsertWithWhereUniqueWithoutConversationInput[] createMany?: MessagesCreateManyConversationInputEnvelope set?: MessagesWhereUniqueInput | MessagesWhereUniqueInput[] disconnect?: MessagesWhereUniqueInput | MessagesWhereUniqueInput[] delete?: MessagesWhereUniqueInput | MessagesWhereUniqueInput[] connect?: MessagesWhereUniqueInput | MessagesWhereUniqueInput[] update?: MessagesUpdateWithWhereUniqueWithoutConversationInput | MessagesUpdateWithWhereUniqueWithoutConversationInput[] updateMany?: MessagesUpdateManyWithWhereWithoutConversationInput | MessagesUpdateManyWithWhereWithoutConversationInput[] deleteMany?: MessagesScalarWhereInput | MessagesScalarWhereInput[] } export type MessagesUncheckedUpdateManyWithoutConversationNestedInput = { create?: XOR | MessagesCreateWithoutConversationInput[] | MessagesUncheckedCreateWithoutConversationInput[] connectOrCreate?: MessagesCreateOrConnectWithoutConversationInput | MessagesCreateOrConnectWithoutConversationInput[] upsert?: MessagesUpsertWithWhereUniqueWithoutConversationInput | MessagesUpsertWithWhereUniqueWithoutConversationInput[] createMany?: MessagesCreateManyConversationInputEnvelope set?: MessagesWhereUniqueInput | MessagesWhereUniqueInput[] disconnect?: MessagesWhereUniqueInput | MessagesWhereUniqueInput[] delete?: MessagesWhereUniqueInput | MessagesWhereUniqueInput[] connect?: MessagesWhereUniqueInput | MessagesWhereUniqueInput[] update?: MessagesUpdateWithWhereUniqueWithoutConversationInput | MessagesUpdateWithWhereUniqueWithoutConversationInput[] updateMany?: MessagesUpdateManyWithWhereWithoutConversationInput | MessagesUpdateManyWithWhereWithoutConversationInput[] deleteMany?: MessagesScalarWhereInput | MessagesScalarWhereInput[] } export type ConversationsCreateNestedOneWithoutMessagesInput = { create?: XOR connectOrCreate?: ConversationsCreateOrConnectWithoutMessagesInput connect?: ConversationsWhereUniqueInput } export type EnumMessageTypeFieldUpdateOperationsInput = { set?: $Enums.MessageType } export type EnumSenderTypeFieldUpdateOperationsInput = { set?: $Enums.SenderType } export type EnumMessageStatusFieldUpdateOperationsInput = { set?: $Enums.MessageStatus } export type ConversationsUpdateOneRequiredWithoutMessagesNestedInput = { create?: XOR connectOrCreate?: ConversationsCreateOrConnectWithoutMessagesInput upsert?: ConversationsUpsertWithoutMessagesInput connect?: ConversationsWhereUniqueInput update?: XOR, ConversationsUncheckedUpdateWithoutMessagesInput> } export type IntFieldUpdateOperationsInput = { set?: number increment?: number decrement?: number multiply?: number divide?: number } export type EnumParticipantRoleFieldUpdateOperationsInput = { set?: $Enums.ParticipantRole } 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 NestedEnumConversationStatusFilter<$PrismaModel = never> = { equals?: $Enums.ConversationStatus | EnumConversationStatusFieldRefInput<$PrismaModel> in?: $Enums.ConversationStatus[] | ListEnumConversationStatusFieldRefInput<$PrismaModel> notIn?: $Enums.ConversationStatus[] | ListEnumConversationStatusFieldRefInput<$PrismaModel> not?: NestedEnumConversationStatusFilter<$PrismaModel> | $Enums.ConversationStatus } export type NestedEnumPriorityFilter<$PrismaModel = never> = { equals?: $Enums.Priority | EnumPriorityFieldRefInput<$PrismaModel> in?: $Enums.Priority[] | ListEnumPriorityFieldRefInput<$PrismaModel> notIn?: $Enums.Priority[] | ListEnumPriorityFieldRefInput<$PrismaModel> not?: NestedEnumPriorityFilter<$PrismaModel> | $Enums.Priority } 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 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 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 NestedEnumConversationStatusWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.ConversationStatus | EnumConversationStatusFieldRefInput<$PrismaModel> in?: $Enums.ConversationStatus[] | ListEnumConversationStatusFieldRefInput<$PrismaModel> notIn?: $Enums.ConversationStatus[] | ListEnumConversationStatusFieldRefInput<$PrismaModel> not?: NestedEnumConversationStatusWithAggregatesFilter<$PrismaModel> | $Enums.ConversationStatus _count?: NestedIntFilter<$PrismaModel> _min?: NestedEnumConversationStatusFilter<$PrismaModel> _max?: NestedEnumConversationStatusFilter<$PrismaModel> } export type NestedEnumPriorityWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.Priority | EnumPriorityFieldRefInput<$PrismaModel> in?: $Enums.Priority[] | ListEnumPriorityFieldRefInput<$PrismaModel> notIn?: $Enums.Priority[] | ListEnumPriorityFieldRefInput<$PrismaModel> not?: NestedEnumPriorityWithAggregatesFilter<$PrismaModel> | $Enums.Priority _count?: NestedIntFilter<$PrismaModel> _min?: NestedEnumPriorityFilter<$PrismaModel> _max?: NestedEnumPriorityFilter<$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 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 NestedJsonNullableFilter<$PrismaModel = never> = | PatchUndefined< Either>, Exclude>, 'path'>>, Required> > | OptionalFlat>, 'path'>> export type NestedJsonNullableFilterBase<$PrismaModel = never> = { equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter path?: string[] mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel> string_contains?: string | StringFieldRefInput<$PrismaModel> string_starts_with?: string | StringFieldRefInput<$PrismaModel> string_ends_with?: string | StringFieldRefInput<$PrismaModel> array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel> lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel> gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel> gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel> not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter } export type NestedEnumMessageTypeFilter<$PrismaModel = never> = { equals?: $Enums.MessageType | EnumMessageTypeFieldRefInput<$PrismaModel> in?: $Enums.MessageType[] | ListEnumMessageTypeFieldRefInput<$PrismaModel> notIn?: $Enums.MessageType[] | ListEnumMessageTypeFieldRefInput<$PrismaModel> not?: NestedEnumMessageTypeFilter<$PrismaModel> | $Enums.MessageType } export type NestedEnumSenderTypeFilter<$PrismaModel = never> = { equals?: $Enums.SenderType | EnumSenderTypeFieldRefInput<$PrismaModel> in?: $Enums.SenderType[] | ListEnumSenderTypeFieldRefInput<$PrismaModel> notIn?: $Enums.SenderType[] | ListEnumSenderTypeFieldRefInput<$PrismaModel> not?: NestedEnumSenderTypeFilter<$PrismaModel> | $Enums.SenderType } export type NestedEnumMessageStatusFilter<$PrismaModel = never> = { equals?: $Enums.MessageStatus | EnumMessageStatusFieldRefInput<$PrismaModel> in?: $Enums.MessageStatus[] | ListEnumMessageStatusFieldRefInput<$PrismaModel> notIn?: $Enums.MessageStatus[] | ListEnumMessageStatusFieldRefInput<$PrismaModel> not?: NestedEnumMessageStatusFilter<$PrismaModel> | $Enums.MessageStatus } export type NestedEnumMessageTypeWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.MessageType | EnumMessageTypeFieldRefInput<$PrismaModel> in?: $Enums.MessageType[] | ListEnumMessageTypeFieldRefInput<$PrismaModel> notIn?: $Enums.MessageType[] | ListEnumMessageTypeFieldRefInput<$PrismaModel> not?: NestedEnumMessageTypeWithAggregatesFilter<$PrismaModel> | $Enums.MessageType _count?: NestedIntFilter<$PrismaModel> _min?: NestedEnumMessageTypeFilter<$PrismaModel> _max?: NestedEnumMessageTypeFilter<$PrismaModel> } export type NestedEnumSenderTypeWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.SenderType | EnumSenderTypeFieldRefInput<$PrismaModel> in?: $Enums.SenderType[] | ListEnumSenderTypeFieldRefInput<$PrismaModel> notIn?: $Enums.SenderType[] | ListEnumSenderTypeFieldRefInput<$PrismaModel> not?: NestedEnumSenderTypeWithAggregatesFilter<$PrismaModel> | $Enums.SenderType _count?: NestedIntFilter<$PrismaModel> _min?: NestedEnumSenderTypeFilter<$PrismaModel> _max?: NestedEnumSenderTypeFilter<$PrismaModel> } export type NestedEnumMessageStatusWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.MessageStatus | EnumMessageStatusFieldRefInput<$PrismaModel> in?: $Enums.MessageStatus[] | ListEnumMessageStatusFieldRefInput<$PrismaModel> notIn?: $Enums.MessageStatus[] | ListEnumMessageStatusFieldRefInput<$PrismaModel> not?: NestedEnumMessageStatusWithAggregatesFilter<$PrismaModel> | $Enums.MessageStatus _count?: NestedIntFilter<$PrismaModel> _min?: NestedEnumMessageStatusFilter<$PrismaModel> _max?: NestedEnumMessageStatusFilter<$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 NestedEnumParticipantRoleFilter<$PrismaModel = never> = { equals?: $Enums.ParticipantRole | EnumParticipantRoleFieldRefInput<$PrismaModel> in?: $Enums.ParticipantRole[] | ListEnumParticipantRoleFieldRefInput<$PrismaModel> notIn?: $Enums.ParticipantRole[] | ListEnumParticipantRoleFieldRefInput<$PrismaModel> not?: NestedEnumParticipantRoleFilter<$PrismaModel> | $Enums.ParticipantRole } export type NestedEnumParticipantRoleWithAggregatesFilter<$PrismaModel = never> = { equals?: $Enums.ParticipantRole | EnumParticipantRoleFieldRefInput<$PrismaModel> in?: $Enums.ParticipantRole[] | ListEnumParticipantRoleFieldRefInput<$PrismaModel> notIn?: $Enums.ParticipantRole[] | ListEnumParticipantRoleFieldRefInput<$PrismaModel> not?: NestedEnumParticipantRoleWithAggregatesFilter<$PrismaModel> | $Enums.ParticipantRole _count?: NestedIntFilter<$PrismaModel> _min?: NestedEnumParticipantRoleFilter<$PrismaModel> _max?: NestedEnumParticipantRoleFilter<$PrismaModel> } export type MessagesCreateWithoutConversationInput = { id?: string content: string messageType?: $Enums.MessageType senderId: string senderType: $Enums.SenderType senderName?: string | null status?: $Enums.MessageStatus readAt?: Date | string | null deliveredAt?: Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue createdAt?: Date | string updatedAt?: Date | string } export type MessagesUncheckedCreateWithoutConversationInput = { id?: string content: string messageType?: $Enums.MessageType senderId: string senderType: $Enums.SenderType senderName?: string | null status?: $Enums.MessageStatus readAt?: Date | string | null deliveredAt?: Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue createdAt?: Date | string updatedAt?: Date | string } export type MessagesCreateOrConnectWithoutConversationInput = { where: MessagesWhereUniqueInput create: XOR } export type MessagesCreateManyConversationInputEnvelope = { data: MessagesCreateManyConversationInput | MessagesCreateManyConversationInput[] skipDuplicates?: boolean } export type MessagesUpsertWithWhereUniqueWithoutConversationInput = { where: MessagesWhereUniqueInput update: XOR create: XOR } export type MessagesUpdateWithWhereUniqueWithoutConversationInput = { where: MessagesWhereUniqueInput data: XOR } export type MessagesUpdateManyWithWhereWithoutConversationInput = { where: MessagesScalarWhereInput data: XOR } export type MessagesScalarWhereInput = { AND?: MessagesScalarWhereInput | MessagesScalarWhereInput[] OR?: MessagesScalarWhereInput[] NOT?: MessagesScalarWhereInput | MessagesScalarWhereInput[] id?: StringFilter<"Messages"> | string conversationId?: StringFilter<"Messages"> | string content?: StringFilter<"Messages"> | string messageType?: EnumMessageTypeFilter<"Messages"> | $Enums.MessageType senderId?: StringFilter<"Messages"> | string senderType?: EnumSenderTypeFilter<"Messages"> | $Enums.SenderType senderName?: StringNullableFilter<"Messages"> | string | null status?: EnumMessageStatusFilter<"Messages"> | $Enums.MessageStatus readAt?: DateTimeNullableFilter<"Messages"> | Date | string | null deliveredAt?: DateTimeNullableFilter<"Messages"> | Date | string | null metadata?: JsonNullableFilter<"Messages"> createdAt?: DateTimeFilter<"Messages"> | Date | string updatedAt?: DateTimeFilter<"Messages"> | Date | string } export type ConversationsCreateWithoutMessagesInput = { id?: string subject?: string | null status?: $Enums.ConversationStatus priority?: $Enums.Priority category?: string | null userId: string adminId?: string | null createdAt?: Date | string updatedAt?: Date | string lastMessageAt?: Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue } export type ConversationsUncheckedCreateWithoutMessagesInput = { id?: string subject?: string | null status?: $Enums.ConversationStatus priority?: $Enums.Priority category?: string | null userId: string adminId?: string | null createdAt?: Date | string updatedAt?: Date | string lastMessageAt?: Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue } export type ConversationsCreateOrConnectWithoutMessagesInput = { where: ConversationsWhereUniqueInput create: XOR } export type ConversationsUpsertWithoutMessagesInput = { update: XOR create: XOR where?: ConversationsWhereInput } export type ConversationsUpdateToOneWithWhereWithoutMessagesInput = { where?: ConversationsWhereInput data: XOR } export type ConversationsUpdateWithoutMessagesInput = { id?: StringFieldUpdateOperationsInput | string subject?: NullableStringFieldUpdateOperationsInput | string | null status?: EnumConversationStatusFieldUpdateOperationsInput | $Enums.ConversationStatus priority?: EnumPriorityFieldUpdateOperationsInput | $Enums.Priority category?: NullableStringFieldUpdateOperationsInput | string | null userId?: StringFieldUpdateOperationsInput | string adminId?: NullableStringFieldUpdateOperationsInput | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string lastMessageAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue } export type ConversationsUncheckedUpdateWithoutMessagesInput = { id?: StringFieldUpdateOperationsInput | string subject?: NullableStringFieldUpdateOperationsInput | string | null status?: EnumConversationStatusFieldUpdateOperationsInput | $Enums.ConversationStatus priority?: EnumPriorityFieldUpdateOperationsInput | $Enums.Priority category?: NullableStringFieldUpdateOperationsInput | string | null userId?: StringFieldUpdateOperationsInput | string adminId?: NullableStringFieldUpdateOperationsInput | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string lastMessageAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue } export type MessagesCreateManyConversationInput = { id?: string content: string messageType?: $Enums.MessageType senderId: string senderType: $Enums.SenderType senderName?: string | null status?: $Enums.MessageStatus readAt?: Date | string | null deliveredAt?: Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue createdAt?: Date | string updatedAt?: Date | string } export type MessagesUpdateWithoutConversationInput = { id?: StringFieldUpdateOperationsInput | string content?: StringFieldUpdateOperationsInput | string messageType?: EnumMessageTypeFieldUpdateOperationsInput | $Enums.MessageType senderId?: StringFieldUpdateOperationsInput | string senderType?: EnumSenderTypeFieldUpdateOperationsInput | $Enums.SenderType senderName?: NullableStringFieldUpdateOperationsInput | string | null status?: EnumMessageStatusFieldUpdateOperationsInput | $Enums.MessageStatus readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null deliveredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type MessagesUncheckedUpdateWithoutConversationInput = { id?: StringFieldUpdateOperationsInput | string content?: StringFieldUpdateOperationsInput | string messageType?: EnumMessageTypeFieldUpdateOperationsInput | $Enums.MessageType senderId?: StringFieldUpdateOperationsInput | string senderType?: EnumSenderTypeFieldUpdateOperationsInput | $Enums.SenderType senderName?: NullableStringFieldUpdateOperationsInput | string | null status?: EnumMessageStatusFieldUpdateOperationsInput | $Enums.MessageStatus readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null deliveredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string } export type MessagesUncheckedUpdateManyWithoutConversationInput = { id?: StringFieldUpdateOperationsInput | string content?: StringFieldUpdateOperationsInput | string messageType?: EnumMessageTypeFieldUpdateOperationsInput | $Enums.MessageType senderId?: StringFieldUpdateOperationsInput | string senderType?: EnumSenderTypeFieldUpdateOperationsInput | $Enums.SenderType senderName?: NullableStringFieldUpdateOperationsInput | string | null status?: EnumMessageStatusFieldUpdateOperationsInput | $Enums.MessageStatus readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null deliveredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null metadata?: NullableJsonNullValueInput | InputJsonValue createdAt?: DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string } /** * Batch Payload for updateMany & deleteMany & createMany */ export type BatchPayload = { count: number } /** * DMMF */ export const dmmf: runtime.BaseDMMF }