2025-11-26 08:02:48 +01:00

271 lines
19 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* !!! This is code generated by Prisma. Do not edit directly. !!! */
/* eslint-disable */
// biome-ignore-all lint: generated file
// @ts-nocheck
/*
* WARNING: This is an internal file that is subject to change!
*
* 🛑 Under no circumstances should you import this file directly! 🛑
*
* Please import the `PrismaClient` class from the `client.ts` file instead.
*/
import * as runtime from "@prisma/client/runtime/client"
import type * as Prisma from "./prismaNamespace.ts"
const config: runtime.GetPrismaClientConfig = {
"previewFeatures": [],
"clientVersion": "7.0.0",
"engineVersion": "0c19ccc313cf9911a90d99d2ac2eb0280c76c513",
"activeProvider": "postgresql",
"inlineSchema": "generator client {\n provider = \"prisma-client\"\n output = \"../generated/prisma\"\n engineType = \"client\"\n generatedFileExtension = \"ts\"\n importFileExtension = \"ts\"\n moduleFormat = \"esm\"\n runtime = \"nodejs\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n}\n\nmodel User {\n nwkennung String @id\n email String? @unique\n arbeitsname String?\n firstName String?\n lastName String?\n passwordHash String?\n groupId String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n devicesCreated Device[] @relation(\"DeviceCreatedBy\")\n devicesUpdated Device[] @relation(\"DeviceUpdatedBy\")\n historyEntries DeviceHistory[] @relation(\"DeviceHistoryChangedBy\")\n\n // UserGroup hat ein Feld \"id\" also darauf referenzieren\n group UserGroup? @relation(fields: [groupId], references: [id])\n\n roles UserRole[]\n\n @@index([groupId])\n}\n\nmodel Role {\n id String @id @default(uuid())\n name String @unique\n users UserRole[]\n}\n\nmodel UserRole {\n userId String\n roleId String\n assignedAt DateTime @default(now())\n\n role Role @relation(fields: [roleId], references: [id])\n user User @relation(fields: [userId], references: [nwkennung])\n\n @@id([userId, roleId])\n}\n\nmodel UserGroup {\n id String @id @default(uuid())\n name String @unique\n users User[]\n}\n\nmodel DeviceGroup {\n id String @id @default(uuid())\n name String @unique\n devices Device[]\n}\n\nmodel Location {\n id String @id @default(uuid())\n name String @unique\n devices Device[]\n}\n\nmodel Device {\n inventoryNumber String @id\n name String\n manufacturer String\n model String\n serialNumber String?\n productNumber String?\n comment String?\n ipv4Address String? @unique\n ipv6Address String? @unique\n macAddress String? @unique\n username String? @unique\n passwordHash String? @unique\n groupId String?\n locationId String?\n loanedTo String?\n loanedFrom DateTime?\n loanedUntil DateTime?\n loanComment String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n createdById String?\n updatedById String?\n\n // 🔹 Self-Relation Hauptgerät/Zubehör\n parentDeviceId String?\n parentDevice Device? @relation(name: \"DeviceAccessories\", fields: [parentDeviceId], references: [inventoryNumber], onDelete: SetNull)\n accessories Device[] @relation(\"DeviceAccessories\")\n\n createdBy User? @relation(\"DeviceCreatedBy\", fields: [createdById], references: [nwkennung])\n updatedBy User? @relation(\"DeviceUpdatedBy\", fields: [updatedById], references: [nwkennung])\n\n group DeviceGroup? @relation(fields: [groupId], references: [id])\n location Location? @relation(fields: [locationId], references: [id])\n\n history DeviceHistory[]\n tags Tag[] @relation(\"DeviceToTag\")\n\n @@index([inventoryNumber])\n @@index([groupId])\n @@index([locationId])\n @@index([parentDeviceId])\n}\n\nmodel Tag {\n id String @id @default(uuid())\n name String @unique\n devices Device[] @relation(\"DeviceToTag\")\n}\n\nmodel DeviceHistory {\n id String @id @default(uuid())\n deviceId String?\n changeType DeviceChangeType\n snapshot Json\n changedAt DateTime @default(now())\n changedById String?\n\n changedBy User? @relation(\"DeviceHistoryChangedBy\", fields: [changedById], references: [nwkennung])\n device Device? @relation(fields: [deviceId], references: [inventoryNumber], onDelete: SetNull)\n}\n\nenum DeviceChangeType {\n CREATED\n UPDATED\n DELETED\n}\n",
"runtimeDataModel": {
"models": {},
"enums": {},
"types": {}
}
}
config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"nwkennung\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"arbeitsname\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"firstName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"lastName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"passwordHash\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"groupId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"devicesCreated\",\"kind\":\"object\",\"type\":\"Device\",\"relationName\":\"DeviceCreatedBy\"},{\"name\":\"devicesUpdated\",\"kind\":\"object\",\"type\":\"Device\",\"relationName\":\"DeviceUpdatedBy\"},{\"name\":\"historyEntries\",\"kind\":\"object\",\"type\":\"DeviceHistory\",\"relationName\":\"DeviceHistoryChangedBy\"},{\"name\":\"group\",\"kind\":\"object\",\"type\":\"UserGroup\",\"relationName\":\"UserToUserGroup\"},{\"name\":\"roles\",\"kind\":\"object\",\"type\":\"UserRole\",\"relationName\":\"UserToUserRole\"}],\"dbName\":null},\"Role\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"users\",\"kind\":\"object\",\"type\":\"UserRole\",\"relationName\":\"RoleToUserRole\"}],\"dbName\":null},\"UserRole\":{\"fields\":[{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"roleId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assignedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"role\",\"kind\":\"object\",\"type\":\"Role\",\"relationName\":\"RoleToUserRole\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserToUserRole\"}],\"dbName\":null},\"UserGroup\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"users\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserToUserGroup\"}],\"dbName\":null},\"DeviceGroup\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"devices\",\"kind\":\"object\",\"type\":\"Device\",\"relationName\":\"DeviceToDeviceGroup\"}],\"dbName\":null},\"Location\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"devices\",\"kind\":\"object\",\"type\":\"Device\",\"relationName\":\"DeviceToLocation\"}],\"dbName\":null},\"Device\":{\"fields\":[{\"name\":\"inventoryNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"manufacturer\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"model\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"serialNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"productNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ipv4Address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ipv6Address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"macAddress\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"username\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"passwordHash\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"groupId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"locationId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"loanedTo\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"loanedFrom\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"loanedUntil\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"loanComment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdById\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updatedById\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"parentDeviceId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"parentDevice\",\"kind\":\"object\",\"type\":\"Device\",\"relationName\":\"DeviceAccessories\"},{\"name\":\"accessories\",\"kind\":\"object\",\"type\":\"Device\",\"relationName\":\"DeviceAccessories\"},{\"name\":\"createdBy\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"DeviceCreatedBy\"},{\"name\":\"updatedBy\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"DeviceUpdatedBy\"},{\"name\":\"group\",\"kind\":\"object\",\"type\":\"DeviceGroup\",\"relationName\":\"DeviceToDeviceGroup\"},{\"name\":\"location\",\"kind\":\"object\",\"type\":\"Location\",\"relationName\":\"DeviceToLocation\"},{\"name\":\"history\",\"kind\":\"object\",\"type\":\"DeviceHistory\",\"relationName\":\"DeviceToDeviceHistory\"},{\"name\":\"tags\",\"kind\":\"object\",\"type\":\"Tag\",\"relationName\":\"DeviceToTag\"}],\"dbName\":null},\"Tag\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"devices\",\"kind\":\"object\",\"type\":\"Device\",\"relationName\":\"DeviceToTag\"}],\"dbName\":null},\"DeviceHistory\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"deviceId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"changeType\",\"kind\":\"enum\",\"type\":\"DeviceChangeType\"},{\"name\":\"snapshot\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"changedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"changedById\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"changedBy\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"DeviceHistoryChangedBy\"},{\"name\":\"device\",\"kind\":\"object\",\"type\":\"Device\",\"relationName\":\"DeviceToDeviceHistory\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}")
async function decodeBase64AsWasm(wasmBase64: string): Promise<WebAssembly.Module> {
const { Buffer } = await import('node:buffer')
const wasmArray = Buffer.from(wasmBase64, 'base64')
return new WebAssembly.Module(wasmArray)
}
config.compilerWasm = {
getRuntime: async () => await import("@prisma/client/runtime/query_compiler_bg.postgresql.mjs"),
getQueryCompilerWasmModule: async () => {
const { wasm } = await import("@prisma/client/runtime/query_compiler_bg.postgresql.wasm-base64.mjs")
return await decodeBase64AsWasm(wasm)
}
}
export type LogOptions<ClientOptions extends Prisma.PrismaClientOptions> =
'log' extends keyof ClientOptions ? ClientOptions['log'] extends Array<Prisma.LogLevel | Prisma.LogDefinition> ? Prisma.GetEvents<ClientOptions['log']> : never : never
export interface PrismaClientConstructor {
/**
* ## Prisma Client
*
* Type-safe database client for TypeScript
* @example
* ```
* const prisma = new PrismaClient()
* // Fetch zero or more Users
* const users = await prisma.user.findMany()
* ```
*
* Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client).
*/
new <
Options extends Prisma.PrismaClientOptions = Prisma.PrismaClientOptions,
LogOpts extends LogOptions<Options> = LogOptions<Options>,
OmitOpts extends Prisma.PrismaClientOptions['omit'] = Options extends { omit: infer U } ? U : Prisma.PrismaClientOptions['omit'],
ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs
>(options: Prisma.Subset<Options, Prisma.PrismaClientOptions> ): PrismaClient<LogOpts, OmitOpts, ExtArgs>
}
/**
* ## Prisma Client
*
* Type-safe database client for TypeScript
* @example
* ```
* const prisma = new PrismaClient()
* // Fetch zero or more Users
* const users = await prisma.user.findMany()
* ```
*
* Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client).
*/
export interface PrismaClient<
in LogOpts extends Prisma.LogLevel = never,
in out OmitOpts extends Prisma.PrismaClientOptions['omit'] = undefined,
in out ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs
> {
[K: symbol]: { types: Prisma.TypeMap<ExtArgs>['other'] }
$on<V extends LogOpts>(eventType: V, callback: (event: V extends 'query' ? Prisma.QueryEvent : Prisma.LogEvent) => void): PrismaClient;
/**
* Connect with the database
*/
$connect(): runtime.Types.Utils.JsPromise<void>;
/**
* Disconnect from the database
*/
$disconnect(): runtime.Types.Utils.JsPromise<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<T = unknown>(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise<number>;
/**
* 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<T = unknown>(query: string, ...values: any[]): Prisma.PrismaPromise<number>;
/**
* 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<T = unknown>(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise<T>;
/**
* 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<T = unknown>(query: string, ...values: any[]): Prisma.PrismaPromise<T>;
/**
* 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<P extends Prisma.PrismaPromise<any>[]>(arg: [...P], options?: { isolationLevel?: Prisma.TransactionIsolationLevel }): runtime.Types.Utils.JsPromise<runtime.Types.Utils.UnwrapTuple<P>>
$transaction<R>(fn: (prisma: Omit<PrismaClient, runtime.ITXClientDenyList>) => runtime.Types.Utils.JsPromise<R>, options?: { maxWait?: number, timeout?: number, isolationLevel?: Prisma.TransactionIsolationLevel }): runtime.Types.Utils.JsPromise<R>
$extends: runtime.Types.Extensions.ExtendsHook<"extends", Prisma.TypeMapCb<OmitOpts>, ExtArgs, runtime.Types.Utils.Call<Prisma.TypeMapCb<OmitOpts>, {
extArgs: ExtArgs
}>>
/**
* `prisma.user`: Exposes CRUD operations for the **User** model.
* Example usage:
* ```ts
* // Fetch zero or more Users
* const users = await prisma.user.findMany()
* ```
*/
get user(): Prisma.UserDelegate<ExtArgs, { omit: OmitOpts }>;
/**
* `prisma.role`: Exposes CRUD operations for the **Role** model.
* Example usage:
* ```ts
* // Fetch zero or more Roles
* const roles = await prisma.role.findMany()
* ```
*/
get role(): Prisma.RoleDelegate<ExtArgs, { omit: OmitOpts }>;
/**
* `prisma.userRole`: Exposes CRUD operations for the **UserRole** model.
* Example usage:
* ```ts
* // Fetch zero or more UserRoles
* const userRoles = await prisma.userRole.findMany()
* ```
*/
get userRole(): Prisma.UserRoleDelegate<ExtArgs, { omit: OmitOpts }>;
/**
* `prisma.userGroup`: Exposes CRUD operations for the **UserGroup** model.
* Example usage:
* ```ts
* // Fetch zero or more UserGroups
* const userGroups = await prisma.userGroup.findMany()
* ```
*/
get userGroup(): Prisma.UserGroupDelegate<ExtArgs, { omit: OmitOpts }>;
/**
* `prisma.deviceGroup`: Exposes CRUD operations for the **DeviceGroup** model.
* Example usage:
* ```ts
* // Fetch zero or more DeviceGroups
* const deviceGroups = await prisma.deviceGroup.findMany()
* ```
*/
get deviceGroup(): Prisma.DeviceGroupDelegate<ExtArgs, { omit: OmitOpts }>;
/**
* `prisma.location`: Exposes CRUD operations for the **Location** model.
* Example usage:
* ```ts
* // Fetch zero or more Locations
* const locations = await prisma.location.findMany()
* ```
*/
get location(): Prisma.LocationDelegate<ExtArgs, { omit: OmitOpts }>;
/**
* `prisma.device`: Exposes CRUD operations for the **Device** model.
* Example usage:
* ```ts
* // Fetch zero or more Devices
* const devices = await prisma.device.findMany()
* ```
*/
get device(): Prisma.DeviceDelegate<ExtArgs, { omit: OmitOpts }>;
/**
* `prisma.tag`: Exposes CRUD operations for the **Tag** model.
* Example usage:
* ```ts
* // Fetch zero or more Tags
* const tags = await prisma.tag.findMany()
* ```
*/
get tag(): Prisma.TagDelegate<ExtArgs, { omit: OmitOpts }>;
/**
* `prisma.deviceHistory`: Exposes CRUD operations for the **DeviceHistory** model.
* Example usage:
* ```ts
* // Fetch zero or more DeviceHistories
* const deviceHistories = await prisma.deviceHistory.findMany()
* ```
*/
get deviceHistory(): Prisma.DeviceHistoryDelegate<ExtArgs, { omit: OmitOpts }>;
}
export function getPrismaClientClass(): PrismaClientConstructor {
return runtime.getPrismaClient(config) as unknown as PrismaClientConstructor
}