From 4c7f600a6b35a51a87ed3d51efb07b26f53cce21 Mon Sep 17 00:00:00 2001 From: cheney Date: Thu, 9 Apr 2026 22:07:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=95=B0=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 1 + generated/prisma/browser.ts | 44 + generated/prisma/client.ts | 68 + generated/prisma/commonInputTypes.ts | 273 +++ generated/prisma/enums.ts | 15 + generated/prisma/internal/class.ts | 244 +++ generated/prisma/internal/prismaNamespace.ts | 1123 +++++++++++ .../prisma/internal/prismaNamespaceBrowser.ts | 209 ++ generated/prisma/models.ts | 16 + generated/prisma/models/Article.ts | 1136 +++++++++++ generated/prisma/models/Indicator.ts | 1104 +++++++++++ generated/prisma/models/SowInventory.ts | 1090 ++++++++++ generated/prisma/models/Strategy.ts | 1104 +++++++++++ generated/prisma/models/User.ts | 1126 +++++++++++ lib/prisma.js | 14 + package-lock.json | 1750 +++++++++++++++++ package.json | 9 +- prisma.config.ts | 14 + .../20260409135419_init/migration.sql | 62 + .../migration.sql | 20 + prisma/migrations/migration_lock.toml | 3 + prisma/schema.prisma | 58 + scripts/scraper/README.md | 62 + scripts/scraper/sow-inventory-scraper.js | 95 + scripts/scraper/template-scraper.js | 100 + 25 files changed, 9739 insertions(+), 1 deletion(-) create mode 100644 .env create mode 100644 generated/prisma/browser.ts create mode 100644 generated/prisma/client.ts create mode 100644 generated/prisma/commonInputTypes.ts create mode 100644 generated/prisma/enums.ts create mode 100644 generated/prisma/internal/class.ts create mode 100644 generated/prisma/internal/prismaNamespace.ts create mode 100644 generated/prisma/internal/prismaNamespaceBrowser.ts create mode 100644 generated/prisma/models.ts create mode 100644 generated/prisma/models/Article.ts create mode 100644 generated/prisma/models/Indicator.ts create mode 100644 generated/prisma/models/SowInventory.ts create mode 100644 generated/prisma/models/Strategy.ts create mode 100644 generated/prisma/models/User.ts create mode 100644 lib/prisma.js create mode 100644 prisma.config.ts create mode 100644 prisma/migrations/20260409135419_init/migration.sql create mode 100644 prisma/migrations/20260409135954_rename_sow_inventory/migration.sql create mode 100644 prisma/migrations/migration_lock.toml create mode 100644 prisma/schema.prisma create mode 100644 scripts/scraper/README.md create mode 100644 scripts/scraper/sow-inventory-scraper.js create mode 100644 scripts/scraper/template-scraper.js diff --git a/.env b/.env new file mode 100644 index 0000000..3d8e86a --- /dev/null +++ b/.env @@ -0,0 +1 @@ +DATABASE_URL="mysql://root:fullstack@192.168.111.111:3306/iboard" diff --git a/generated/prisma/browser.ts b/generated/prisma/browser.ts new file mode 100644 index 0000000..e57d972 --- /dev/null +++ b/generated/prisma/browser.ts @@ -0,0 +1,44 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file should be your main import to use Prisma-related types and utilities in a browser. + * Use it to get access to models, enums, and input types. + * + * This file does not contain a `PrismaClient` class, nor several other helpers that are intended as server-side only. + * See `client.ts` for the standard, server-side entry point. + * + * 🟢 You can import this file directly. + */ + +import * as Prisma from './internal/prismaNamespaceBrowser.ts' +export { Prisma } +export * as $Enums from './enums.ts' +export * from './enums.ts'; +/** + * Model User + * + */ +export type User = Prisma.UserModel +/** + * Model Article + * + */ +export type Article = Prisma.ArticleModel +/** + * Model Strategy + * + */ +export type Strategy = Prisma.StrategyModel +/** + * Model Indicator + * + */ +export type Indicator = Prisma.IndicatorModel +/** + * Model SowInventory + * + */ +export type SowInventory = Prisma.SowInventoryModel diff --git a/generated/prisma/client.ts b/generated/prisma/client.ts new file mode 100644 index 0000000..e3d557e --- /dev/null +++ b/generated/prisma/client.ts @@ -0,0 +1,68 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file should be your main import to use Prisma. Through it you get access to all the models, enums, and input types. + * If you're looking for something you can import in the client-side of your application, please refer to the `browser.ts` file instead. + * + * 🟢 You can import this file directly. + */ + +import * as process from 'node:process' +import * as path from 'node:path' +import { fileURLToPath } from 'node:url' +globalThis['__dirname'] = path.dirname(fileURLToPath(import.meta.url)) + +import * as runtime from "@prisma/client/runtime/client" +import * as $Enums from "./enums.ts" +import * as $Class from "./internal/class.ts" +import * as Prisma from "./internal/prismaNamespace.ts" + +export * as $Enums from './enums.ts' +export * from "./enums.ts" +/** + * ## Prisma Client + * + * Type-safe database client for TypeScript + * @example + * ``` + * const prisma = new PrismaClient({ + * adapter: new PrismaPg({ connectionString: process.env.DATABASE_URL }) + * }) + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + * + * Read more in our [docs](https://pris.ly/d/client). + */ +export const PrismaClient = $Class.getPrismaClientClass() +export type PrismaClient = $Class.PrismaClient +export { Prisma } + +/** + * Model User + * + */ +export type User = Prisma.UserModel +/** + * Model Article + * + */ +export type Article = Prisma.ArticleModel +/** + * Model Strategy + * + */ +export type Strategy = Prisma.StrategyModel +/** + * Model Indicator + * + */ +export type Indicator = Prisma.IndicatorModel +/** + * Model SowInventory + * + */ +export type SowInventory = Prisma.SowInventoryModel diff --git a/generated/prisma/commonInputTypes.ts b/generated/prisma/commonInputTypes.ts new file mode 100644 index 0000000..3e8af79 --- /dev/null +++ b/generated/prisma/commonInputTypes.ts @@ -0,0 +1,273 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports various common sort, input & filter types that are not directly linked to a particular model. + * + * 🟢 You can import this file directly. + */ + +import type * as runtime from "@prisma/client/runtime/client" +import * as $Enums from "./enums.ts" +import type * as Prisma from "./internal/prismaNamespace.ts" + + +export type IntFilter<$PrismaModel = never> = { + equals?: number | Prisma.IntFieldRefInput<$PrismaModel> + in?: number[] + notIn?: number[] + lt?: number | Prisma.IntFieldRefInput<$PrismaModel> + lte?: number | Prisma.IntFieldRefInput<$PrismaModel> + gt?: number | Prisma.IntFieldRefInput<$PrismaModel> + gte?: number | Prisma.IntFieldRefInput<$PrismaModel> + not?: Prisma.NestedIntFilter<$PrismaModel> | number +} + +export type StringFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel> + in?: string[] + notIn?: string[] + lt?: string | Prisma.StringFieldRefInput<$PrismaModel> + lte?: string | Prisma.StringFieldRefInput<$PrismaModel> + gt?: string | Prisma.StringFieldRefInput<$PrismaModel> + gte?: string | Prisma.StringFieldRefInput<$PrismaModel> + contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + search?: string + not?: Prisma.NestedStringFilter<$PrismaModel> | string +} + +export type DateTimeFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + in?: Date[] | string[] + notIn?: Date[] | string[] + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + not?: Prisma.NestedDateTimeFilter<$PrismaModel> | Date | string +} + +export type IntWithAggregatesFilter<$PrismaModel = never> = { + equals?: number | Prisma.IntFieldRefInput<$PrismaModel> + in?: number[] + notIn?: number[] + lt?: number | Prisma.IntFieldRefInput<$PrismaModel> + lte?: number | Prisma.IntFieldRefInput<$PrismaModel> + gt?: number | Prisma.IntFieldRefInput<$PrismaModel> + gte?: number | Prisma.IntFieldRefInput<$PrismaModel> + not?: Prisma.NestedIntWithAggregatesFilter<$PrismaModel> | number + _count?: Prisma.NestedIntFilter<$PrismaModel> + _avg?: Prisma.NestedFloatFilter<$PrismaModel> + _sum?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedIntFilter<$PrismaModel> + _max?: Prisma.NestedIntFilter<$PrismaModel> +} + +export type StringWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel> + in?: string[] + notIn?: string[] + lt?: string | Prisma.StringFieldRefInput<$PrismaModel> + lte?: string | Prisma.StringFieldRefInput<$PrismaModel> + gt?: string | Prisma.StringFieldRefInput<$PrismaModel> + gte?: string | Prisma.StringFieldRefInput<$PrismaModel> + contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + search?: string + not?: Prisma.NestedStringWithAggregatesFilter<$PrismaModel> | string + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedStringFilter<$PrismaModel> + _max?: Prisma.NestedStringFilter<$PrismaModel> +} + +export type DateTimeWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + in?: Date[] | string[] + notIn?: Date[] | string[] + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + not?: Prisma.NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedDateTimeFilter<$PrismaModel> + _max?: Prisma.NestedDateTimeFilter<$PrismaModel> +} + +export type JsonFilter<$PrismaModel = never> = +| Prisma.PatchUndefined< + Prisma.Either>, Exclude>, 'path'>>, + Required> + > +| Prisma.OptionalFlat>, 'path'>> + +export type JsonFilterBase<$PrismaModel = never> = { + equals?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter + path?: string + mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel> + string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel> + string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel> + array_starts_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + array_ends_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + array_contains?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + lt?: runtime.InputJsonValue + lte?: runtime.InputJsonValue + gt?: runtime.InputJsonValue + gte?: runtime.InputJsonValue + not?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter +} + +export type JsonWithAggregatesFilter<$PrismaModel = never> = +| Prisma.PatchUndefined< + Prisma.Either>, Exclude>, 'path'>>, + Required> + > +| Prisma.OptionalFlat>, 'path'>> + +export type JsonWithAggregatesFilterBase<$PrismaModel = never> = { + equals?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter + path?: string + mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel> + string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel> + string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel> + array_starts_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + array_ends_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + array_contains?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + lt?: runtime.InputJsonValue + lte?: runtime.InputJsonValue + gt?: runtime.InputJsonValue + gte?: runtime.InputJsonValue + not?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedJsonFilter<$PrismaModel> + _max?: Prisma.NestedJsonFilter<$PrismaModel> +} + +export type NestedIntFilter<$PrismaModel = never> = { + equals?: number | Prisma.IntFieldRefInput<$PrismaModel> + in?: number[] + notIn?: number[] + lt?: number | Prisma.IntFieldRefInput<$PrismaModel> + lte?: number | Prisma.IntFieldRefInput<$PrismaModel> + gt?: number | Prisma.IntFieldRefInput<$PrismaModel> + gte?: number | Prisma.IntFieldRefInput<$PrismaModel> + not?: Prisma.NestedIntFilter<$PrismaModel> | number +} + +export type NestedStringFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel> + in?: string[] + notIn?: string[] + lt?: string | Prisma.StringFieldRefInput<$PrismaModel> + lte?: string | Prisma.StringFieldRefInput<$PrismaModel> + gt?: string | Prisma.StringFieldRefInput<$PrismaModel> + gte?: string | Prisma.StringFieldRefInput<$PrismaModel> + contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + search?: string + not?: Prisma.NestedStringFilter<$PrismaModel> | string +} + +export type NestedDateTimeFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + in?: Date[] | string[] + notIn?: Date[] | string[] + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + not?: Prisma.NestedDateTimeFilter<$PrismaModel> | Date | string +} + +export type NestedIntWithAggregatesFilter<$PrismaModel = never> = { + equals?: number | Prisma.IntFieldRefInput<$PrismaModel> + in?: number[] + notIn?: number[] + lt?: number | Prisma.IntFieldRefInput<$PrismaModel> + lte?: number | Prisma.IntFieldRefInput<$PrismaModel> + gt?: number | Prisma.IntFieldRefInput<$PrismaModel> + gte?: number | Prisma.IntFieldRefInput<$PrismaModel> + not?: Prisma.NestedIntWithAggregatesFilter<$PrismaModel> | number + _count?: Prisma.NestedIntFilter<$PrismaModel> + _avg?: Prisma.NestedFloatFilter<$PrismaModel> + _sum?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedIntFilter<$PrismaModel> + _max?: Prisma.NestedIntFilter<$PrismaModel> +} + +export type NestedFloatFilter<$PrismaModel = never> = { + equals?: number | Prisma.FloatFieldRefInput<$PrismaModel> + in?: number[] + notIn?: number[] + lt?: number | Prisma.FloatFieldRefInput<$PrismaModel> + lte?: number | Prisma.FloatFieldRefInput<$PrismaModel> + gt?: number | Prisma.FloatFieldRefInput<$PrismaModel> + gte?: number | Prisma.FloatFieldRefInput<$PrismaModel> + not?: Prisma.NestedFloatFilter<$PrismaModel> | number +} + +export type NestedStringWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel> + in?: string[] + notIn?: string[] + lt?: string | Prisma.StringFieldRefInput<$PrismaModel> + lte?: string | Prisma.StringFieldRefInput<$PrismaModel> + gt?: string | Prisma.StringFieldRefInput<$PrismaModel> + gte?: string | Prisma.StringFieldRefInput<$PrismaModel> + contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + search?: string + not?: Prisma.NestedStringWithAggregatesFilter<$PrismaModel> | string + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedStringFilter<$PrismaModel> + _max?: Prisma.NestedStringFilter<$PrismaModel> +} + +export type NestedDateTimeWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + in?: Date[] | string[] + notIn?: Date[] | string[] + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + not?: Prisma.NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedDateTimeFilter<$PrismaModel> + _max?: Prisma.NestedDateTimeFilter<$PrismaModel> +} + +export type NestedJsonFilter<$PrismaModel = never> = +| Prisma.PatchUndefined< + Prisma.Either>, Exclude>, 'path'>>, + Required> + > +| Prisma.OptionalFlat>, 'path'>> + +export type NestedJsonFilterBase<$PrismaModel = never> = { + equals?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter + path?: string + mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel> + string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel> + string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel> + array_starts_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + array_ends_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + array_contains?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + lt?: runtime.InputJsonValue + lte?: runtime.InputJsonValue + gt?: runtime.InputJsonValue + gte?: runtime.InputJsonValue + not?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter +} + + diff --git a/generated/prisma/enums.ts b/generated/prisma/enums.ts new file mode 100644 index 0000000..043572d --- /dev/null +++ b/generated/prisma/enums.ts @@ -0,0 +1,15 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* +* This file exports all enum related types from the schema. +* +* 🟢 You can import this file directly. +*/ + + + +// This file is empty because there are no enums in the schema. +export {} diff --git a/generated/prisma/internal/class.ts b/generated/prisma/internal/class.ts new file mode 100644 index 0000000..dc55c58 --- /dev/null +++ b/generated/prisma/internal/class.ts @@ -0,0 +1,244 @@ + +/* !!! 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.7.0", + "engineVersion": "75cbdc1eb7150937890ad5465d861175c6624711", + "activeProvider": "mysql", + "inlineSchema": "// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\n// Get a free hosted Postgres database in seconds: `npx create-db`\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"../generated/prisma\"\n}\n\ndatasource db {\n provider = \"mysql\"\n}\n\nmodel User {\n id Int @id @default(autoincrement())\n name String\n email String @unique\n password String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel Article {\n id Int @id @default(autoincrement())\n title String\n slug String @unique\n content String\n date String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel Strategy {\n id Int @id @default(autoincrement())\n name String\n description String\n data Json\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel Indicator {\n id Int @id @default(autoincrement())\n name String\n groupName String\n data Json\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel SowInventory {\n id Int @id @default(autoincrement())\n month String @unique\n inventory Int // 能繁母猪数量(万头)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n", + "runtimeDataModel": { + "models": {}, + "enums": {}, + "types": {} + }, + "parameterizationSchema": { + "strings": [], + "graph": "" + } +} + +config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"Article\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"slug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"content\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"Strategy\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"data\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"Indicator\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"groupName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"data\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"SowInventory\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"month\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"inventory\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}") +config.parameterizationSchema = { + strings: JSON.parse("[\"where\",\"User.findUnique\",\"User.findUniqueOrThrow\",\"orderBy\",\"cursor\",\"User.findFirst\",\"User.findFirstOrThrow\",\"User.findMany\",\"data\",\"User.createOne\",\"User.createMany\",\"User.updateOne\",\"User.updateMany\",\"create\",\"update\",\"User.upsertOne\",\"User.deleteOne\",\"User.deleteMany\",\"having\",\"_count\",\"_avg\",\"_sum\",\"_min\",\"_max\",\"User.groupBy\",\"User.aggregate\",\"Article.findUnique\",\"Article.findUniqueOrThrow\",\"Article.findFirst\",\"Article.findFirstOrThrow\",\"Article.findMany\",\"Article.createOne\",\"Article.createMany\",\"Article.updateOne\",\"Article.updateMany\",\"Article.upsertOne\",\"Article.deleteOne\",\"Article.deleteMany\",\"Article.groupBy\",\"Article.aggregate\",\"Strategy.findUnique\",\"Strategy.findUniqueOrThrow\",\"Strategy.findFirst\",\"Strategy.findFirstOrThrow\",\"Strategy.findMany\",\"Strategy.createOne\",\"Strategy.createMany\",\"Strategy.updateOne\",\"Strategy.updateMany\",\"Strategy.upsertOne\",\"Strategy.deleteOne\",\"Strategy.deleteMany\",\"Strategy.groupBy\",\"Strategy.aggregate\",\"Indicator.findUnique\",\"Indicator.findUniqueOrThrow\",\"Indicator.findFirst\",\"Indicator.findFirstOrThrow\",\"Indicator.findMany\",\"Indicator.createOne\",\"Indicator.createMany\",\"Indicator.updateOne\",\"Indicator.updateMany\",\"Indicator.upsertOne\",\"Indicator.deleteOne\",\"Indicator.deleteMany\",\"Indicator.groupBy\",\"Indicator.aggregate\",\"SowInventory.findUnique\",\"SowInventory.findUniqueOrThrow\",\"SowInventory.findFirst\",\"SowInventory.findFirstOrThrow\",\"SowInventory.findMany\",\"SowInventory.createOne\",\"SowInventory.createMany\",\"SowInventory.updateOne\",\"SowInventory.updateMany\",\"SowInventory.upsertOne\",\"SowInventory.deleteOne\",\"SowInventory.deleteMany\",\"SowInventory.groupBy\",\"SowInventory.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"month\",\"inventory\",\"createdAt\",\"updatedAt\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"contains\",\"startsWith\",\"endsWith\",\"search\",\"name\",\"groupName\",\"string_contains\",\"string_starts_with\",\"string_ends_with\",\"array_starts_with\",\"array_ends_with\",\"array_contains\",\"description\",\"title\",\"slug\",\"content\",\"date\",\"email\",\"password\",\"_relevance\",\"set\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"), + graph: "rgEpRglSAACNAQAwUwAABAAQVAAAjQEAMFUCAAAAAVhAAIIBACFZQACCAQAhZgEAgQEAIXMBAAAAAXQBAIEBACEBAAAAAQAgAQAAAAEAIAlSAACNAQAwUwAABAAQVAAAjQEAMFUCAIABACFYQACCAQAhWUAAggEAIWYBAIEBACFzAQCBAQAhdAEAgQEAIQF1AACuAQAgAwAAAAQAIAMAAAUAMAQAAAEAIAMAAAAEACADAAAFADAEAAABACADAAAABAAgAwAABQAwBAAAAQAgBlUCAAAAAVhAAAAAAVlAAAAAAWYBAAAAAXMBAAAAAXQBAAAAAQEIAAAJACAGVQIAAAABWEAAAAABWUAAAAABZgEAAAABcwEAAAABdAEAAAABAQgAAAsAMAZVAgCUAQAhWEAAlQEAIVlAAJUBACFmAQCTAQAhcwEAkwEAIXQBAJMBACECAAAAAQAgCAAADQAgBlUCAJQBACFYQACVAQAhWUAAlQEAIWYBAJMBACFzAQCTAQAhdAEAkwEAIQIAAAAEACAIAAAPACADAAAAAQAgDQAACQAgDgAADQAgAQAAAAEAIAEAAAAEACAFEwAAqQEAIBQAAKoBACAVAACtAQAgFgAArAEAIBcAAKsBACAJUgAAjAEAMFMAABUAEFQAAIwBADBVAgB1ACFYQAB3ACFZQAB3ACFmAQB2ACFzAQB2ACF0AQB2ACEDAAAABAAgAwAAFAAwEgAAFQAgAwAAAAQAIAMAAAUAMAQAAAEAIApSAACLAQAwUwAAGwAQVAAAiwEAMFUCAAAAAVhAAIIBACFZQACCAQAhbwEAgQEAIXABAAAAAXEBAIEBACFyAQCBAQAhAQAAABgAIAEAAAAYACAKUgAAiwEAMFMAABsAEFQAAIsBADBVAgCAAQAhWEAAggEAIVlAAIIBACFvAQCBAQAhcAEAgQEAIXEBAIEBACFyAQCBAQAhAXUAAKgBACADAAAAGwAgAwAAHAAwBAAAGAAgAwAAABsAIAMAABwAMAQAABgAIAMAAAAbACADAAAcADAEAAAYACAHVQIAAAABWEAAAAABWUAAAAABbwEAAAABcAEAAAABcQEAAAABcgEAAAABAQgAACAAIAdVAgAAAAFYQAAAAAFZQAAAAAFvAQAAAAFwAQAAAAFxAQAAAAFyAQAAAAEBCAAAIgAwB1UCAJQBACFYQACVAQAhWUAAlQEAIW8BAJMBACFwAQCTAQAhcQEAkwEAIXIBAJMBACECAAAAGAAgCAAAJAAgB1UCAJQBACFYQACVAQAhWUAAlQEAIW8BAJMBACFwAQCTAQAhcQEAkwEAIXIBAJMBACECAAAAGwAgCAAAJgAgAwAAABgAIA0AACAAIA4AACQAIAEAAAAYACABAAAAGwAgBRMAAKMBACAUAACkAQAgFQAApwEAIBYAAKYBACAXAAClAQAgClIAAIoBADBTAAAsABBUAACKAQAwVQIAdQAhWEAAdwAhWUAAdwAhbwEAdgAhcAEAdgAhcQEAdgAhcgEAdgAhAwAAABsAIAMAACsAMBIAACwAIAMAAAAbACADAAAcADAEAAAYACAJCAAAhwEAIFIAAIkBADBTAAAyABBUAACJAQAwVQIAAAABWEAAggEAIVlAAIIBACFmAQCBAQAhbgEAgQEAIQEAAAAvACABAAAALwAgCQgAAIcBACBSAACJAQAwUwAAMgAQVAAAiQEAMFUCAIABACFYQACCAQAhWUAAggEAIWYBAIEBACFuAQCBAQAhAXUAAKIBACADAAAAMgAgAwAAMwAwBAAALwAgAwAAADIAIAMAADMAMAQAAC8AIAMAAAAyACADAAAzADAEAAAvACAGCIAAAAABVQIAAAABWEAAAAABWUAAAAABZgEAAAABbgEAAAABAQgAADcAIAYIgAAAAAFVAgAAAAFYQAAAAAFZQAAAAAFmAQAAAAFuAQAAAAEBCAAAOQAwBgiAAAAAAVUCAJQBACFYQACVAQAhWUAAlQEAIWYBAJMBACFuAQCTAQAhAgAAAC8AIAgAADsAIAYIgAAAAAFVAgCUAQAhWEAAlQEAIVlAAJUBACFmAQCTAQAhbgEAkwEAIQIAAAAyACAIAAA9ACADAAAALwAgDQAANwAgDgAAOwAgAQAAAC8AIAEAAAAyACAFEwAAnQEAIBQAAJ4BACAVAAChAQAgFgAAoAEAIBcAAJ8BACAJCAAAhAEAIFIAAIgBADBTAABDABBUAACIAQAwVQIAdQAhWEAAdwAhWUAAdwAhZgEAdgAhbgEAdgAhAwAAADIAIAMAAEIAMBIAAEMAIAMAAAAyACADAAAzADAEAAAvACAJCAAAhwEAIFIAAIYBADBTAABJABBUAACGAQAwVQIAAAABWEAAggEAIVlAAIIBACFmAQCBAQAhZwEAgQEAIQEAAABGACABAAAARgAgCQgAAIcBACBSAACGAQAwUwAASQAQVAAAhgEAMFUCAIABACFYQACCAQAhWUAAggEAIWYBAIEBACFnAQCBAQAhAXUAAJwBACADAAAASQAgAwAASgAwBAAARgAgAwAAAEkAIAMAAEoAMAQAAEYAIAMAAABJACADAABKADAEAABGACAGCIAAAAABVQIAAAABWEAAAAABWUAAAAABZgEAAAABZwEAAAABAQgAAE4AIAYIgAAAAAFVAgAAAAFYQAAAAAFZQAAAAAFmAQAAAAFnAQAAAAEBCAAAUAAwBgiAAAAAAVUCAJQBACFYQACVAQAhWUAAlQEAIWYBAJMBACFnAQCTAQAhAgAAAEYAIAgAAFIAIAYIgAAAAAFVAgCUAQAhWEAAlQEAIVlAAJUBACFmAQCTAQAhZwEAkwEAIQIAAABJACAIAABUACADAAAARgAgDQAATgAgDgAAUgAgAQAAAEYAIAEAAABJACAFEwAAlwEAIBQAAJgBACAVAACbAQAgFgAAmgEAIBcAAJkBACAJCAAAhAEAIFIAAIMBADBTAABaABBUAACDAQAwVQIAdQAhWEAAdwAhWUAAdwAhZgEAdgAhZwEAdgAhAwAAAEkAIAMAAFkAMBIAAFoAIAMAAABJACADAABKADAEAABGACAIUgAAfwAwUwAAYAAQVAAAfwAwVQIAAAABVgEAAAABVwIAgAEAIVhAAIIBACFZQACCAQAhAQAAAF0AIAEAAABdACAIUgAAfwAwUwAAYAAQVAAAfwAwVQIAgAEAIVYBAIEBACFXAgCAAQAhWEAAggEAIVlAAIIBACEBdQAAlgEAIAMAAABgACADAABhADAEAABdACADAAAAYAAgAwAAYQAwBAAAXQAgAwAAAGAAIAMAAGEAMAQAAF0AIAVVAgAAAAFWAQAAAAFXAgAAAAFYQAAAAAFZQAAAAAEBCAAAZQAgBVUCAAAAAVYBAAAAAVcCAAAAAVhAAAAAAVlAAAAAAQEIAABnADAFVQIAlAEAIVYBAJMBACFXAgCUAQAhWEAAlQEAIVlAAJUBACECAAAAXQAgCAAAaQAgBVUCAJQBACFWAQCTAQAhVwIAlAEAIVhAAJUBACFZQACVAQAhAgAAAGAAIAgAAGsAIAMAAABdACANAABlACAOAABpACABAAAAXQAgAQAAAGAAIAUTAACOAQAgFAAAjwEAIBUAAJIBACAWAACRAQAgFwAAkAEAIAhSAAB0ADBTAABxABBUAAB0ADBVAgB1ACFWAQB2ACFXAgB1ACFYQAB3ACFZQAB3ACEDAAAAYAAgAwAAcAAwEgAAcQAgAwAAAGAAIAMAAGEAMAQAAF0AIAhSAAB0ADBTAABxABBUAAB0ADBVAgB1ACFWAQB2ACFXAgB1ACFYQAB3ACFZQAB3ACENEwAAeQAgFAAAfgAgFQAAeQAgFgAAeQAgFwAAeQAgWgIAAAABWwIAAAAEXAIAAAAEXQIAAAABXgIAAAABXwIAAAABYAIAAAABYQIAfQAhDxMAAHkAIBYAAHwAIBcAAHwAIFoBAAAAAVsBAAAABFwBAAAABF0BAAAAAV4BAAAAAV8BAAAAAWABAAAAAWEBAHsAIWIBAAAAAWMBAAAAAWQBAAAAAWUBAAAAAQsTAAB5ACAWAAB6ACAXAAB6ACBaQAAAAAFbQAAAAARcQAAAAARdQAAAAAFeQAAAAAFfQAAAAAFgQAAAAAFhQAB4ACELEwAAeQAgFgAAegAgFwAAegAgWkAAAAABW0AAAAAEXEAAAAAEXUAAAAABXkAAAAABX0AAAAABYEAAAAABYUAAeAAhCFoCAAAAAVsCAAAABFwCAAAABF0CAAAAAV4CAAAAAV8CAAAAAWACAAAAAWECAHkAIQhaQAAAAAFbQAAAAARcQAAAAARdQAAAAAFeQAAAAAFfQAAAAAFgQAAAAAFhQAB6ACEPEwAAeQAgFgAAfAAgFwAAfAAgWgEAAAABWwEAAAAEXAEAAAAEXQEAAAABXgEAAAABXwEAAAABYAEAAAABYQEAewAhYgEAAAABYwEAAAABZAEAAAABZQEAAAABDFoBAAAAAVsBAAAABFwBAAAABF0BAAAAAV4BAAAAAV8BAAAAAWABAAAAAWEBAHwAIWIBAAAAAWMBAAAAAWQBAAAAAWUBAAAAAQ0TAAB5ACAUAAB-ACAVAAB5ACAWAAB5ACAXAAB5ACBaAgAAAAFbAgAAAARcAgAAAARdAgAAAAFeAgAAAAFfAgAAAAFgAgAAAAFhAgB9ACEIWggAAAABWwgAAAAEXAgAAAAEXQgAAAABXggAAAABXwgAAAABYAgAAAABYQgAfgAhCFIAAH8AMFMAAGAAEFQAAH8AMFUCAIABACFWAQCBAQAhVwIAgAEAIVhAAIIBACFZQACCAQAhCFoCAAAAAVsCAAAABFwCAAAABF0CAAAAAV4CAAAAAV8CAAAAAWACAAAAAWECAHkAIQxaAQAAAAFbAQAAAARcAQAAAARdAQAAAAFeAQAAAAFfAQAAAAFgAQAAAAFhAQB8ACFiAQAAAAFjAQAAAAFkAQAAAAFlAQAAAAEIWkAAAAABW0AAAAAEXEAAAAAEXUAAAAABXkAAAAABX0AAAAABYEAAAAABYUAAegAhCQgAAIQBACBSAACDAQAwUwAAWgAQVAAAgwEAMFUCAHUAIVhAAHcAIVlAAHcAIWYBAHYAIWcBAHYAIQ8TAAB5ACAWAACFAQAgFwAAhQEAIFqAAAAAAV2AAAAAAV6AAAAAAV-AAAAAAWCAAAAAAWGAAAAAAWgBAAAAAWkBAAAAAWoBAAAAAWuAAAAAAWyAAAAAAW2AAAAAAQxagAAAAAFdgAAAAAFegAAAAAFfgAAAAAFggAAAAAFhgAAAAAFoAQAAAAFpAQAAAAFqAQAAAAFrgAAAAAFsgAAAAAFtgAAAAAEJCAAAhwEAIFIAAIYBADBTAABJABBUAACGAQAwVQIAgAEAIVhAAIIBACFZQACCAQAhZgEAgQEAIWcBAIEBACEMWoAAAAABXYAAAAABXoAAAAABX4AAAAABYIAAAAABYYAAAAABaAEAAAABaQEAAAABagEAAAABa4AAAAABbIAAAAABbYAAAAABCQgAAIQBACBSAACIAQAwUwAAQwAQVAAAiAEAMFUCAHUAIVhAAHcAIVlAAHcAIWYBAHYAIW4BAHYAIQkIAACHAQAgUgAAiQEAMFMAADIAEFQAAIkBADBVAgCAAQAhWEAAggEAIVlAAIIBACFmAQCBAQAhbgEAgQEAIQpSAACKAQAwUwAALAAQVAAAigEAMFUCAHUAIVhAAHcAIVlAAHcAIW8BAHYAIXABAHYAIXEBAHYAIXIBAHYAIQpSAACLAQAwUwAAGwAQVAAAiwEAMFUCAIABACFYQACCAQAhWUAAggEAIW8BAIEBACFwAQCBAQAhcQEAgQEAIXIBAIEBACEJUgAAjAEAMFMAABUAEFQAAIwBADBVAgB1ACFYQAB3ACFZQAB3ACFmAQB2ACFzAQB2ACF0AQB2ACEJUgAAjQEAMFMAAAQAEFQAAI0BADBVAgCAAQAhWEAAggEAIVlAAIIBACFmAQCBAQAhcwEAgQEAIXQBAIEBACEAAAAAAAF2AQAAAAEFdgIAAAABdwIAAAABeAIAAAABeQIAAAABegIAAAABAXZAAAAAAQFlAQAAAAEAAAAAAAFlAQAAAAEAAAAAAAFlAQAAAAEAAAAAAAFlAQAAAAEAAAAAAAFlAQAAAAEAAAUTAAQUAAUVAAYWAAcXAAgAAAAAAAUTAAQUAAUVAAYWAAcXAAgABRMADBQADRUADhYADxcAEAAAAAAABRMADBQADRUADhYADxcAEAAFEwAUFAAVFQAWFgAXFwAYAAAAAAAFEwAUFAAVFQAWFgAXFwAYAAUTABwUAB0VAB4WAB8XACAAAAAAAAUTABwUAB0VAB4WAB8XACAABRMAJBQAJRUAJhYAJxcAKAAAAAAABRMAJBQAJRUAJhYAJxcAKAECAQIDAQUGAQYHAQcIAQkKAQoMAgsOAQwQAg8RARASARETAhgWAxkXCRoZChsaChwdCh0eCh4fCh8hCiAjAiElCiInAiMoCiQpCiUqAiYtCycuESgwEikxEio0Eis1Eiw2Ei04Ei46Ai88EjA-AjE_EjJAEjNBAjREEzVFGTZHGjdIGjhLGjlMGjpNGjtPGjxRAj1TGj5VAj9WGkBXGkFYAkJbG0NcIUReIkVfIkZiIkdjIkhkIklmIkpoAktqIkxsAk1tIk5uIk9vAlByI1FzKQ" +} + +async function decodeBase64AsWasm(wasmBase64: string): Promise { + 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_fast_bg.mysql.mjs"), + + getQueryCompilerWasmModule: async () => { + const { wasm } = await import("@prisma/client/runtime/query_compiler_fast_bg.mysql.wasm-base64.mjs") + return await decodeBase64AsWasm(wasm) + }, + + importName: "./query_compiler_fast_bg.js" +} + + + +export type LogOptions = + 'log' extends keyof ClientOptions ? ClientOptions['log'] extends Array ? Prisma.GetEvents : never : never + +export interface PrismaClientConstructor { + /** + * ## Prisma Client + * + * Type-safe database client for TypeScript + * @example + * ``` + * const prisma = new PrismaClient({ + * adapter: new PrismaPg({ connectionString: process.env.DATABASE_URL }) + * }) + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + * + * Read more in our [docs](https://pris.ly/d/client). + */ + + new < + Options extends Prisma.PrismaClientOptions = Prisma.PrismaClientOptions, + LogOpts extends LogOptions = LogOptions, + 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 ): PrismaClient +} + +/** + * ## Prisma Client + * + * Type-safe database client for TypeScript + * @example + * ``` + * const prisma = new PrismaClient({ + * adapter: new PrismaPg({ connectionString: process.env.DATABASE_URL }) + * }) + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + * + * Read more in our [docs](https://pris.ly/d/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['other'] } + + $on(eventType: V, callback: (event: V extends 'query' ? Prisma.QueryEvent : Prisma.LogEvent) => void): PrismaClient; + + /** + * Connect with the database + */ + $connect(): runtime.Types.Utils.JsPromise; + + /** + * Disconnect from the database + */ + $disconnect(): runtime.Types.Utils.JsPromise; + +/** + * Executes a prepared raw query and returns the number of affected rows. + * @example + * ``` + * const result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};` + * ``` + * + * Read more in our [docs](https://pris.ly/d/raw-queries). + */ + $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://pris.ly/d/raw-queries). + */ + $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://pris.ly/d/raw-queries). + */ + $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://pris.ly/d/raw-queries). + */ + $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/orm/prisma-client/queries/transactions). + */ + $transaction

[]>(arg: [...P], options?: { isolationLevel?: Prisma.TransactionIsolationLevel }): runtime.Types.Utils.JsPromise> + + $transaction(fn: (prisma: Omit) => runtime.Types.Utils.JsPromise, options?: { maxWait?: number, timeout?: number, isolationLevel?: Prisma.TransactionIsolationLevel }): runtime.Types.Utils.JsPromise + + $extends: runtime.Types.Extensions.ExtendsHook<"extends", Prisma.TypeMapCb, ExtArgs, runtime.Types.Utils.Call, { + extArgs: ExtArgs + }>> + + /** + * `prisma.user`: Exposes CRUD operations for the **User** model. + * Example usage: + * ```ts + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + */ + get user(): Prisma.UserDelegate; + + /** + * `prisma.article`: Exposes CRUD operations for the **Article** model. + * Example usage: + * ```ts + * // Fetch zero or more Articles + * const articles = await prisma.article.findMany() + * ``` + */ + get article(): Prisma.ArticleDelegate; + + /** + * `prisma.strategy`: Exposes CRUD operations for the **Strategy** model. + * Example usage: + * ```ts + * // Fetch zero or more Strategies + * const strategies = await prisma.strategy.findMany() + * ``` + */ + get strategy(): Prisma.StrategyDelegate; + + /** + * `prisma.indicator`: Exposes CRUD operations for the **Indicator** model. + * Example usage: + * ```ts + * // Fetch zero or more Indicators + * const indicators = await prisma.indicator.findMany() + * ``` + */ + get indicator(): Prisma.IndicatorDelegate; + + /** + * `prisma.sowInventory`: Exposes CRUD operations for the **SowInventory** model. + * Example usage: + * ```ts + * // Fetch zero or more SowInventories + * const sowInventories = await prisma.sowInventory.findMany() + * ``` + */ + get sowInventory(): Prisma.SowInventoryDelegate; +} + +export function getPrismaClientClass(): PrismaClientConstructor { + return runtime.getPrismaClient(config) as unknown as PrismaClientConstructor +} diff --git a/generated/prisma/internal/prismaNamespace.ts b/generated/prisma/internal/prismaNamespace.ts new file mode 100644 index 0000000..615a522 --- /dev/null +++ b/generated/prisma/internal/prismaNamespace.ts @@ -0,0 +1,1123 @@ + +/* !!! 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! 🛑 + * + * All exports from this file are wrapped under a `Prisma` namespace object in the client.ts file. + * While this enables partial backward compatibility, it is not part of the stable public API. + * + * If you are looking for your Models, Enums, and Input Types, please import them from the respective + * model files in the `model` directory! + */ + +import * as runtime from "@prisma/client/runtime/client" +import type * as Prisma from "../models.ts" +import { type PrismaClient } from "./class.ts" + +export type * from '../models.ts' + +export type DMMF = typeof runtime.DMMF + +export type PrismaPromise = runtime.Types.Public.PrismaPromise + +/** + * Prisma Errors + */ + +export const PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError +export type PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError + +export const PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError +export type PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError + +export const PrismaClientRustPanicError = runtime.PrismaClientRustPanicError +export type PrismaClientRustPanicError = runtime.PrismaClientRustPanicError + +export const PrismaClientInitializationError = runtime.PrismaClientInitializationError +export type PrismaClientInitializationError = runtime.PrismaClientInitializationError + +export const PrismaClientValidationError = runtime.PrismaClientValidationError +export type PrismaClientValidationError = runtime.PrismaClientValidationError + +/** + * Re-export of sql-template-tag + */ +export const sql = runtime.sqltag +export const empty = runtime.empty +export const join = runtime.join +export const raw = runtime.raw +export const Sql = runtime.Sql +export type Sql = runtime.Sql + + + +/** + * Decimal.js + */ +export const Decimal = runtime.Decimal +export type Decimal = runtime.Decimal + +export type DecimalJsLike = runtime.DecimalJsLike + +/** +* Extensions +*/ +export type Extension = runtime.Types.Extensions.UserArgs +export const getExtensionContext = runtime.Extensions.getExtensionContext +export type Args = runtime.Types.Public.Args +export type Payload = runtime.Types.Public.Payload +export type Result = runtime.Types.Public.Result +export type Exact = runtime.Types.Public.Exact + +export type PrismaVersion = { + client: string + engine: string +} + +/** + * Prisma Client JS version: 7.7.0 + * Query Engine version: 75cbdc1eb7150937890ad5465d861175c6624711 + */ +export const prismaVersion: PrismaVersion = { + client: "7.7.0", + engine: "75cbdc1eb7150937890ad5465d861175c6624711" +} + +/** + * Utility Types + */ + +export type Bytes = runtime.Bytes +export type JsonObject = runtime.JsonObject +export type JsonArray = runtime.JsonArray +export type JsonValue = runtime.JsonValue +export type InputJsonObject = runtime.InputJsonObject +export type InputJsonArray = runtime.InputJsonArray +export type InputJsonValue = runtime.InputJsonValue + + +export const NullTypes = { + DbNull: runtime.NullTypes.DbNull as (new (secret: never) => typeof runtime.DbNull), + JsonNull: runtime.NullTypes.JsonNull as (new (secret: never) => typeof runtime.JsonNull), + AnyNull: runtime.NullTypes.AnyNull as (new (secret: never) => typeof runtime.AnyNull), +} +/** + * 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 = runtime.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 = runtime.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 = runtime.AnyNull + + +type SelectAndInclude = { + select: any + include: any +} + +type SelectAndOmit = { + select: any + omit: any +} + +/** + * 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; + +/** + * 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 + */ +export 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] + +export type Either< + O extends object, + K extends Key, + strict extends Boolean = 1 +> = O extends unknown ? _Either : never + +export type Union = any + +export 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 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 +export 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>>; + +export type Boolean = True | False + +export type True = 1 + +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 + +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 + +export 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 +export type MaybeTupleToUnion = T extends any[] ? TupleToUnion : T + +/** + * Like `Pick`, but additionally can also accept an array of keys + */ +export type PickEnumerable | keyof T> = Prisma__Pick> + +/** + * Exclude all keys with underscores + */ +export type ExcludeUnderscoreKeys = T extends `_${string}` ? never : T + + +export type FieldRef = runtime.FieldRef + +type FieldRefInputType = Model extends never ? never : FieldRef + + +export const ModelName = { + User: 'User', + Article: 'Article', + Strategy: 'Strategy', + Indicator: 'Indicator', + SowInventory: 'SowInventory' +} as const + +export type ModelName = (typeof ModelName)[keyof typeof ModelName] + + + +export interface TypeMapCb extends runtime.Types.Utils.Fn<{extArgs: runtime.Types.Extensions.InternalArgs }, runtime.Types.Utils.Record> { + returns: TypeMap +} + +export type TypeMap = { + globalOmitOptions: { + omit: GlobalOmitOptions + } + meta: { + modelProps: "user" | "article" | "strategy" | "indicator" | "sowInventory" + txIsolationLevel: TransactionIsolationLevel + } + model: { + User: { + payload: Prisma.$UserPayload + fields: Prisma.UserFieldRefs + operations: { + findUnique: { + args: Prisma.UserFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.UserFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.UserFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.UserFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.UserFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.UserCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.UserCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.UserDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.UserUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.UserDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.UserUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.UserUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.UserAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.UserGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.UserCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + Article: { + payload: Prisma.$ArticlePayload + fields: Prisma.ArticleFieldRefs + operations: { + findUnique: { + args: Prisma.ArticleFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.ArticleFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.ArticleFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.ArticleFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.ArticleFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.ArticleCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.ArticleCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.ArticleDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.ArticleUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.ArticleDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.ArticleUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.ArticleUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.ArticleAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.ArticleGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.ArticleCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + Strategy: { + payload: Prisma.$StrategyPayload + fields: Prisma.StrategyFieldRefs + operations: { + findUnique: { + args: Prisma.StrategyFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.StrategyFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.StrategyFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.StrategyFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.StrategyFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.StrategyCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.StrategyCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.StrategyDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.StrategyUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.StrategyDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.StrategyUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.StrategyUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.StrategyAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.StrategyGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.StrategyCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + Indicator: { + payload: Prisma.$IndicatorPayload + fields: Prisma.IndicatorFieldRefs + operations: { + findUnique: { + args: Prisma.IndicatorFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.IndicatorFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.IndicatorFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.IndicatorFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.IndicatorFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.IndicatorCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.IndicatorCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.IndicatorDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.IndicatorUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.IndicatorDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.IndicatorUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.IndicatorUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.IndicatorAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.IndicatorGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.IndicatorCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + SowInventory: { + payload: Prisma.$SowInventoryPayload + fields: Prisma.SowInventoryFieldRefs + operations: { + findUnique: { + args: Prisma.SowInventoryFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.SowInventoryFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.SowInventoryFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.SowInventoryFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.SowInventoryFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.SowInventoryCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.SowInventoryCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.SowInventoryDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.SowInventoryUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.SowInventoryDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.SowInventoryUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.SowInventoryUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.SowInventoryAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.SowInventoryGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.SowInventoryCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + } +} & { + other: { + payload: any + operations: { + $executeRaw: { + args: [query: TemplateStringsArray | Sql, ...values: any[]], + result: any + } + $executeRawUnsafe: { + args: [query: string, ...values: any[]], + result: any + } + $queryRaw: { + args: [query: TemplateStringsArray | Sql, ...values: any[]], + result: any + } + $queryRawUnsafe: { + args: [query: string, ...values: any[]], + result: any + } + } + } +} + +/** + * Enums + */ + +export const TransactionIsolationLevel = runtime.makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' +} as const) + +export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel] + + +export const UserScalarFieldEnum = { + id: 'id', + name: 'name', + email: 'email', + password: 'password', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum] + + +export const ArticleScalarFieldEnum = { + id: 'id', + title: 'title', + slug: 'slug', + content: 'content', + date: 'date', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type ArticleScalarFieldEnum = (typeof ArticleScalarFieldEnum)[keyof typeof ArticleScalarFieldEnum] + + +export const StrategyScalarFieldEnum = { + id: 'id', + name: 'name', + description: 'description', + data: 'data', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type StrategyScalarFieldEnum = (typeof StrategyScalarFieldEnum)[keyof typeof StrategyScalarFieldEnum] + + +export const IndicatorScalarFieldEnum = { + id: 'id', + name: 'name', + groupName: 'groupName', + data: 'data', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type IndicatorScalarFieldEnum = (typeof IndicatorScalarFieldEnum)[keyof typeof IndicatorScalarFieldEnum] + + +export const SowInventoryScalarFieldEnum = { + id: 'id', + month: 'month', + inventory: 'inventory', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type SowInventoryScalarFieldEnum = (typeof SowInventoryScalarFieldEnum)[keyof typeof SowInventoryScalarFieldEnum] + + +export const SortOrder = { + asc: 'asc', + desc: 'desc' +} as const + +export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder] + + +export const JsonNullValueInput = { + JsonNull: JsonNull +} as const + +export type JsonNullValueInput = (typeof JsonNullValueInput)[keyof typeof JsonNullValueInput] + + +export const UserOrderByRelevanceFieldEnum = { + name: 'name', + email: 'email', + password: 'password' +} as const + +export type UserOrderByRelevanceFieldEnum = (typeof UserOrderByRelevanceFieldEnum)[keyof typeof UserOrderByRelevanceFieldEnum] + + +export const ArticleOrderByRelevanceFieldEnum = { + title: 'title', + slug: 'slug', + content: 'content', + date: 'date' +} as const + +export type ArticleOrderByRelevanceFieldEnum = (typeof ArticleOrderByRelevanceFieldEnum)[keyof typeof ArticleOrderByRelevanceFieldEnum] + + +export const JsonNullValueFilter = { + DbNull: DbNull, + JsonNull: JsonNull, + AnyNull: AnyNull +} as const + +export type JsonNullValueFilter = (typeof JsonNullValueFilter)[keyof typeof JsonNullValueFilter] + + +export const QueryMode = { + default: 'default', + insensitive: 'insensitive' +} as const + +export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode] + + +export const StrategyOrderByRelevanceFieldEnum = { + name: 'name', + description: 'description' +} as const + +export type StrategyOrderByRelevanceFieldEnum = (typeof StrategyOrderByRelevanceFieldEnum)[keyof typeof StrategyOrderByRelevanceFieldEnum] + + +export const IndicatorOrderByRelevanceFieldEnum = { + name: 'name', + groupName: 'groupName' +} as const + +export type IndicatorOrderByRelevanceFieldEnum = (typeof IndicatorOrderByRelevanceFieldEnum)[keyof typeof IndicatorOrderByRelevanceFieldEnum] + + +export const SowInventoryOrderByRelevanceFieldEnum = { + month: 'month' +} as const + +export type SowInventoryOrderByRelevanceFieldEnum = (typeof SowInventoryOrderByRelevanceFieldEnum)[keyof typeof SowInventoryOrderByRelevanceFieldEnum] + + + +/** + * Field references + */ + + +/** + * Reference to a field of type 'Int' + */ +export type IntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int'> + + + +/** + * Reference to a field of type 'String' + */ +export type StringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String'> + + + +/** + * Reference to a field of type 'DateTime' + */ +export type DateTimeFieldRefInput<$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 'Float' + */ +export type FloatFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Float'> + + +/** + * Batch Payload for updateMany & deleteMany & createMany + */ +export type BatchPayload = { + count: number +} + +export const defineExtension = runtime.Extensions.defineExtension as unknown as runtime.Types.Extensions.ExtendsHook<"define", TypeMapCb, runtime.Types.Extensions.DefaultArgs> +export type DefaultPrismaClient = PrismaClient +export type ErrorFormat = 'pretty' | 'colorless' | 'minimal' +export type PrismaClientOptions = ({ + /** + * Instance of a Driver Adapter, e.g., like one provided by `@prisma/adapter-pg`. + */ + adapter: runtime.SqlDriverAdapterFactory + accelerateUrl?: never +} | { + /** + * Prisma Accelerate URL allowing the client to connect through Accelerate instead of a direct database. + */ + accelerateUrl: string + adapter?: never +}) & { + /** + * @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://pris.ly/d/logging). + */ + log?: (LogLevel | LogDefinition)[] + /** + * The default values for transactionOptions + * maxWait ?= 2000 + * timeout ?= 5000 + */ + transactionOptions?: { + maxWait?: number + timeout?: number + isolationLevel?: TransactionIsolationLevel + } + /** + * Global configuration for omitting model fields by default. + * + * @example + * ``` + * const prisma = new PrismaClient({ + * omit: { + * user: { + * password: true + * } + * } + * }) + * ``` + */ + omit?: GlobalOmitConfig + /** + * SQL commenter plugins that add metadata to SQL queries as comments. + * Comments follow the sqlcommenter format: https://google.github.io/sqlcommenter/ + * + * @example + * ``` + * const prisma = new PrismaClient({ + * adapter, + * comments: [ + * traceContext(), + * queryInsights(), + * ], + * }) + * ``` + */ + comments?: runtime.SqlCommenterPlugin[] +} +export type GlobalOmitConfig = { + user?: Prisma.UserOmit + article?: Prisma.ArticleOmit + strategy?: Prisma.StrategyOmit + indicator?: Prisma.IndicatorOmit + sowInventory?: Prisma.SowInventoryOmit +} + +/* 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' + +/** + * `PrismaClient` proxy available in interactive transactions. + */ +export type TransactionClient = Omit + diff --git a/generated/prisma/internal/prismaNamespaceBrowser.ts b/generated/prisma/internal/prismaNamespaceBrowser.ts new file mode 100644 index 0000000..24b1129 --- /dev/null +++ b/generated/prisma/internal/prismaNamespaceBrowser.ts @@ -0,0 +1,209 @@ + +/* !!! 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! 🛑 + * + * All exports from this file are wrapped under a `Prisma` namespace object in the browser.ts file. + * While this enables partial backward compatibility, it is not part of the stable public API. + * + * If you are looking for your Models, Enums, and Input Types, please import them from the respective + * model files in the `model` directory! + */ + +import * as runtime from "@prisma/client/runtime/index-browser" + +export type * from '../models.ts' +export type * from './prismaNamespace.ts' + +export const Decimal = runtime.Decimal + + +export const NullTypes = { + DbNull: runtime.NullTypes.DbNull as (new (secret: never) => typeof runtime.DbNull), + JsonNull: runtime.NullTypes.JsonNull as (new (secret: never) => typeof runtime.JsonNull), + AnyNull: runtime.NullTypes.AnyNull as (new (secret: never) => typeof runtime.AnyNull), +} +/** + * 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 = runtime.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 = runtime.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 = runtime.AnyNull + + +export const ModelName = { + User: 'User', + Article: 'Article', + Strategy: 'Strategy', + Indicator: 'Indicator', + SowInventory: 'SowInventory' +} as const + +export type ModelName = (typeof ModelName)[keyof typeof ModelName] + +/* + * Enums + */ + +export const TransactionIsolationLevel = runtime.makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' +} as const) + +export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel] + + +export const UserScalarFieldEnum = { + id: 'id', + name: 'name', + email: 'email', + password: 'password', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum] + + +export const ArticleScalarFieldEnum = { + id: 'id', + title: 'title', + slug: 'slug', + content: 'content', + date: 'date', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type ArticleScalarFieldEnum = (typeof ArticleScalarFieldEnum)[keyof typeof ArticleScalarFieldEnum] + + +export const StrategyScalarFieldEnum = { + id: 'id', + name: 'name', + description: 'description', + data: 'data', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type StrategyScalarFieldEnum = (typeof StrategyScalarFieldEnum)[keyof typeof StrategyScalarFieldEnum] + + +export const IndicatorScalarFieldEnum = { + id: 'id', + name: 'name', + groupName: 'groupName', + data: 'data', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type IndicatorScalarFieldEnum = (typeof IndicatorScalarFieldEnum)[keyof typeof IndicatorScalarFieldEnum] + + +export const SowInventoryScalarFieldEnum = { + id: 'id', + month: 'month', + inventory: 'inventory', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type SowInventoryScalarFieldEnum = (typeof SowInventoryScalarFieldEnum)[keyof typeof SowInventoryScalarFieldEnum] + + +export const SortOrder = { + asc: 'asc', + desc: 'desc' +} as const + +export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder] + + +export const JsonNullValueInput = { + JsonNull: JsonNull +} as const + +export type JsonNullValueInput = (typeof JsonNullValueInput)[keyof typeof JsonNullValueInput] + + +export const UserOrderByRelevanceFieldEnum = { + name: 'name', + email: 'email', + password: 'password' +} as const + +export type UserOrderByRelevanceFieldEnum = (typeof UserOrderByRelevanceFieldEnum)[keyof typeof UserOrderByRelevanceFieldEnum] + + +export const ArticleOrderByRelevanceFieldEnum = { + title: 'title', + slug: 'slug', + content: 'content', + date: 'date' +} as const + +export type ArticleOrderByRelevanceFieldEnum = (typeof ArticleOrderByRelevanceFieldEnum)[keyof typeof ArticleOrderByRelevanceFieldEnum] + + +export const JsonNullValueFilter = { + DbNull: DbNull, + JsonNull: JsonNull, + AnyNull: AnyNull +} as const + +export type JsonNullValueFilter = (typeof JsonNullValueFilter)[keyof typeof JsonNullValueFilter] + + +export const QueryMode = { + default: 'default', + insensitive: 'insensitive' +} as const + +export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode] + + +export const StrategyOrderByRelevanceFieldEnum = { + name: 'name', + description: 'description' +} as const + +export type StrategyOrderByRelevanceFieldEnum = (typeof StrategyOrderByRelevanceFieldEnum)[keyof typeof StrategyOrderByRelevanceFieldEnum] + + +export const IndicatorOrderByRelevanceFieldEnum = { + name: 'name', + groupName: 'groupName' +} as const + +export type IndicatorOrderByRelevanceFieldEnum = (typeof IndicatorOrderByRelevanceFieldEnum)[keyof typeof IndicatorOrderByRelevanceFieldEnum] + + +export const SowInventoryOrderByRelevanceFieldEnum = { + month: 'month' +} as const + +export type SowInventoryOrderByRelevanceFieldEnum = (typeof SowInventoryOrderByRelevanceFieldEnum)[keyof typeof SowInventoryOrderByRelevanceFieldEnum] + diff --git a/generated/prisma/models.ts b/generated/prisma/models.ts new file mode 100644 index 0000000..ca1f924 --- /dev/null +++ b/generated/prisma/models.ts @@ -0,0 +1,16 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This is a barrel export file for all models and their related types. + * + * 🟢 You can import this file directly. + */ +export type * from './models/User.ts' +export type * from './models/Article.ts' +export type * from './models/Strategy.ts' +export type * from './models/Indicator.ts' +export type * from './models/SowInventory.ts' +export type * from './commonInputTypes.ts' \ No newline at end of file diff --git a/generated/prisma/models/Article.ts b/generated/prisma/models/Article.ts new file mode 100644 index 0000000..4a9bf6d --- /dev/null +++ b/generated/prisma/models/Article.ts @@ -0,0 +1,1136 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Article` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/client" +import type * as $Enums from "../enums.ts" +import type * as Prisma from "../internal/prismaNamespace.ts" + +/** + * Model Article + * + */ +export type ArticleModel = runtime.Types.Result.DefaultSelection + +export type AggregateArticle = { + _count: ArticleCountAggregateOutputType | null + _avg: ArticleAvgAggregateOutputType | null + _sum: ArticleSumAggregateOutputType | null + _min: ArticleMinAggregateOutputType | null + _max: ArticleMaxAggregateOutputType | null +} + +export type ArticleAvgAggregateOutputType = { + id: number | null +} + +export type ArticleSumAggregateOutputType = { + id: number | null +} + +export type ArticleMinAggregateOutputType = { + id: number | null + title: string | null + slug: string | null + content: string | null + date: string | null + createdAt: Date | null + updatedAt: Date | null +} + +export type ArticleMaxAggregateOutputType = { + id: number | null + title: string | null + slug: string | null + content: string | null + date: string | null + createdAt: Date | null + updatedAt: Date | null +} + +export type ArticleCountAggregateOutputType = { + id: number + title: number + slug: number + content: number + date: number + createdAt: number + updatedAt: number + _all: number +} + + +export type ArticleAvgAggregateInputType = { + id?: true +} + +export type ArticleSumAggregateInputType = { + id?: true +} + +export type ArticleMinAggregateInputType = { + id?: true + title?: true + slug?: true + content?: true + date?: true + createdAt?: true + updatedAt?: true +} + +export type ArticleMaxAggregateInputType = { + id?: true + title?: true + slug?: true + content?: true + date?: true + createdAt?: true + updatedAt?: true +} + +export type ArticleCountAggregateInputType = { + id?: true + title?: true + slug?: true + content?: true + date?: true + createdAt?: true + updatedAt?: true + _all?: true +} + +export type ArticleAggregateArgs = { + /** + * Filter which Article to aggregate. + */ + where?: Prisma.ArticleWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Articles to fetch. + */ + orderBy?: Prisma.ArticleOrderByWithRelationInput | Prisma.ArticleOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.ArticleWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Articles 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` Articles. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Articles + **/ + _count?: true | ArticleCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: ArticleAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: ArticleSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: ArticleMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: ArticleMaxAggregateInputType +} + +export type GetArticleAggregateType = { + [P in keyof T & keyof AggregateArticle]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type ArticleGroupByArgs = { + where?: Prisma.ArticleWhereInput + orderBy?: Prisma.ArticleOrderByWithAggregationInput | Prisma.ArticleOrderByWithAggregationInput[] + by: Prisma.ArticleScalarFieldEnum[] | Prisma.ArticleScalarFieldEnum + having?: Prisma.ArticleScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: ArticleCountAggregateInputType | true + _avg?: ArticleAvgAggregateInputType + _sum?: ArticleSumAggregateInputType + _min?: ArticleMinAggregateInputType + _max?: ArticleMaxAggregateInputType +} + +export type ArticleGroupByOutputType = { + id: number + title: string + slug: string + content: string + date: string + createdAt: Date + updatedAt: Date + _count: ArticleCountAggregateOutputType | null + _avg: ArticleAvgAggregateOutputType | null + _sum: ArticleSumAggregateOutputType | null + _min: ArticleMinAggregateOutputType | null + _max: ArticleMaxAggregateOutputType | null +} + +export type GetArticleGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof ArticleGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type ArticleWhereInput = { + AND?: Prisma.ArticleWhereInput | Prisma.ArticleWhereInput[] + OR?: Prisma.ArticleWhereInput[] + NOT?: Prisma.ArticleWhereInput | Prisma.ArticleWhereInput[] + id?: Prisma.IntFilter<"Article"> | number + title?: Prisma.StringFilter<"Article"> | string + slug?: Prisma.StringFilter<"Article"> | string + content?: Prisma.StringFilter<"Article"> | string + date?: Prisma.StringFilter<"Article"> | string + createdAt?: Prisma.DateTimeFilter<"Article"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"Article"> | Date | string +} + +export type ArticleOrderByWithRelationInput = { + id?: Prisma.SortOrder + title?: Prisma.SortOrder + slug?: Prisma.SortOrder + content?: Prisma.SortOrder + date?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + _relevance?: Prisma.ArticleOrderByRelevanceInput +} + +export type ArticleWhereUniqueInput = Prisma.AtLeast<{ + id?: number + slug?: string + AND?: Prisma.ArticleWhereInput | Prisma.ArticleWhereInput[] + OR?: Prisma.ArticleWhereInput[] + NOT?: Prisma.ArticleWhereInput | Prisma.ArticleWhereInput[] + title?: Prisma.StringFilter<"Article"> | string + content?: Prisma.StringFilter<"Article"> | string + date?: Prisma.StringFilter<"Article"> | string + createdAt?: Prisma.DateTimeFilter<"Article"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"Article"> | Date | string +}, "id" | "slug"> + +export type ArticleOrderByWithAggregationInput = { + id?: Prisma.SortOrder + title?: Prisma.SortOrder + slug?: Prisma.SortOrder + content?: Prisma.SortOrder + date?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + _count?: Prisma.ArticleCountOrderByAggregateInput + _avg?: Prisma.ArticleAvgOrderByAggregateInput + _max?: Prisma.ArticleMaxOrderByAggregateInput + _min?: Prisma.ArticleMinOrderByAggregateInput + _sum?: Prisma.ArticleSumOrderByAggregateInput +} + +export type ArticleScalarWhereWithAggregatesInput = { + AND?: Prisma.ArticleScalarWhereWithAggregatesInput | Prisma.ArticleScalarWhereWithAggregatesInput[] + OR?: Prisma.ArticleScalarWhereWithAggregatesInput[] + NOT?: Prisma.ArticleScalarWhereWithAggregatesInput | Prisma.ArticleScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"Article"> | number + title?: Prisma.StringWithAggregatesFilter<"Article"> | string + slug?: Prisma.StringWithAggregatesFilter<"Article"> | string + content?: Prisma.StringWithAggregatesFilter<"Article"> | string + date?: Prisma.StringWithAggregatesFilter<"Article"> | string + createdAt?: Prisma.DateTimeWithAggregatesFilter<"Article"> | Date | string + updatedAt?: Prisma.DateTimeWithAggregatesFilter<"Article"> | Date | string +} + +export type ArticleCreateInput = { + title: string + slug: string + content: string + date: string + createdAt?: Date | string + updatedAt?: Date | string +} + +export type ArticleUncheckedCreateInput = { + id?: number + title: string + slug: string + content: string + date: string + createdAt?: Date | string + updatedAt?: Date | string +} + +export type ArticleUpdateInput = { + title?: Prisma.StringFieldUpdateOperationsInput | string + slug?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + date?: Prisma.StringFieldUpdateOperationsInput | string + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type ArticleUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + title?: Prisma.StringFieldUpdateOperationsInput | string + slug?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + date?: Prisma.StringFieldUpdateOperationsInput | string + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type ArticleCreateManyInput = { + id?: number + title: string + slug: string + content: string + date: string + createdAt?: Date | string + updatedAt?: Date | string +} + +export type ArticleUpdateManyMutationInput = { + title?: Prisma.StringFieldUpdateOperationsInput | string + slug?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + date?: Prisma.StringFieldUpdateOperationsInput | string + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type ArticleUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + title?: Prisma.StringFieldUpdateOperationsInput | string + slug?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + date?: Prisma.StringFieldUpdateOperationsInput | string + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type ArticleOrderByRelevanceInput = { + fields: Prisma.ArticleOrderByRelevanceFieldEnum | Prisma.ArticleOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type ArticleCountOrderByAggregateInput = { + id?: Prisma.SortOrder + title?: Prisma.SortOrder + slug?: Prisma.SortOrder + content?: Prisma.SortOrder + date?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type ArticleAvgOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type ArticleMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + title?: Prisma.SortOrder + slug?: Prisma.SortOrder + content?: Prisma.SortOrder + date?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type ArticleMinOrderByAggregateInput = { + id?: Prisma.SortOrder + title?: Prisma.SortOrder + slug?: Prisma.SortOrder + content?: Prisma.SortOrder + date?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type ArticleSumOrderByAggregateInput = { + id?: Prisma.SortOrder +} + + + +export type ArticleSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + title?: boolean + slug?: boolean + content?: boolean + date?: boolean + createdAt?: boolean + updatedAt?: boolean +}, ExtArgs["result"]["article"]> + + + +export type ArticleSelectScalar = { + id?: boolean + title?: boolean + slug?: boolean + content?: boolean + date?: boolean + createdAt?: boolean + updatedAt?: boolean +} + +export type ArticleOmit = runtime.Types.Extensions.GetOmit<"id" | "title" | "slug" | "content" | "date" | "createdAt" | "updatedAt", ExtArgs["result"]["article"]> + +export type $ArticlePayload = { + name: "Article" + objects: {} + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + title: string + slug: string + content: string + date: string + createdAt: Date + updatedAt: Date + }, ExtArgs["result"]["article"]> + composites: {} +} + +export type ArticleGetPayload = runtime.Types.Result.GetResult + +export type ArticleCountArgs = + Omit & { + select?: ArticleCountAggregateInputType | true + } + +export interface ArticleDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Article'], meta: { name: 'Article' } } + /** + * Find zero or one Article that matches the filter. + * @param {ArticleFindUniqueArgs} args - Arguments to find a Article + * @example + * // Get one Article + * const article = await prisma.article.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__ArticleClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Article that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {ArticleFindUniqueOrThrowArgs} args - Arguments to find a Article + * @example + * // Get one Article + * const article = await prisma.article.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__ArticleClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Article 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 {ArticleFindFirstArgs} args - Arguments to find a Article + * @example + * // Get one Article + * const article = await prisma.article.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__ArticleClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Article 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 {ArticleFindFirstOrThrowArgs} args - Arguments to find a Article + * @example + * // Get one Article + * const article = await prisma.article.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__ArticleClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Articles 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 {ArticleFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Articles + * const articles = await prisma.article.findMany() + * + * // Get first 10 Articles + * const articles = await prisma.article.findMany({ take: 10 }) + * + * // Only select the `id` + * const articleWithIdOnly = await prisma.article.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Article. + * @param {ArticleCreateArgs} args - Arguments to create a Article. + * @example + * // Create one Article + * const Article = await prisma.article.create({ + * data: { + * // ... data to create a Article + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__ArticleClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Articles. + * @param {ArticleCreateManyArgs} args - Arguments to create many Articles. + * @example + * // Create many Articles + * const article = await prisma.article.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a Article. + * @param {ArticleDeleteArgs} args - Arguments to delete one Article. + * @example + * // Delete one Article + * const Article = await prisma.article.delete({ + * where: { + * // ... filter to delete one Article + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__ArticleClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Article. + * @param {ArticleUpdateArgs} args - Arguments to update one Article. + * @example + * // Update one Article + * const article = await prisma.article.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__ArticleClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Articles. + * @param {ArticleDeleteManyArgs} args - Arguments to filter Articles to delete. + * @example + * // Delete a few Articles + * const { count } = await prisma.article.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Articles. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ArticleUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Articles + * const article = await prisma.article.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one Article. + * @param {ArticleUpsertArgs} args - Arguments to update or create a Article. + * @example + * // Update or create a Article + * const article = await prisma.article.upsert({ + * create: { + * // ... data to create a Article + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Article we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__ArticleClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Articles. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ArticleCountArgs} args - Arguments to filter Articles to count. + * @example + * // Count the number of Articles + * const count = await prisma.article.count({ + * where: { + * // ... the filter for the Articles we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset, + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a Article. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ArticleAggregateArgs} 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: Prisma.Subset): Prisma.PrismaPromise> + + /** + * Group by Article. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ArticleGroupByArgs} 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 ArticleGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: ArticleGroupByArgs['orderBy'] } + : { orderBy?: ArticleGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys>>, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.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 Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.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 Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.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 Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetArticleGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the Article model + */ +readonly fields: ArticleFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Article. + * 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__ArticleClient 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): runtime.Types.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): runtime.Types.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): runtime.Types.Utils.JsPromise +} + + + + +/** + * Fields of the Article model + */ +export interface ArticleFieldRefs { + readonly id: Prisma.FieldRef<"Article", 'Int'> + readonly title: Prisma.FieldRef<"Article", 'String'> + readonly slug: Prisma.FieldRef<"Article", 'String'> + readonly content: Prisma.FieldRef<"Article", 'String'> + readonly date: Prisma.FieldRef<"Article", 'String'> + readonly createdAt: Prisma.FieldRef<"Article", 'DateTime'> + readonly updatedAt: Prisma.FieldRef<"Article", 'DateTime'> +} + + +// Custom InputTypes +/** + * Article findUnique + */ +export type ArticleFindUniqueArgs = { + /** + * Select specific fields to fetch from the Article + */ + select?: Prisma.ArticleSelect | null + /** + * Omit specific fields from the Article + */ + omit?: Prisma.ArticleOmit | null + /** + * Filter, which Article to fetch. + */ + where: Prisma.ArticleWhereUniqueInput +} + +/** + * Article findUniqueOrThrow + */ +export type ArticleFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Article + */ + select?: Prisma.ArticleSelect | null + /** + * Omit specific fields from the Article + */ + omit?: Prisma.ArticleOmit | null + /** + * Filter, which Article to fetch. + */ + where: Prisma.ArticleWhereUniqueInput +} + +/** + * Article findFirst + */ +export type ArticleFindFirstArgs = { + /** + * Select specific fields to fetch from the Article + */ + select?: Prisma.ArticleSelect | null + /** + * Omit specific fields from the Article + */ + omit?: Prisma.ArticleOmit | null + /** + * Filter, which Article to fetch. + */ + where?: Prisma.ArticleWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Articles to fetch. + */ + orderBy?: Prisma.ArticleOrderByWithRelationInput | Prisma.ArticleOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Articles. + */ + cursor?: Prisma.ArticleWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Articles 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` Articles. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Articles. + */ + distinct?: Prisma.ArticleScalarFieldEnum | Prisma.ArticleScalarFieldEnum[] +} + +/** + * Article findFirstOrThrow + */ +export type ArticleFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Article + */ + select?: Prisma.ArticleSelect | null + /** + * Omit specific fields from the Article + */ + omit?: Prisma.ArticleOmit | null + /** + * Filter, which Article to fetch. + */ + where?: Prisma.ArticleWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Articles to fetch. + */ + orderBy?: Prisma.ArticleOrderByWithRelationInput | Prisma.ArticleOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Articles. + */ + cursor?: Prisma.ArticleWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Articles 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` Articles. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Articles. + */ + distinct?: Prisma.ArticleScalarFieldEnum | Prisma.ArticleScalarFieldEnum[] +} + +/** + * Article findMany + */ +export type ArticleFindManyArgs = { + /** + * Select specific fields to fetch from the Article + */ + select?: Prisma.ArticleSelect | null + /** + * Omit specific fields from the Article + */ + omit?: Prisma.ArticleOmit | null + /** + * Filter, which Articles to fetch. + */ + where?: Prisma.ArticleWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Articles to fetch. + */ + orderBy?: Prisma.ArticleOrderByWithRelationInput | Prisma.ArticleOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Articles. + */ + cursor?: Prisma.ArticleWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Articles 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` Articles. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Articles. + */ + distinct?: Prisma.ArticleScalarFieldEnum | Prisma.ArticleScalarFieldEnum[] +} + +/** + * Article create + */ +export type ArticleCreateArgs = { + /** + * Select specific fields to fetch from the Article + */ + select?: Prisma.ArticleSelect | null + /** + * Omit specific fields from the Article + */ + omit?: Prisma.ArticleOmit | null + /** + * The data needed to create a Article. + */ + data: Prisma.XOR +} + +/** + * Article createMany + */ +export type ArticleCreateManyArgs = { + /** + * The data used to create many Articles. + */ + data: Prisma.ArticleCreateManyInput | Prisma.ArticleCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * Article update + */ +export type ArticleUpdateArgs = { + /** + * Select specific fields to fetch from the Article + */ + select?: Prisma.ArticleSelect | null + /** + * Omit specific fields from the Article + */ + omit?: Prisma.ArticleOmit | null + /** + * The data needed to update a Article. + */ + data: Prisma.XOR + /** + * Choose, which Article to update. + */ + where: Prisma.ArticleWhereUniqueInput +} + +/** + * Article updateMany + */ +export type ArticleUpdateManyArgs = { + /** + * The data used to update Articles. + */ + data: Prisma.XOR + /** + * Filter which Articles to update + */ + where?: Prisma.ArticleWhereInput + /** + * Limit how many Articles to update. + */ + limit?: number +} + +/** + * Article upsert + */ +export type ArticleUpsertArgs = { + /** + * Select specific fields to fetch from the Article + */ + select?: Prisma.ArticleSelect | null + /** + * Omit specific fields from the Article + */ + omit?: Prisma.ArticleOmit | null + /** + * The filter to search for the Article to update in case it exists. + */ + where: Prisma.ArticleWhereUniqueInput + /** + * In case the Article found by the `where` argument doesn't exist, create a new Article with this data. + */ + create: Prisma.XOR + /** + * In case the Article was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * Article delete + */ +export type ArticleDeleteArgs = { + /** + * Select specific fields to fetch from the Article + */ + select?: Prisma.ArticleSelect | null + /** + * Omit specific fields from the Article + */ + omit?: Prisma.ArticleOmit | null + /** + * Filter which Article to delete. + */ + where: Prisma.ArticleWhereUniqueInput +} + +/** + * Article deleteMany + */ +export type ArticleDeleteManyArgs = { + /** + * Filter which Articles to delete + */ + where?: Prisma.ArticleWhereInput + /** + * Limit how many Articles to delete. + */ + limit?: number +} + +/** + * Article without action + */ +export type ArticleDefaultArgs = { + /** + * Select specific fields to fetch from the Article + */ + select?: Prisma.ArticleSelect | null + /** + * Omit specific fields from the Article + */ + omit?: Prisma.ArticleOmit | null +} diff --git a/generated/prisma/models/Indicator.ts b/generated/prisma/models/Indicator.ts new file mode 100644 index 0000000..9a46f2b --- /dev/null +++ b/generated/prisma/models/Indicator.ts @@ -0,0 +1,1104 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Indicator` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/client" +import type * as $Enums from "../enums.ts" +import type * as Prisma from "../internal/prismaNamespace.ts" + +/** + * Model Indicator + * + */ +export type IndicatorModel = runtime.Types.Result.DefaultSelection + +export type AggregateIndicator = { + _count: IndicatorCountAggregateOutputType | null + _avg: IndicatorAvgAggregateOutputType | null + _sum: IndicatorSumAggregateOutputType | null + _min: IndicatorMinAggregateOutputType | null + _max: IndicatorMaxAggregateOutputType | null +} + +export type IndicatorAvgAggregateOutputType = { + id: number | null +} + +export type IndicatorSumAggregateOutputType = { + id: number | null +} + +export type IndicatorMinAggregateOutputType = { + id: number | null + name: string | null + groupName: string | null + createdAt: Date | null + updatedAt: Date | null +} + +export type IndicatorMaxAggregateOutputType = { + id: number | null + name: string | null + groupName: string | null + createdAt: Date | null + updatedAt: Date | null +} + +export type IndicatorCountAggregateOutputType = { + id: number + name: number + groupName: number + data: number + createdAt: number + updatedAt: number + _all: number +} + + +export type IndicatorAvgAggregateInputType = { + id?: true +} + +export type IndicatorSumAggregateInputType = { + id?: true +} + +export type IndicatorMinAggregateInputType = { + id?: true + name?: true + groupName?: true + createdAt?: true + updatedAt?: true +} + +export type IndicatorMaxAggregateInputType = { + id?: true + name?: true + groupName?: true + createdAt?: true + updatedAt?: true +} + +export type IndicatorCountAggregateInputType = { + id?: true + name?: true + groupName?: true + data?: true + createdAt?: true + updatedAt?: true + _all?: true +} + +export type IndicatorAggregateArgs = { + /** + * Filter which Indicator to aggregate. + */ + where?: Prisma.IndicatorWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Indicators to fetch. + */ + orderBy?: Prisma.IndicatorOrderByWithRelationInput | Prisma.IndicatorOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.IndicatorWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Indicators 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` Indicators. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Indicators + **/ + _count?: true | IndicatorCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: IndicatorAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: IndicatorSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: IndicatorMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: IndicatorMaxAggregateInputType +} + +export type GetIndicatorAggregateType = { + [P in keyof T & keyof AggregateIndicator]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type IndicatorGroupByArgs = { + where?: Prisma.IndicatorWhereInput + orderBy?: Prisma.IndicatorOrderByWithAggregationInput | Prisma.IndicatorOrderByWithAggregationInput[] + by: Prisma.IndicatorScalarFieldEnum[] | Prisma.IndicatorScalarFieldEnum + having?: Prisma.IndicatorScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: IndicatorCountAggregateInputType | true + _avg?: IndicatorAvgAggregateInputType + _sum?: IndicatorSumAggregateInputType + _min?: IndicatorMinAggregateInputType + _max?: IndicatorMaxAggregateInputType +} + +export type IndicatorGroupByOutputType = { + id: number + name: string + groupName: string + data: runtime.JsonValue + createdAt: Date + updatedAt: Date + _count: IndicatorCountAggregateOutputType | null + _avg: IndicatorAvgAggregateOutputType | null + _sum: IndicatorSumAggregateOutputType | null + _min: IndicatorMinAggregateOutputType | null + _max: IndicatorMaxAggregateOutputType | null +} + +export type GetIndicatorGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof IndicatorGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type IndicatorWhereInput = { + AND?: Prisma.IndicatorWhereInput | Prisma.IndicatorWhereInput[] + OR?: Prisma.IndicatorWhereInput[] + NOT?: Prisma.IndicatorWhereInput | Prisma.IndicatorWhereInput[] + id?: Prisma.IntFilter<"Indicator"> | number + name?: Prisma.StringFilter<"Indicator"> | string + groupName?: Prisma.StringFilter<"Indicator"> | string + data?: Prisma.JsonFilter<"Indicator"> + createdAt?: Prisma.DateTimeFilter<"Indicator"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"Indicator"> | Date | string +} + +export type IndicatorOrderByWithRelationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + groupName?: Prisma.SortOrder + data?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + _relevance?: Prisma.IndicatorOrderByRelevanceInput +} + +export type IndicatorWhereUniqueInput = Prisma.AtLeast<{ + id?: number + AND?: Prisma.IndicatorWhereInput | Prisma.IndicatorWhereInput[] + OR?: Prisma.IndicatorWhereInput[] + NOT?: Prisma.IndicatorWhereInput | Prisma.IndicatorWhereInput[] + name?: Prisma.StringFilter<"Indicator"> | string + groupName?: Prisma.StringFilter<"Indicator"> | string + data?: Prisma.JsonFilter<"Indicator"> + createdAt?: Prisma.DateTimeFilter<"Indicator"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"Indicator"> | Date | string +}, "id"> + +export type IndicatorOrderByWithAggregationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + groupName?: Prisma.SortOrder + data?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + _count?: Prisma.IndicatorCountOrderByAggregateInput + _avg?: Prisma.IndicatorAvgOrderByAggregateInput + _max?: Prisma.IndicatorMaxOrderByAggregateInput + _min?: Prisma.IndicatorMinOrderByAggregateInput + _sum?: Prisma.IndicatorSumOrderByAggregateInput +} + +export type IndicatorScalarWhereWithAggregatesInput = { + AND?: Prisma.IndicatorScalarWhereWithAggregatesInput | Prisma.IndicatorScalarWhereWithAggregatesInput[] + OR?: Prisma.IndicatorScalarWhereWithAggregatesInput[] + NOT?: Prisma.IndicatorScalarWhereWithAggregatesInput | Prisma.IndicatorScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"Indicator"> | number + name?: Prisma.StringWithAggregatesFilter<"Indicator"> | string + groupName?: Prisma.StringWithAggregatesFilter<"Indicator"> | string + data?: Prisma.JsonWithAggregatesFilter<"Indicator"> + createdAt?: Prisma.DateTimeWithAggregatesFilter<"Indicator"> | Date | string + updatedAt?: Prisma.DateTimeWithAggregatesFilter<"Indicator"> | Date | string +} + +export type IndicatorCreateInput = { + name: string + groupName: string + data: Prisma.JsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string +} + +export type IndicatorUncheckedCreateInput = { + id?: number + name: string + groupName: string + data: Prisma.JsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string +} + +export type IndicatorUpdateInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + groupName?: Prisma.StringFieldUpdateOperationsInput | string + data?: Prisma.JsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type IndicatorUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + groupName?: Prisma.StringFieldUpdateOperationsInput | string + data?: Prisma.JsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type IndicatorCreateManyInput = { + id?: number + name: string + groupName: string + data: Prisma.JsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string +} + +export type IndicatorUpdateManyMutationInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + groupName?: Prisma.StringFieldUpdateOperationsInput | string + data?: Prisma.JsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type IndicatorUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + groupName?: Prisma.StringFieldUpdateOperationsInput | string + data?: Prisma.JsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type IndicatorOrderByRelevanceInput = { + fields: Prisma.IndicatorOrderByRelevanceFieldEnum | Prisma.IndicatorOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type IndicatorCountOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + groupName?: Prisma.SortOrder + data?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type IndicatorAvgOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type IndicatorMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + groupName?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type IndicatorMinOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + groupName?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type IndicatorSumOrderByAggregateInput = { + id?: Prisma.SortOrder +} + + + +export type IndicatorSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + name?: boolean + groupName?: boolean + data?: boolean + createdAt?: boolean + updatedAt?: boolean +}, ExtArgs["result"]["indicator"]> + + + +export type IndicatorSelectScalar = { + id?: boolean + name?: boolean + groupName?: boolean + data?: boolean + createdAt?: boolean + updatedAt?: boolean +} + +export type IndicatorOmit = runtime.Types.Extensions.GetOmit<"id" | "name" | "groupName" | "data" | "createdAt" | "updatedAt", ExtArgs["result"]["indicator"]> + +export type $IndicatorPayload = { + name: "Indicator" + objects: {} + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + name: string + groupName: string + data: runtime.JsonValue + createdAt: Date + updatedAt: Date + }, ExtArgs["result"]["indicator"]> + composites: {} +} + +export type IndicatorGetPayload = runtime.Types.Result.GetResult + +export type IndicatorCountArgs = + Omit & { + select?: IndicatorCountAggregateInputType | true + } + +export interface IndicatorDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Indicator'], meta: { name: 'Indicator' } } + /** + * Find zero or one Indicator that matches the filter. + * @param {IndicatorFindUniqueArgs} args - Arguments to find a Indicator + * @example + * // Get one Indicator + * const indicator = await prisma.indicator.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__IndicatorClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Indicator that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {IndicatorFindUniqueOrThrowArgs} args - Arguments to find a Indicator + * @example + * // Get one Indicator + * const indicator = await prisma.indicator.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__IndicatorClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Indicator 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 {IndicatorFindFirstArgs} args - Arguments to find a Indicator + * @example + * // Get one Indicator + * const indicator = await prisma.indicator.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__IndicatorClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Indicator 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 {IndicatorFindFirstOrThrowArgs} args - Arguments to find a Indicator + * @example + * // Get one Indicator + * const indicator = await prisma.indicator.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__IndicatorClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Indicators 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 {IndicatorFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Indicators + * const indicators = await prisma.indicator.findMany() + * + * // Get first 10 Indicators + * const indicators = await prisma.indicator.findMany({ take: 10 }) + * + * // Only select the `id` + * const indicatorWithIdOnly = await prisma.indicator.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Indicator. + * @param {IndicatorCreateArgs} args - Arguments to create a Indicator. + * @example + * // Create one Indicator + * const Indicator = await prisma.indicator.create({ + * data: { + * // ... data to create a Indicator + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__IndicatorClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Indicators. + * @param {IndicatorCreateManyArgs} args - Arguments to create many Indicators. + * @example + * // Create many Indicators + * const indicator = await prisma.indicator.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a Indicator. + * @param {IndicatorDeleteArgs} args - Arguments to delete one Indicator. + * @example + * // Delete one Indicator + * const Indicator = await prisma.indicator.delete({ + * where: { + * // ... filter to delete one Indicator + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__IndicatorClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Indicator. + * @param {IndicatorUpdateArgs} args - Arguments to update one Indicator. + * @example + * // Update one Indicator + * const indicator = await prisma.indicator.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__IndicatorClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Indicators. + * @param {IndicatorDeleteManyArgs} args - Arguments to filter Indicators to delete. + * @example + * // Delete a few Indicators + * const { count } = await prisma.indicator.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Indicators. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {IndicatorUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Indicators + * const indicator = await prisma.indicator.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one Indicator. + * @param {IndicatorUpsertArgs} args - Arguments to update or create a Indicator. + * @example + * // Update or create a Indicator + * const indicator = await prisma.indicator.upsert({ + * create: { + * // ... data to create a Indicator + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Indicator we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__IndicatorClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Indicators. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {IndicatorCountArgs} args - Arguments to filter Indicators to count. + * @example + * // Count the number of Indicators + * const count = await prisma.indicator.count({ + * where: { + * // ... the filter for the Indicators we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset, + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a Indicator. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {IndicatorAggregateArgs} 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: Prisma.Subset): Prisma.PrismaPromise> + + /** + * Group by Indicator. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {IndicatorGroupByArgs} 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 IndicatorGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: IndicatorGroupByArgs['orderBy'] } + : { orderBy?: IndicatorGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys>>, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.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 Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.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 Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.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 Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetIndicatorGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the Indicator model + */ +readonly fields: IndicatorFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Indicator. + * 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__IndicatorClient 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): runtime.Types.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): runtime.Types.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): runtime.Types.Utils.JsPromise +} + + + + +/** + * Fields of the Indicator model + */ +export interface IndicatorFieldRefs { + readonly id: Prisma.FieldRef<"Indicator", 'Int'> + readonly name: Prisma.FieldRef<"Indicator", 'String'> + readonly groupName: Prisma.FieldRef<"Indicator", 'String'> + readonly data: Prisma.FieldRef<"Indicator", 'Json'> + readonly createdAt: Prisma.FieldRef<"Indicator", 'DateTime'> + readonly updatedAt: Prisma.FieldRef<"Indicator", 'DateTime'> +} + + +// Custom InputTypes +/** + * Indicator findUnique + */ +export type IndicatorFindUniqueArgs = { + /** + * Select specific fields to fetch from the Indicator + */ + select?: Prisma.IndicatorSelect | null + /** + * Omit specific fields from the Indicator + */ + omit?: Prisma.IndicatorOmit | null + /** + * Filter, which Indicator to fetch. + */ + where: Prisma.IndicatorWhereUniqueInput +} + +/** + * Indicator findUniqueOrThrow + */ +export type IndicatorFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Indicator + */ + select?: Prisma.IndicatorSelect | null + /** + * Omit specific fields from the Indicator + */ + omit?: Prisma.IndicatorOmit | null + /** + * Filter, which Indicator to fetch. + */ + where: Prisma.IndicatorWhereUniqueInput +} + +/** + * Indicator findFirst + */ +export type IndicatorFindFirstArgs = { + /** + * Select specific fields to fetch from the Indicator + */ + select?: Prisma.IndicatorSelect | null + /** + * Omit specific fields from the Indicator + */ + omit?: Prisma.IndicatorOmit | null + /** + * Filter, which Indicator to fetch. + */ + where?: Prisma.IndicatorWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Indicators to fetch. + */ + orderBy?: Prisma.IndicatorOrderByWithRelationInput | Prisma.IndicatorOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Indicators. + */ + cursor?: Prisma.IndicatorWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Indicators 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` Indicators. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Indicators. + */ + distinct?: Prisma.IndicatorScalarFieldEnum | Prisma.IndicatorScalarFieldEnum[] +} + +/** + * Indicator findFirstOrThrow + */ +export type IndicatorFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Indicator + */ + select?: Prisma.IndicatorSelect | null + /** + * Omit specific fields from the Indicator + */ + omit?: Prisma.IndicatorOmit | null + /** + * Filter, which Indicator to fetch. + */ + where?: Prisma.IndicatorWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Indicators to fetch. + */ + orderBy?: Prisma.IndicatorOrderByWithRelationInput | Prisma.IndicatorOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Indicators. + */ + cursor?: Prisma.IndicatorWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Indicators 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` Indicators. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Indicators. + */ + distinct?: Prisma.IndicatorScalarFieldEnum | Prisma.IndicatorScalarFieldEnum[] +} + +/** + * Indicator findMany + */ +export type IndicatorFindManyArgs = { + /** + * Select specific fields to fetch from the Indicator + */ + select?: Prisma.IndicatorSelect | null + /** + * Omit specific fields from the Indicator + */ + omit?: Prisma.IndicatorOmit | null + /** + * Filter, which Indicators to fetch. + */ + where?: Prisma.IndicatorWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Indicators to fetch. + */ + orderBy?: Prisma.IndicatorOrderByWithRelationInput | Prisma.IndicatorOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Indicators. + */ + cursor?: Prisma.IndicatorWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Indicators 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` Indicators. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Indicators. + */ + distinct?: Prisma.IndicatorScalarFieldEnum | Prisma.IndicatorScalarFieldEnum[] +} + +/** + * Indicator create + */ +export type IndicatorCreateArgs = { + /** + * Select specific fields to fetch from the Indicator + */ + select?: Prisma.IndicatorSelect | null + /** + * Omit specific fields from the Indicator + */ + omit?: Prisma.IndicatorOmit | null + /** + * The data needed to create a Indicator. + */ + data: Prisma.XOR +} + +/** + * Indicator createMany + */ +export type IndicatorCreateManyArgs = { + /** + * The data used to create many Indicators. + */ + data: Prisma.IndicatorCreateManyInput | Prisma.IndicatorCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * Indicator update + */ +export type IndicatorUpdateArgs = { + /** + * Select specific fields to fetch from the Indicator + */ + select?: Prisma.IndicatorSelect | null + /** + * Omit specific fields from the Indicator + */ + omit?: Prisma.IndicatorOmit | null + /** + * The data needed to update a Indicator. + */ + data: Prisma.XOR + /** + * Choose, which Indicator to update. + */ + where: Prisma.IndicatorWhereUniqueInput +} + +/** + * Indicator updateMany + */ +export type IndicatorUpdateManyArgs = { + /** + * The data used to update Indicators. + */ + data: Prisma.XOR + /** + * Filter which Indicators to update + */ + where?: Prisma.IndicatorWhereInput + /** + * Limit how many Indicators to update. + */ + limit?: number +} + +/** + * Indicator upsert + */ +export type IndicatorUpsertArgs = { + /** + * Select specific fields to fetch from the Indicator + */ + select?: Prisma.IndicatorSelect | null + /** + * Omit specific fields from the Indicator + */ + omit?: Prisma.IndicatorOmit | null + /** + * The filter to search for the Indicator to update in case it exists. + */ + where: Prisma.IndicatorWhereUniqueInput + /** + * In case the Indicator found by the `where` argument doesn't exist, create a new Indicator with this data. + */ + create: Prisma.XOR + /** + * In case the Indicator was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * Indicator delete + */ +export type IndicatorDeleteArgs = { + /** + * Select specific fields to fetch from the Indicator + */ + select?: Prisma.IndicatorSelect | null + /** + * Omit specific fields from the Indicator + */ + omit?: Prisma.IndicatorOmit | null + /** + * Filter which Indicator to delete. + */ + where: Prisma.IndicatorWhereUniqueInput +} + +/** + * Indicator deleteMany + */ +export type IndicatorDeleteManyArgs = { + /** + * Filter which Indicators to delete + */ + where?: Prisma.IndicatorWhereInput + /** + * Limit how many Indicators to delete. + */ + limit?: number +} + +/** + * Indicator without action + */ +export type IndicatorDefaultArgs = { + /** + * Select specific fields to fetch from the Indicator + */ + select?: Prisma.IndicatorSelect | null + /** + * Omit specific fields from the Indicator + */ + omit?: Prisma.IndicatorOmit | null +} diff --git a/generated/prisma/models/SowInventory.ts b/generated/prisma/models/SowInventory.ts new file mode 100644 index 0000000..55eb414 --- /dev/null +++ b/generated/prisma/models/SowInventory.ts @@ -0,0 +1,1090 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `SowInventory` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/client" +import type * as $Enums from "../enums.ts" +import type * as Prisma from "../internal/prismaNamespace.ts" + +/** + * Model SowInventory + * + */ +export type SowInventoryModel = runtime.Types.Result.DefaultSelection + +export type AggregateSowInventory = { + _count: SowInventoryCountAggregateOutputType | null + _avg: SowInventoryAvgAggregateOutputType | null + _sum: SowInventorySumAggregateOutputType | null + _min: SowInventoryMinAggregateOutputType | null + _max: SowInventoryMaxAggregateOutputType | null +} + +export type SowInventoryAvgAggregateOutputType = { + id: number | null + inventory: number | null +} + +export type SowInventorySumAggregateOutputType = { + id: number | null + inventory: number | null +} + +export type SowInventoryMinAggregateOutputType = { + id: number | null + month: string | null + inventory: number | null + createdAt: Date | null + updatedAt: Date | null +} + +export type SowInventoryMaxAggregateOutputType = { + id: number | null + month: string | null + inventory: number | null + createdAt: Date | null + updatedAt: Date | null +} + +export type SowInventoryCountAggregateOutputType = { + id: number + month: number + inventory: number + createdAt: number + updatedAt: number + _all: number +} + + +export type SowInventoryAvgAggregateInputType = { + id?: true + inventory?: true +} + +export type SowInventorySumAggregateInputType = { + id?: true + inventory?: true +} + +export type SowInventoryMinAggregateInputType = { + id?: true + month?: true + inventory?: true + createdAt?: true + updatedAt?: true +} + +export type SowInventoryMaxAggregateInputType = { + id?: true + month?: true + inventory?: true + createdAt?: true + updatedAt?: true +} + +export type SowInventoryCountAggregateInputType = { + id?: true + month?: true + inventory?: true + createdAt?: true + updatedAt?: true + _all?: true +} + +export type SowInventoryAggregateArgs = { + /** + * Filter which SowInventory to aggregate. + */ + where?: Prisma.SowInventoryWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of SowInventories to fetch. + */ + orderBy?: Prisma.SowInventoryOrderByWithRelationInput | Prisma.SowInventoryOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.SowInventoryWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` SowInventories 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` SowInventories. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned SowInventories + **/ + _count?: true | SowInventoryCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: SowInventoryAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: SowInventorySumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: SowInventoryMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: SowInventoryMaxAggregateInputType +} + +export type GetSowInventoryAggregateType = { + [P in keyof T & keyof AggregateSowInventory]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type SowInventoryGroupByArgs = { + where?: Prisma.SowInventoryWhereInput + orderBy?: Prisma.SowInventoryOrderByWithAggregationInput | Prisma.SowInventoryOrderByWithAggregationInput[] + by: Prisma.SowInventoryScalarFieldEnum[] | Prisma.SowInventoryScalarFieldEnum + having?: Prisma.SowInventoryScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: SowInventoryCountAggregateInputType | true + _avg?: SowInventoryAvgAggregateInputType + _sum?: SowInventorySumAggregateInputType + _min?: SowInventoryMinAggregateInputType + _max?: SowInventoryMaxAggregateInputType +} + +export type SowInventoryGroupByOutputType = { + id: number + month: string + inventory: number + createdAt: Date + updatedAt: Date + _count: SowInventoryCountAggregateOutputType | null + _avg: SowInventoryAvgAggregateOutputType | null + _sum: SowInventorySumAggregateOutputType | null + _min: SowInventoryMinAggregateOutputType | null + _max: SowInventoryMaxAggregateOutputType | null +} + +export type GetSowInventoryGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof SowInventoryGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type SowInventoryWhereInput = { + AND?: Prisma.SowInventoryWhereInput | Prisma.SowInventoryWhereInput[] + OR?: Prisma.SowInventoryWhereInput[] + NOT?: Prisma.SowInventoryWhereInput | Prisma.SowInventoryWhereInput[] + id?: Prisma.IntFilter<"SowInventory"> | number + month?: Prisma.StringFilter<"SowInventory"> | string + inventory?: Prisma.IntFilter<"SowInventory"> | number + createdAt?: Prisma.DateTimeFilter<"SowInventory"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"SowInventory"> | Date | string +} + +export type SowInventoryOrderByWithRelationInput = { + id?: Prisma.SortOrder + month?: Prisma.SortOrder + inventory?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + _relevance?: Prisma.SowInventoryOrderByRelevanceInput +} + +export type SowInventoryWhereUniqueInput = Prisma.AtLeast<{ + id?: number + month?: string + AND?: Prisma.SowInventoryWhereInput | Prisma.SowInventoryWhereInput[] + OR?: Prisma.SowInventoryWhereInput[] + NOT?: Prisma.SowInventoryWhereInput | Prisma.SowInventoryWhereInput[] + inventory?: Prisma.IntFilter<"SowInventory"> | number + createdAt?: Prisma.DateTimeFilter<"SowInventory"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"SowInventory"> | Date | string +}, "id" | "month"> + +export type SowInventoryOrderByWithAggregationInput = { + id?: Prisma.SortOrder + month?: Prisma.SortOrder + inventory?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + _count?: Prisma.SowInventoryCountOrderByAggregateInput + _avg?: Prisma.SowInventoryAvgOrderByAggregateInput + _max?: Prisma.SowInventoryMaxOrderByAggregateInput + _min?: Prisma.SowInventoryMinOrderByAggregateInput + _sum?: Prisma.SowInventorySumOrderByAggregateInput +} + +export type SowInventoryScalarWhereWithAggregatesInput = { + AND?: Prisma.SowInventoryScalarWhereWithAggregatesInput | Prisma.SowInventoryScalarWhereWithAggregatesInput[] + OR?: Prisma.SowInventoryScalarWhereWithAggregatesInput[] + NOT?: Prisma.SowInventoryScalarWhereWithAggregatesInput | Prisma.SowInventoryScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"SowInventory"> | number + month?: Prisma.StringWithAggregatesFilter<"SowInventory"> | string + inventory?: Prisma.IntWithAggregatesFilter<"SowInventory"> | number + createdAt?: Prisma.DateTimeWithAggregatesFilter<"SowInventory"> | Date | string + updatedAt?: Prisma.DateTimeWithAggregatesFilter<"SowInventory"> | Date | string +} + +export type SowInventoryCreateInput = { + month: string + inventory: number + createdAt?: Date | string + updatedAt?: Date | string +} + +export type SowInventoryUncheckedCreateInput = { + id?: number + month: string + inventory: number + createdAt?: Date | string + updatedAt?: Date | string +} + +export type SowInventoryUpdateInput = { + month?: Prisma.StringFieldUpdateOperationsInput | string + inventory?: Prisma.IntFieldUpdateOperationsInput | number + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type SowInventoryUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + month?: Prisma.StringFieldUpdateOperationsInput | string + inventory?: Prisma.IntFieldUpdateOperationsInput | number + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type SowInventoryCreateManyInput = { + id?: number + month: string + inventory: number + createdAt?: Date | string + updatedAt?: Date | string +} + +export type SowInventoryUpdateManyMutationInput = { + month?: Prisma.StringFieldUpdateOperationsInput | string + inventory?: Prisma.IntFieldUpdateOperationsInput | number + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type SowInventoryUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + month?: Prisma.StringFieldUpdateOperationsInput | string + inventory?: Prisma.IntFieldUpdateOperationsInput | number + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type SowInventoryOrderByRelevanceInput = { + fields: Prisma.SowInventoryOrderByRelevanceFieldEnum | Prisma.SowInventoryOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type SowInventoryCountOrderByAggregateInput = { + id?: Prisma.SortOrder + month?: Prisma.SortOrder + inventory?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type SowInventoryAvgOrderByAggregateInput = { + id?: Prisma.SortOrder + inventory?: Prisma.SortOrder +} + +export type SowInventoryMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + month?: Prisma.SortOrder + inventory?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type SowInventoryMinOrderByAggregateInput = { + id?: Prisma.SortOrder + month?: Prisma.SortOrder + inventory?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type SowInventorySumOrderByAggregateInput = { + id?: Prisma.SortOrder + inventory?: Prisma.SortOrder +} + + + +export type SowInventorySelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + month?: boolean + inventory?: boolean + createdAt?: boolean + updatedAt?: boolean +}, ExtArgs["result"]["sowInventory"]> + + + +export type SowInventorySelectScalar = { + id?: boolean + month?: boolean + inventory?: boolean + createdAt?: boolean + updatedAt?: boolean +} + +export type SowInventoryOmit = runtime.Types.Extensions.GetOmit<"id" | "month" | "inventory" | "createdAt" | "updatedAt", ExtArgs["result"]["sowInventory"]> + +export type $SowInventoryPayload = { + name: "SowInventory" + objects: {} + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + month: string + inventory: number + createdAt: Date + updatedAt: Date + }, ExtArgs["result"]["sowInventory"]> + composites: {} +} + +export type SowInventoryGetPayload = runtime.Types.Result.GetResult + +export type SowInventoryCountArgs = + Omit & { + select?: SowInventoryCountAggregateInputType | true + } + +export interface SowInventoryDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['SowInventory'], meta: { name: 'SowInventory' } } + /** + * Find zero or one SowInventory that matches the filter. + * @param {SowInventoryFindUniqueArgs} args - Arguments to find a SowInventory + * @example + * // Get one SowInventory + * const sowInventory = await prisma.sowInventory.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__SowInventoryClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one SowInventory that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {SowInventoryFindUniqueOrThrowArgs} args - Arguments to find a SowInventory + * @example + * // Get one SowInventory + * const sowInventory = await prisma.sowInventory.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__SowInventoryClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first SowInventory 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 {SowInventoryFindFirstArgs} args - Arguments to find a SowInventory + * @example + * // Get one SowInventory + * const sowInventory = await prisma.sowInventory.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__SowInventoryClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first SowInventory 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 {SowInventoryFindFirstOrThrowArgs} args - Arguments to find a SowInventory + * @example + * // Get one SowInventory + * const sowInventory = await prisma.sowInventory.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__SowInventoryClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more SowInventories 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 {SowInventoryFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all SowInventories + * const sowInventories = await prisma.sowInventory.findMany() + * + * // Get first 10 SowInventories + * const sowInventories = await prisma.sowInventory.findMany({ take: 10 }) + * + * // Only select the `id` + * const sowInventoryWithIdOnly = await prisma.sowInventory.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a SowInventory. + * @param {SowInventoryCreateArgs} args - Arguments to create a SowInventory. + * @example + * // Create one SowInventory + * const SowInventory = await prisma.sowInventory.create({ + * data: { + * // ... data to create a SowInventory + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__SowInventoryClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many SowInventories. + * @param {SowInventoryCreateManyArgs} args - Arguments to create many SowInventories. + * @example + * // Create many SowInventories + * const sowInventory = await prisma.sowInventory.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a SowInventory. + * @param {SowInventoryDeleteArgs} args - Arguments to delete one SowInventory. + * @example + * // Delete one SowInventory + * const SowInventory = await prisma.sowInventory.delete({ + * where: { + * // ... filter to delete one SowInventory + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__SowInventoryClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one SowInventory. + * @param {SowInventoryUpdateArgs} args - Arguments to update one SowInventory. + * @example + * // Update one SowInventory + * const sowInventory = await prisma.sowInventory.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__SowInventoryClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more SowInventories. + * @param {SowInventoryDeleteManyArgs} args - Arguments to filter SowInventories to delete. + * @example + * // Delete a few SowInventories + * const { count } = await prisma.sowInventory.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more SowInventories. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {SowInventoryUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many SowInventories + * const sowInventory = await prisma.sowInventory.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one SowInventory. + * @param {SowInventoryUpsertArgs} args - Arguments to update or create a SowInventory. + * @example + * // Update or create a SowInventory + * const sowInventory = await prisma.sowInventory.upsert({ + * create: { + * // ... data to create a SowInventory + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the SowInventory we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__SowInventoryClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of SowInventories. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {SowInventoryCountArgs} args - Arguments to filter SowInventories to count. + * @example + * // Count the number of SowInventories + * const count = await prisma.sowInventory.count({ + * where: { + * // ... the filter for the SowInventories we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset, + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a SowInventory. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {SowInventoryAggregateArgs} 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: Prisma.Subset): Prisma.PrismaPromise> + + /** + * Group by SowInventory. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {SowInventoryGroupByArgs} 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 SowInventoryGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: SowInventoryGroupByArgs['orderBy'] } + : { orderBy?: SowInventoryGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys>>, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.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 Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.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 Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.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 Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetSowInventoryGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the SowInventory model + */ +readonly fields: SowInventoryFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for SowInventory. + * 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__SowInventoryClient 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): runtime.Types.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): runtime.Types.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): runtime.Types.Utils.JsPromise +} + + + + +/** + * Fields of the SowInventory model + */ +export interface SowInventoryFieldRefs { + readonly id: Prisma.FieldRef<"SowInventory", 'Int'> + readonly month: Prisma.FieldRef<"SowInventory", 'String'> + readonly inventory: Prisma.FieldRef<"SowInventory", 'Int'> + readonly createdAt: Prisma.FieldRef<"SowInventory", 'DateTime'> + readonly updatedAt: Prisma.FieldRef<"SowInventory", 'DateTime'> +} + + +// Custom InputTypes +/** + * SowInventory findUnique + */ +export type SowInventoryFindUniqueArgs = { + /** + * Select specific fields to fetch from the SowInventory + */ + select?: Prisma.SowInventorySelect | null + /** + * Omit specific fields from the SowInventory + */ + omit?: Prisma.SowInventoryOmit | null + /** + * Filter, which SowInventory to fetch. + */ + where: Prisma.SowInventoryWhereUniqueInput +} + +/** + * SowInventory findUniqueOrThrow + */ +export type SowInventoryFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the SowInventory + */ + select?: Prisma.SowInventorySelect | null + /** + * Omit specific fields from the SowInventory + */ + omit?: Prisma.SowInventoryOmit | null + /** + * Filter, which SowInventory to fetch. + */ + where: Prisma.SowInventoryWhereUniqueInput +} + +/** + * SowInventory findFirst + */ +export type SowInventoryFindFirstArgs = { + /** + * Select specific fields to fetch from the SowInventory + */ + select?: Prisma.SowInventorySelect | null + /** + * Omit specific fields from the SowInventory + */ + omit?: Prisma.SowInventoryOmit | null + /** + * Filter, which SowInventory to fetch. + */ + where?: Prisma.SowInventoryWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of SowInventories to fetch. + */ + orderBy?: Prisma.SowInventoryOrderByWithRelationInput | Prisma.SowInventoryOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for SowInventories. + */ + cursor?: Prisma.SowInventoryWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` SowInventories 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` SowInventories. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of SowInventories. + */ + distinct?: Prisma.SowInventoryScalarFieldEnum | Prisma.SowInventoryScalarFieldEnum[] +} + +/** + * SowInventory findFirstOrThrow + */ +export type SowInventoryFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the SowInventory + */ + select?: Prisma.SowInventorySelect | null + /** + * Omit specific fields from the SowInventory + */ + omit?: Prisma.SowInventoryOmit | null + /** + * Filter, which SowInventory to fetch. + */ + where?: Prisma.SowInventoryWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of SowInventories to fetch. + */ + orderBy?: Prisma.SowInventoryOrderByWithRelationInput | Prisma.SowInventoryOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for SowInventories. + */ + cursor?: Prisma.SowInventoryWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` SowInventories 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` SowInventories. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of SowInventories. + */ + distinct?: Prisma.SowInventoryScalarFieldEnum | Prisma.SowInventoryScalarFieldEnum[] +} + +/** + * SowInventory findMany + */ +export type SowInventoryFindManyArgs = { + /** + * Select specific fields to fetch from the SowInventory + */ + select?: Prisma.SowInventorySelect | null + /** + * Omit specific fields from the SowInventory + */ + omit?: Prisma.SowInventoryOmit | null + /** + * Filter, which SowInventories to fetch. + */ + where?: Prisma.SowInventoryWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of SowInventories to fetch. + */ + orderBy?: Prisma.SowInventoryOrderByWithRelationInput | Prisma.SowInventoryOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing SowInventories. + */ + cursor?: Prisma.SowInventoryWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` SowInventories 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` SowInventories. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of SowInventories. + */ + distinct?: Prisma.SowInventoryScalarFieldEnum | Prisma.SowInventoryScalarFieldEnum[] +} + +/** + * SowInventory create + */ +export type SowInventoryCreateArgs = { + /** + * Select specific fields to fetch from the SowInventory + */ + select?: Prisma.SowInventorySelect | null + /** + * Omit specific fields from the SowInventory + */ + omit?: Prisma.SowInventoryOmit | null + /** + * The data needed to create a SowInventory. + */ + data: Prisma.XOR +} + +/** + * SowInventory createMany + */ +export type SowInventoryCreateManyArgs = { + /** + * The data used to create many SowInventories. + */ + data: Prisma.SowInventoryCreateManyInput | Prisma.SowInventoryCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * SowInventory update + */ +export type SowInventoryUpdateArgs = { + /** + * Select specific fields to fetch from the SowInventory + */ + select?: Prisma.SowInventorySelect | null + /** + * Omit specific fields from the SowInventory + */ + omit?: Prisma.SowInventoryOmit | null + /** + * The data needed to update a SowInventory. + */ + data: Prisma.XOR + /** + * Choose, which SowInventory to update. + */ + where: Prisma.SowInventoryWhereUniqueInput +} + +/** + * SowInventory updateMany + */ +export type SowInventoryUpdateManyArgs = { + /** + * The data used to update SowInventories. + */ + data: Prisma.XOR + /** + * Filter which SowInventories to update + */ + where?: Prisma.SowInventoryWhereInput + /** + * Limit how many SowInventories to update. + */ + limit?: number +} + +/** + * SowInventory upsert + */ +export type SowInventoryUpsertArgs = { + /** + * Select specific fields to fetch from the SowInventory + */ + select?: Prisma.SowInventorySelect | null + /** + * Omit specific fields from the SowInventory + */ + omit?: Prisma.SowInventoryOmit | null + /** + * The filter to search for the SowInventory to update in case it exists. + */ + where: Prisma.SowInventoryWhereUniqueInput + /** + * In case the SowInventory found by the `where` argument doesn't exist, create a new SowInventory with this data. + */ + create: Prisma.XOR + /** + * In case the SowInventory was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * SowInventory delete + */ +export type SowInventoryDeleteArgs = { + /** + * Select specific fields to fetch from the SowInventory + */ + select?: Prisma.SowInventorySelect | null + /** + * Omit specific fields from the SowInventory + */ + omit?: Prisma.SowInventoryOmit | null + /** + * Filter which SowInventory to delete. + */ + where: Prisma.SowInventoryWhereUniqueInput +} + +/** + * SowInventory deleteMany + */ +export type SowInventoryDeleteManyArgs = { + /** + * Filter which SowInventories to delete + */ + where?: Prisma.SowInventoryWhereInput + /** + * Limit how many SowInventories to delete. + */ + limit?: number +} + +/** + * SowInventory without action + */ +export type SowInventoryDefaultArgs = { + /** + * Select specific fields to fetch from the SowInventory + */ + select?: Prisma.SowInventorySelect | null + /** + * Omit specific fields from the SowInventory + */ + omit?: Prisma.SowInventoryOmit | null +} diff --git a/generated/prisma/models/Strategy.ts b/generated/prisma/models/Strategy.ts new file mode 100644 index 0000000..b08f5ab --- /dev/null +++ b/generated/prisma/models/Strategy.ts @@ -0,0 +1,1104 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Strategy` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/client" +import type * as $Enums from "../enums.ts" +import type * as Prisma from "../internal/prismaNamespace.ts" + +/** + * Model Strategy + * + */ +export type StrategyModel = runtime.Types.Result.DefaultSelection + +export type AggregateStrategy = { + _count: StrategyCountAggregateOutputType | null + _avg: StrategyAvgAggregateOutputType | null + _sum: StrategySumAggregateOutputType | null + _min: StrategyMinAggregateOutputType | null + _max: StrategyMaxAggregateOutputType | null +} + +export type StrategyAvgAggregateOutputType = { + id: number | null +} + +export type StrategySumAggregateOutputType = { + id: number | null +} + +export type StrategyMinAggregateOutputType = { + id: number | null + name: string | null + description: string | null + createdAt: Date | null + updatedAt: Date | null +} + +export type StrategyMaxAggregateOutputType = { + id: number | null + name: string | null + description: string | null + createdAt: Date | null + updatedAt: Date | null +} + +export type StrategyCountAggregateOutputType = { + id: number + name: number + description: number + data: number + createdAt: number + updatedAt: number + _all: number +} + + +export type StrategyAvgAggregateInputType = { + id?: true +} + +export type StrategySumAggregateInputType = { + id?: true +} + +export type StrategyMinAggregateInputType = { + id?: true + name?: true + description?: true + createdAt?: true + updatedAt?: true +} + +export type StrategyMaxAggregateInputType = { + id?: true + name?: true + description?: true + createdAt?: true + updatedAt?: true +} + +export type StrategyCountAggregateInputType = { + id?: true + name?: true + description?: true + data?: true + createdAt?: true + updatedAt?: true + _all?: true +} + +export type StrategyAggregateArgs = { + /** + * Filter which Strategy to aggregate. + */ + where?: Prisma.StrategyWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Strategies to fetch. + */ + orderBy?: Prisma.StrategyOrderByWithRelationInput | Prisma.StrategyOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.StrategyWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Strategies 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` Strategies. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Strategies + **/ + _count?: true | StrategyCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: StrategyAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: StrategySumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: StrategyMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: StrategyMaxAggregateInputType +} + +export type GetStrategyAggregateType = { + [P in keyof T & keyof AggregateStrategy]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type StrategyGroupByArgs = { + where?: Prisma.StrategyWhereInput + orderBy?: Prisma.StrategyOrderByWithAggregationInput | Prisma.StrategyOrderByWithAggregationInput[] + by: Prisma.StrategyScalarFieldEnum[] | Prisma.StrategyScalarFieldEnum + having?: Prisma.StrategyScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: StrategyCountAggregateInputType | true + _avg?: StrategyAvgAggregateInputType + _sum?: StrategySumAggregateInputType + _min?: StrategyMinAggregateInputType + _max?: StrategyMaxAggregateInputType +} + +export type StrategyGroupByOutputType = { + id: number + name: string + description: string + data: runtime.JsonValue + createdAt: Date + updatedAt: Date + _count: StrategyCountAggregateOutputType | null + _avg: StrategyAvgAggregateOutputType | null + _sum: StrategySumAggregateOutputType | null + _min: StrategyMinAggregateOutputType | null + _max: StrategyMaxAggregateOutputType | null +} + +export type GetStrategyGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof StrategyGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type StrategyWhereInput = { + AND?: Prisma.StrategyWhereInput | Prisma.StrategyWhereInput[] + OR?: Prisma.StrategyWhereInput[] + NOT?: Prisma.StrategyWhereInput | Prisma.StrategyWhereInput[] + id?: Prisma.IntFilter<"Strategy"> | number + name?: Prisma.StringFilter<"Strategy"> | string + description?: Prisma.StringFilter<"Strategy"> | string + data?: Prisma.JsonFilter<"Strategy"> + createdAt?: Prisma.DateTimeFilter<"Strategy"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"Strategy"> | Date | string +} + +export type StrategyOrderByWithRelationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrder + data?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + _relevance?: Prisma.StrategyOrderByRelevanceInput +} + +export type StrategyWhereUniqueInput = Prisma.AtLeast<{ + id?: number + AND?: Prisma.StrategyWhereInput | Prisma.StrategyWhereInput[] + OR?: Prisma.StrategyWhereInput[] + NOT?: Prisma.StrategyWhereInput | Prisma.StrategyWhereInput[] + name?: Prisma.StringFilter<"Strategy"> | string + description?: Prisma.StringFilter<"Strategy"> | string + data?: Prisma.JsonFilter<"Strategy"> + createdAt?: Prisma.DateTimeFilter<"Strategy"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"Strategy"> | Date | string +}, "id"> + +export type StrategyOrderByWithAggregationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrder + data?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + _count?: Prisma.StrategyCountOrderByAggregateInput + _avg?: Prisma.StrategyAvgOrderByAggregateInput + _max?: Prisma.StrategyMaxOrderByAggregateInput + _min?: Prisma.StrategyMinOrderByAggregateInput + _sum?: Prisma.StrategySumOrderByAggregateInput +} + +export type StrategyScalarWhereWithAggregatesInput = { + AND?: Prisma.StrategyScalarWhereWithAggregatesInput | Prisma.StrategyScalarWhereWithAggregatesInput[] + OR?: Prisma.StrategyScalarWhereWithAggregatesInput[] + NOT?: Prisma.StrategyScalarWhereWithAggregatesInput | Prisma.StrategyScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"Strategy"> | number + name?: Prisma.StringWithAggregatesFilter<"Strategy"> | string + description?: Prisma.StringWithAggregatesFilter<"Strategy"> | string + data?: Prisma.JsonWithAggregatesFilter<"Strategy"> + createdAt?: Prisma.DateTimeWithAggregatesFilter<"Strategy"> | Date | string + updatedAt?: Prisma.DateTimeWithAggregatesFilter<"Strategy"> | Date | string +} + +export type StrategyCreateInput = { + name: string + description: string + data: Prisma.JsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string +} + +export type StrategyUncheckedCreateInput = { + id?: number + name: string + description: string + data: Prisma.JsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string +} + +export type StrategyUpdateInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.StringFieldUpdateOperationsInput | string + data?: Prisma.JsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type StrategyUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.StringFieldUpdateOperationsInput | string + data?: Prisma.JsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type StrategyCreateManyInput = { + id?: number + name: string + description: string + data: Prisma.JsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string +} + +export type StrategyUpdateManyMutationInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.StringFieldUpdateOperationsInput | string + data?: Prisma.JsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type StrategyUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.StringFieldUpdateOperationsInput | string + data?: Prisma.JsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type StrategyOrderByRelevanceInput = { + fields: Prisma.StrategyOrderByRelevanceFieldEnum | Prisma.StrategyOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type StrategyCountOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrder + data?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type StrategyAvgOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type StrategyMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type StrategyMinOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type StrategySumOrderByAggregateInput = { + id?: Prisma.SortOrder +} + + + +export type StrategySelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + name?: boolean + description?: boolean + data?: boolean + createdAt?: boolean + updatedAt?: boolean +}, ExtArgs["result"]["strategy"]> + + + +export type StrategySelectScalar = { + id?: boolean + name?: boolean + description?: boolean + data?: boolean + createdAt?: boolean + updatedAt?: boolean +} + +export type StrategyOmit = runtime.Types.Extensions.GetOmit<"id" | "name" | "description" | "data" | "createdAt" | "updatedAt", ExtArgs["result"]["strategy"]> + +export type $StrategyPayload = { + name: "Strategy" + objects: {} + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + name: string + description: string + data: runtime.JsonValue + createdAt: Date + updatedAt: Date + }, ExtArgs["result"]["strategy"]> + composites: {} +} + +export type StrategyGetPayload = runtime.Types.Result.GetResult + +export type StrategyCountArgs = + Omit & { + select?: StrategyCountAggregateInputType | true + } + +export interface StrategyDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Strategy'], meta: { name: 'Strategy' } } + /** + * Find zero or one Strategy that matches the filter. + * @param {StrategyFindUniqueArgs} args - Arguments to find a Strategy + * @example + * // Get one Strategy + * const strategy = await prisma.strategy.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__StrategyClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Strategy that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {StrategyFindUniqueOrThrowArgs} args - Arguments to find a Strategy + * @example + * // Get one Strategy + * const strategy = await prisma.strategy.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__StrategyClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Strategy 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 {StrategyFindFirstArgs} args - Arguments to find a Strategy + * @example + * // Get one Strategy + * const strategy = await prisma.strategy.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__StrategyClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Strategy 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 {StrategyFindFirstOrThrowArgs} args - Arguments to find a Strategy + * @example + * // Get one Strategy + * const strategy = await prisma.strategy.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__StrategyClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Strategies 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 {StrategyFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Strategies + * const strategies = await prisma.strategy.findMany() + * + * // Get first 10 Strategies + * const strategies = await prisma.strategy.findMany({ take: 10 }) + * + * // Only select the `id` + * const strategyWithIdOnly = await prisma.strategy.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Strategy. + * @param {StrategyCreateArgs} args - Arguments to create a Strategy. + * @example + * // Create one Strategy + * const Strategy = await prisma.strategy.create({ + * data: { + * // ... data to create a Strategy + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__StrategyClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Strategies. + * @param {StrategyCreateManyArgs} args - Arguments to create many Strategies. + * @example + * // Create many Strategies + * const strategy = await prisma.strategy.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a Strategy. + * @param {StrategyDeleteArgs} args - Arguments to delete one Strategy. + * @example + * // Delete one Strategy + * const Strategy = await prisma.strategy.delete({ + * where: { + * // ... filter to delete one Strategy + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__StrategyClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Strategy. + * @param {StrategyUpdateArgs} args - Arguments to update one Strategy. + * @example + * // Update one Strategy + * const strategy = await prisma.strategy.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__StrategyClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Strategies. + * @param {StrategyDeleteManyArgs} args - Arguments to filter Strategies to delete. + * @example + * // Delete a few Strategies + * const { count } = await prisma.strategy.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Strategies. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StrategyUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Strategies + * const strategy = await prisma.strategy.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one Strategy. + * @param {StrategyUpsertArgs} args - Arguments to update or create a Strategy. + * @example + * // Update or create a Strategy + * const strategy = await prisma.strategy.upsert({ + * create: { + * // ... data to create a Strategy + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Strategy we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__StrategyClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Strategies. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StrategyCountArgs} args - Arguments to filter Strategies to count. + * @example + * // Count the number of Strategies + * const count = await prisma.strategy.count({ + * where: { + * // ... the filter for the Strategies we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset, + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a Strategy. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StrategyAggregateArgs} 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: Prisma.Subset): Prisma.PrismaPromise> + + /** + * Group by Strategy. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StrategyGroupByArgs} 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 StrategyGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: StrategyGroupByArgs['orderBy'] } + : { orderBy?: StrategyGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys>>, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.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 Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.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 Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.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 Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetStrategyGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the Strategy model + */ +readonly fields: StrategyFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Strategy. + * 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__StrategyClient 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): runtime.Types.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): runtime.Types.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): runtime.Types.Utils.JsPromise +} + + + + +/** + * Fields of the Strategy model + */ +export interface StrategyFieldRefs { + readonly id: Prisma.FieldRef<"Strategy", 'Int'> + readonly name: Prisma.FieldRef<"Strategy", 'String'> + readonly description: Prisma.FieldRef<"Strategy", 'String'> + readonly data: Prisma.FieldRef<"Strategy", 'Json'> + readonly createdAt: Prisma.FieldRef<"Strategy", 'DateTime'> + readonly updatedAt: Prisma.FieldRef<"Strategy", 'DateTime'> +} + + +// Custom InputTypes +/** + * Strategy findUnique + */ +export type StrategyFindUniqueArgs = { + /** + * Select specific fields to fetch from the Strategy + */ + select?: Prisma.StrategySelect | null + /** + * Omit specific fields from the Strategy + */ + omit?: Prisma.StrategyOmit | null + /** + * Filter, which Strategy to fetch. + */ + where: Prisma.StrategyWhereUniqueInput +} + +/** + * Strategy findUniqueOrThrow + */ +export type StrategyFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Strategy + */ + select?: Prisma.StrategySelect | null + /** + * Omit specific fields from the Strategy + */ + omit?: Prisma.StrategyOmit | null + /** + * Filter, which Strategy to fetch. + */ + where: Prisma.StrategyWhereUniqueInput +} + +/** + * Strategy findFirst + */ +export type StrategyFindFirstArgs = { + /** + * Select specific fields to fetch from the Strategy + */ + select?: Prisma.StrategySelect | null + /** + * Omit specific fields from the Strategy + */ + omit?: Prisma.StrategyOmit | null + /** + * Filter, which Strategy to fetch. + */ + where?: Prisma.StrategyWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Strategies to fetch. + */ + orderBy?: Prisma.StrategyOrderByWithRelationInput | Prisma.StrategyOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Strategies. + */ + cursor?: Prisma.StrategyWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Strategies 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` Strategies. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Strategies. + */ + distinct?: Prisma.StrategyScalarFieldEnum | Prisma.StrategyScalarFieldEnum[] +} + +/** + * Strategy findFirstOrThrow + */ +export type StrategyFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Strategy + */ + select?: Prisma.StrategySelect | null + /** + * Omit specific fields from the Strategy + */ + omit?: Prisma.StrategyOmit | null + /** + * Filter, which Strategy to fetch. + */ + where?: Prisma.StrategyWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Strategies to fetch. + */ + orderBy?: Prisma.StrategyOrderByWithRelationInput | Prisma.StrategyOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Strategies. + */ + cursor?: Prisma.StrategyWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Strategies 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` Strategies. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Strategies. + */ + distinct?: Prisma.StrategyScalarFieldEnum | Prisma.StrategyScalarFieldEnum[] +} + +/** + * Strategy findMany + */ +export type StrategyFindManyArgs = { + /** + * Select specific fields to fetch from the Strategy + */ + select?: Prisma.StrategySelect | null + /** + * Omit specific fields from the Strategy + */ + omit?: Prisma.StrategyOmit | null + /** + * Filter, which Strategies to fetch. + */ + where?: Prisma.StrategyWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Strategies to fetch. + */ + orderBy?: Prisma.StrategyOrderByWithRelationInput | Prisma.StrategyOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Strategies. + */ + cursor?: Prisma.StrategyWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Strategies 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` Strategies. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Strategies. + */ + distinct?: Prisma.StrategyScalarFieldEnum | Prisma.StrategyScalarFieldEnum[] +} + +/** + * Strategy create + */ +export type StrategyCreateArgs = { + /** + * Select specific fields to fetch from the Strategy + */ + select?: Prisma.StrategySelect | null + /** + * Omit specific fields from the Strategy + */ + omit?: Prisma.StrategyOmit | null + /** + * The data needed to create a Strategy. + */ + data: Prisma.XOR +} + +/** + * Strategy createMany + */ +export type StrategyCreateManyArgs = { + /** + * The data used to create many Strategies. + */ + data: Prisma.StrategyCreateManyInput | Prisma.StrategyCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * Strategy update + */ +export type StrategyUpdateArgs = { + /** + * Select specific fields to fetch from the Strategy + */ + select?: Prisma.StrategySelect | null + /** + * Omit specific fields from the Strategy + */ + omit?: Prisma.StrategyOmit | null + /** + * The data needed to update a Strategy. + */ + data: Prisma.XOR + /** + * Choose, which Strategy to update. + */ + where: Prisma.StrategyWhereUniqueInput +} + +/** + * Strategy updateMany + */ +export type StrategyUpdateManyArgs = { + /** + * The data used to update Strategies. + */ + data: Prisma.XOR + /** + * Filter which Strategies to update + */ + where?: Prisma.StrategyWhereInput + /** + * Limit how many Strategies to update. + */ + limit?: number +} + +/** + * Strategy upsert + */ +export type StrategyUpsertArgs = { + /** + * Select specific fields to fetch from the Strategy + */ + select?: Prisma.StrategySelect | null + /** + * Omit specific fields from the Strategy + */ + omit?: Prisma.StrategyOmit | null + /** + * The filter to search for the Strategy to update in case it exists. + */ + where: Prisma.StrategyWhereUniqueInput + /** + * In case the Strategy found by the `where` argument doesn't exist, create a new Strategy with this data. + */ + create: Prisma.XOR + /** + * In case the Strategy was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * Strategy delete + */ +export type StrategyDeleteArgs = { + /** + * Select specific fields to fetch from the Strategy + */ + select?: Prisma.StrategySelect | null + /** + * Omit specific fields from the Strategy + */ + omit?: Prisma.StrategyOmit | null + /** + * Filter which Strategy to delete. + */ + where: Prisma.StrategyWhereUniqueInput +} + +/** + * Strategy deleteMany + */ +export type StrategyDeleteManyArgs = { + /** + * Filter which Strategies to delete + */ + where?: Prisma.StrategyWhereInput + /** + * Limit how many Strategies to delete. + */ + limit?: number +} + +/** + * Strategy without action + */ +export type StrategyDefaultArgs = { + /** + * Select specific fields to fetch from the Strategy + */ + select?: Prisma.StrategySelect | null + /** + * Omit specific fields from the Strategy + */ + omit?: Prisma.StrategyOmit | null +} diff --git a/generated/prisma/models/User.ts b/generated/prisma/models/User.ts new file mode 100644 index 0000000..de9031e --- /dev/null +++ b/generated/prisma/models/User.ts @@ -0,0 +1,1126 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `User` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/client" +import type * as $Enums from "../enums.ts" +import type * as Prisma from "../internal/prismaNamespace.ts" + +/** + * Model User + * + */ +export type UserModel = runtime.Types.Result.DefaultSelection + +export type AggregateUser = { + _count: UserCountAggregateOutputType | null + _avg: UserAvgAggregateOutputType | null + _sum: UserSumAggregateOutputType | null + _min: UserMinAggregateOutputType | null + _max: UserMaxAggregateOutputType | null +} + +export type UserAvgAggregateOutputType = { + id: number | null +} + +export type UserSumAggregateOutputType = { + id: number | null +} + +export type UserMinAggregateOutputType = { + id: number | null + name: string | null + email: string | null + password: string | null + createdAt: Date | null + updatedAt: Date | null +} + +export type UserMaxAggregateOutputType = { + id: number | null + name: string | null + email: string | null + password: string | null + createdAt: Date | null + updatedAt: Date | null +} + +export type UserCountAggregateOutputType = { + id: number + name: number + email: number + password: number + createdAt: number + updatedAt: number + _all: number +} + + +export type UserAvgAggregateInputType = { + id?: true +} + +export type UserSumAggregateInputType = { + id?: true +} + +export type UserMinAggregateInputType = { + id?: true + name?: true + email?: true + password?: true + createdAt?: true + updatedAt?: true +} + +export type UserMaxAggregateInputType = { + id?: true + name?: true + email?: true + password?: true + createdAt?: true + updatedAt?: true +} + +export type UserCountAggregateInputType = { + id?: true + name?: true + email?: true + password?: true + createdAt?: true + updatedAt?: true + _all?: true +} + +export type UserAggregateArgs = { + /** + * Filter which User to aggregate. + */ + where?: Prisma.UserWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Users to fetch. + */ + orderBy?: Prisma.UserOrderByWithRelationInput | Prisma.UserOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.UserWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Users from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Users. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Users + **/ + _count?: true | UserCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: UserAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: UserSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: UserMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: UserMaxAggregateInputType +} + +export type GetUserAggregateType = { + [P in keyof T & keyof AggregateUser]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type UserGroupByArgs = { + where?: Prisma.UserWhereInput + orderBy?: Prisma.UserOrderByWithAggregationInput | Prisma.UserOrderByWithAggregationInput[] + by: Prisma.UserScalarFieldEnum[] | Prisma.UserScalarFieldEnum + having?: Prisma.UserScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: UserCountAggregateInputType | true + _avg?: UserAvgAggregateInputType + _sum?: UserSumAggregateInputType + _min?: UserMinAggregateInputType + _max?: UserMaxAggregateInputType +} + +export type UserGroupByOutputType = { + id: number + name: string + email: string + password: string + createdAt: Date + updatedAt: Date + _count: UserCountAggregateOutputType | null + _avg: UserAvgAggregateOutputType | null + _sum: UserSumAggregateOutputType | null + _min: UserMinAggregateOutputType | null + _max: UserMaxAggregateOutputType | null +} + +export type GetUserGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof UserGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type UserWhereInput = { + AND?: Prisma.UserWhereInput | Prisma.UserWhereInput[] + OR?: Prisma.UserWhereInput[] + NOT?: Prisma.UserWhereInput | Prisma.UserWhereInput[] + id?: Prisma.IntFilter<"User"> | number + name?: Prisma.StringFilter<"User"> | string + email?: Prisma.StringFilter<"User"> | string + password?: Prisma.StringFilter<"User"> | string + createdAt?: Prisma.DateTimeFilter<"User"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"User"> | Date | string +} + +export type UserOrderByWithRelationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + email?: Prisma.SortOrder + password?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + _relevance?: Prisma.UserOrderByRelevanceInput +} + +export type UserWhereUniqueInput = Prisma.AtLeast<{ + id?: number + email?: string + AND?: Prisma.UserWhereInput | Prisma.UserWhereInput[] + OR?: Prisma.UserWhereInput[] + NOT?: Prisma.UserWhereInput | Prisma.UserWhereInput[] + name?: Prisma.StringFilter<"User"> | string + password?: Prisma.StringFilter<"User"> | string + createdAt?: Prisma.DateTimeFilter<"User"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"User"> | Date | string +}, "id" | "email"> + +export type UserOrderByWithAggregationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + email?: Prisma.SortOrder + password?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + _count?: Prisma.UserCountOrderByAggregateInput + _avg?: Prisma.UserAvgOrderByAggregateInput + _max?: Prisma.UserMaxOrderByAggregateInput + _min?: Prisma.UserMinOrderByAggregateInput + _sum?: Prisma.UserSumOrderByAggregateInput +} + +export type UserScalarWhereWithAggregatesInput = { + AND?: Prisma.UserScalarWhereWithAggregatesInput | Prisma.UserScalarWhereWithAggregatesInput[] + OR?: Prisma.UserScalarWhereWithAggregatesInput[] + NOT?: Prisma.UserScalarWhereWithAggregatesInput | Prisma.UserScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"User"> | number + name?: Prisma.StringWithAggregatesFilter<"User"> | string + email?: Prisma.StringWithAggregatesFilter<"User"> | string + password?: Prisma.StringWithAggregatesFilter<"User"> | string + createdAt?: Prisma.DateTimeWithAggregatesFilter<"User"> | Date | string + updatedAt?: Prisma.DateTimeWithAggregatesFilter<"User"> | Date | string +} + +export type UserCreateInput = { + name: string + email: string + password: string + createdAt?: Date | string + updatedAt?: Date | string +} + +export type UserUncheckedCreateInput = { + id?: number + name: string + email: string + password: string + createdAt?: Date | string + updatedAt?: Date | string +} + +export type UserUpdateInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + email?: Prisma.StringFieldUpdateOperationsInput | string + password?: Prisma.StringFieldUpdateOperationsInput | string + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type UserUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + email?: Prisma.StringFieldUpdateOperationsInput | string + password?: Prisma.StringFieldUpdateOperationsInput | string + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type UserCreateManyInput = { + id?: number + name: string + email: string + password: string + createdAt?: Date | string + updatedAt?: Date | string +} + +export type UserUpdateManyMutationInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + email?: Prisma.StringFieldUpdateOperationsInput | string + password?: Prisma.StringFieldUpdateOperationsInput | string + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type UserUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + email?: Prisma.StringFieldUpdateOperationsInput | string + password?: Prisma.StringFieldUpdateOperationsInput | string + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type UserOrderByRelevanceInput = { + fields: Prisma.UserOrderByRelevanceFieldEnum | Prisma.UserOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type UserCountOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + email?: Prisma.SortOrder + password?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type UserAvgOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type UserMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + email?: Prisma.SortOrder + password?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type UserMinOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + email?: Prisma.SortOrder + password?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type UserSumOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type StringFieldUpdateOperationsInput = { + set?: string +} + +export type DateTimeFieldUpdateOperationsInput = { + set?: Date | string +} + +export type IntFieldUpdateOperationsInput = { + set?: number + increment?: number + decrement?: number + multiply?: number + divide?: number +} + + + +export type UserSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + name?: boolean + email?: boolean + password?: boolean + createdAt?: boolean + updatedAt?: boolean +}, ExtArgs["result"]["user"]> + + + +export type UserSelectScalar = { + id?: boolean + name?: boolean + email?: boolean + password?: boolean + createdAt?: boolean + updatedAt?: boolean +} + +export type UserOmit = runtime.Types.Extensions.GetOmit<"id" | "name" | "email" | "password" | "createdAt" | "updatedAt", ExtArgs["result"]["user"]> + +export type $UserPayload = { + name: "User" + objects: {} + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + name: string + email: string + password: string + createdAt: Date + updatedAt: Date + }, ExtArgs["result"]["user"]> + composites: {} +} + +export type UserGetPayload = runtime.Types.Result.GetResult + +export type UserCountArgs = + Omit & { + select?: UserCountAggregateInputType | true + } + +export interface UserDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['User'], meta: { name: 'User' } } + /** + * Find zero or one User that matches the filter. + * @param {UserFindUniqueArgs} args - Arguments to find a User + * @example + * // Get one User + * const user = await prisma.user.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__UserClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one User that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {UserFindUniqueOrThrowArgs} args - Arguments to find a User + * @example + * // Get one User + * const user = await prisma.user.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__UserClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first User that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserFindFirstArgs} args - Arguments to find a User + * @example + * // Get one User + * const user = await prisma.user.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__UserClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first User that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserFindFirstOrThrowArgs} args - Arguments to find a User + * @example + * // Get one User + * const user = await prisma.user.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__UserClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Users that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Users + * const users = await prisma.user.findMany() + * + * // Get first 10 Users + * const users = await prisma.user.findMany({ take: 10 }) + * + * // Only select the `id` + * const userWithIdOnly = await prisma.user.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a User. + * @param {UserCreateArgs} args - Arguments to create a User. + * @example + * // Create one User + * const User = await prisma.user.create({ + * data: { + * // ... data to create a User + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__UserClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Users. + * @param {UserCreateManyArgs} args - Arguments to create many Users. + * @example + * // Create many Users + * const user = await prisma.user.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a User. + * @param {UserDeleteArgs} args - Arguments to delete one User. + * @example + * // Delete one User + * const User = await prisma.user.delete({ + * where: { + * // ... filter to delete one User + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__UserClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one User. + * @param {UserUpdateArgs} args - Arguments to update one User. + * @example + * // Update one User + * const user = await prisma.user.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__UserClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Users. + * @param {UserDeleteManyArgs} args - Arguments to filter Users to delete. + * @example + * // Delete a few Users + * const { count } = await prisma.user.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Users. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Users + * const user = await prisma.user.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one User. + * @param {UserUpsertArgs} args - Arguments to update or create a User. + * @example + * // Update or create a User + * const user = await prisma.user.upsert({ + * create: { + * // ... data to create a User + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the User we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__UserClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Users. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserCountArgs} args - Arguments to filter Users to count. + * @example + * // Count the number of Users + * const count = await prisma.user.count({ + * where: { + * // ... the filter for the Users we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset, + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a User. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Prisma.Subset): Prisma.PrismaPromise> + + /** + * Group by User. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends UserGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: UserGroupByArgs['orderBy'] } + : { orderBy?: UserGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys>>, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.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 Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.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 Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.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 Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetUserGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the User model + */ +readonly fields: UserFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for User. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__UserClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + /** + * 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): runtime.Types.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): runtime.Types.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): runtime.Types.Utils.JsPromise +} + + + + +/** + * Fields of the User model + */ +export interface UserFieldRefs { + readonly id: Prisma.FieldRef<"User", 'Int'> + readonly name: Prisma.FieldRef<"User", 'String'> + readonly email: Prisma.FieldRef<"User", 'String'> + readonly password: Prisma.FieldRef<"User", 'String'> + readonly createdAt: Prisma.FieldRef<"User", 'DateTime'> + readonly updatedAt: Prisma.FieldRef<"User", 'DateTime'> +} + + +// Custom InputTypes +/** + * User findUnique + */ +export type UserFindUniqueArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * Filter, which User to fetch. + */ + where: Prisma.UserWhereUniqueInput +} + +/** + * User findUniqueOrThrow + */ +export type UserFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * Filter, which User to fetch. + */ + where: Prisma.UserWhereUniqueInput +} + +/** + * User findFirst + */ +export type UserFindFirstArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * Filter, which User to fetch. + */ + where?: Prisma.UserWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Users to fetch. + */ + orderBy?: Prisma.UserOrderByWithRelationInput | Prisma.UserOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Users. + */ + cursor?: Prisma.UserWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Users from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Users. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Users. + */ + distinct?: Prisma.UserScalarFieldEnum | Prisma.UserScalarFieldEnum[] +} + +/** + * User findFirstOrThrow + */ +export type UserFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * Filter, which User to fetch. + */ + where?: Prisma.UserWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Users to fetch. + */ + orderBy?: Prisma.UserOrderByWithRelationInput | Prisma.UserOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Users. + */ + cursor?: Prisma.UserWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Users from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Users. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Users. + */ + distinct?: Prisma.UserScalarFieldEnum | Prisma.UserScalarFieldEnum[] +} + +/** + * User findMany + */ +export type UserFindManyArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * Filter, which Users to fetch. + */ + where?: Prisma.UserWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Users to fetch. + */ + orderBy?: Prisma.UserOrderByWithRelationInput | Prisma.UserOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Users. + */ + cursor?: Prisma.UserWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Users from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Users. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Users. + */ + distinct?: Prisma.UserScalarFieldEnum | Prisma.UserScalarFieldEnum[] +} + +/** + * User create + */ +export type UserCreateArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * The data needed to create a User. + */ + data: Prisma.XOR +} + +/** + * User createMany + */ +export type UserCreateManyArgs = { + /** + * The data used to create many Users. + */ + data: Prisma.UserCreateManyInput | Prisma.UserCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * User update + */ +export type UserUpdateArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * The data needed to update a User. + */ + data: Prisma.XOR + /** + * Choose, which User to update. + */ + where: Prisma.UserWhereUniqueInput +} + +/** + * User updateMany + */ +export type UserUpdateManyArgs = { + /** + * The data used to update Users. + */ + data: Prisma.XOR + /** + * Filter which Users to update + */ + where?: Prisma.UserWhereInput + /** + * Limit how many Users to update. + */ + limit?: number +} + +/** + * User upsert + */ +export type UserUpsertArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * The filter to search for the User to update in case it exists. + */ + where: Prisma.UserWhereUniqueInput + /** + * In case the User found by the `where` argument doesn't exist, create a new User with this data. + */ + create: Prisma.XOR + /** + * In case the User was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * User delete + */ +export type UserDeleteArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * Filter which User to delete. + */ + where: Prisma.UserWhereUniqueInput +} + +/** + * User deleteMany + */ +export type UserDeleteManyArgs = { + /** + * Filter which Users to delete + */ + where?: Prisma.UserWhereInput + /** + * Limit how many Users to delete. + */ + limit?: number +} + +/** + * User without action + */ +export type UserDefaultArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null +} diff --git a/lib/prisma.js b/lib/prisma.js new file mode 100644 index 0000000..b688320 --- /dev/null +++ b/lib/prisma.js @@ -0,0 +1,14 @@ +import { PrismaClient } from '../generated/prisma' + +let prisma + +if (process.env.NODE_ENV === 'production') { + prisma = new PrismaClient() +} else { + if (!global.prisma) { + global.prisma = new PrismaClient() + } + prisma = global.prisma +} + +export default prisma diff --git a/package-lock.json b/package-lock.json index 4d34051..96ea56e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,14 +9,66 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "@prisma/client": "^7.7.0", "gray-matter": "^4.0.3", "marked": "^17.0.6", "next": "^14.2.3", + "prisma": "^7.7.0", "react": "^18.2.0", "react-dom": "^18.2.0", "recharts": "^3.8.1" + }, + "devDependencies": { + "axios": "^1.15.0", + "cheerio": "^1.2.0", + "csv-parser": "^3.2.0" } }, + "node_modules/@electric-sql/pglite": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/@electric-sql/pglite/-/pglite-0.4.1.tgz", + "integrity": "sha512-mZ9NzzUSYPOCnxHH1oAHPRzoMFJHY472raDKwXl/+6oPbpdJ7g8LsCN4FSaIIfkiCKHhb3iF/Zqo3NYxaIhU7Q==", + "license": "Apache-2.0" + }, + "node_modules/@electric-sql/pglite-socket": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/@electric-sql/pglite-socket/-/pglite-socket-0.1.1.tgz", + "integrity": "sha512-p2hoXw3Z3LQHwTeikdZNsFBOvXGqKY2hk51BBw+8NKND8eoH+8LFOtW9Z8CQKmTJ2qqGYu82ipqiyFZOTTXNfw==", + "license": "Apache-2.0", + "bin": { + "pglite-server": "dist/scripts/server.js" + }, + "peerDependencies": { + "@electric-sql/pglite": "0.4.1" + } + }, + "node_modules/@electric-sql/pglite-tools": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/@electric-sql/pglite-tools/-/pglite-tools-0.3.1.tgz", + "integrity": "sha512-C+T3oivmy9bpQvSxVqXA1UDY8cB9Eb9vZHL9zxWwEUfDixbXv4G3r2LjoTdR33LD8aomR3O9ZXEO3XEwr/cUCA==", + "license": "Apache-2.0", + "peerDependencies": { + "@electric-sql/pglite": "0.4.1" + } + }, + "node_modules/@hono/node-server": { + "version": "1.19.11", + "resolved": "https://registry.npmmirror.com/@hono/node-server/-/node-server-1.19.11.tgz", + "integrity": "sha512-dr8/3zEaB+p0D2n/IUrlPF1HZm586qgJNXK1a9fhg/PzdtkK7Ksd5l312tJX2yBuALqDYBlG20QEbayqPyxn+g==", + "license": "MIT", + "engines": { + "node": ">=18.14.1" + }, + "peerDependencies": { + "hono": "^4" + } + }, + "node_modules/@kurkle/color": { + "version": "0.3.4", + "resolved": "https://registry.npmmirror.com/@kurkle/color/-/color-0.3.4.tgz", + "integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==", + "license": "MIT" + }, "node_modules/@next/env": { "version": "14.2.35", "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.35.tgz", @@ -167,6 +219,322 @@ "node": ">= 10" } }, + "node_modules/@prisma/client": { + "version": "7.7.0", + "resolved": "https://registry.npmmirror.com/@prisma/client/-/client-7.7.0.tgz", + "integrity": "sha512-5Ar4OsZpJ54s21sy5oDNNW9gQtd4NuxCaiM7+JDTOU07D6VvlpLjYzAVCMB1+JzokN+08dAVomlx+b7bhJd3ww==", + "license": "Apache-2.0", + "dependencies": { + "@prisma/client-runtime-utils": "7.7.0" + }, + "engines": { + "node": "^20.19 || ^22.12 || >=24.0" + }, + "peerDependencies": { + "prisma": "*", + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "prisma": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/@prisma/client-runtime-utils": { + "version": "7.7.0", + "resolved": "https://registry.npmmirror.com/@prisma/client-runtime-utils/-/client-runtime-utils-7.7.0.tgz", + "integrity": "sha512-BLyd0UpFYOtyJFTHm7jS9vesHW7P83abibodQMiIofqjBKzDHQ1VAsQkdfvXyYDkPlONPfOTz7/rv3x/+CQqvQ==", + "license": "Apache-2.0" + }, + "node_modules/@prisma/config": { + "version": "7.7.0", + "resolved": "https://registry.npmmirror.com/@prisma/config/-/config-7.7.0.tgz", + "integrity": "sha512-hmPI3tKLO2aP0Y5vugbjcnA9qqlfJndiT6ds4tw28U5hNHLWg+mHJEWAhjsSPgxjtmxhJ/EDIeIlyh+3Us0OPg==", + "license": "Apache-2.0", + "dependencies": { + "c12": "3.1.0", + "deepmerge-ts": "7.1.5", + "effect": "3.20.0", + "empathic": "2.0.0" + } + }, + "node_modules/@prisma/debug": { + "version": "7.7.0", + "resolved": "https://registry.npmmirror.com/@prisma/debug/-/debug-7.7.0.tgz", + "integrity": "sha512-12J62XdqCmpiwJHhHdQxZeY3ckVCWIFmcJP8hg5dPTceeiQ0wiojXGFYTluKqFQfu46fRLgb/rLALZMAx3+dTA==", + "license": "Apache-2.0" + }, + "node_modules/@prisma/dev": { + "version": "0.24.3", + "resolved": "https://registry.npmmirror.com/@prisma/dev/-/dev-0.24.3.tgz", + "integrity": "sha512-ffHlQuKXZiaDt9Go0OnCTdJZrHxK0k7omJKNV86/VjpsXu5EIHZLK0T7JSWgvNlJwh56kW9JFu9v0qJciFzepg==", + "license": "ISC", + "dependencies": { + "@electric-sql/pglite": "0.4.1", + "@electric-sql/pglite-socket": "0.1.1", + "@electric-sql/pglite-tools": "0.3.1", + "@hono/node-server": "1.19.11", + "@prisma/get-platform": "7.2.0", + "@prisma/query-plan-executor": "7.2.0", + "@prisma/streams-local": "0.1.2", + "foreground-child": "3.3.1", + "get-port-please": "3.2.0", + "hono": "^4.12.8", + "http-status-codes": "2.3.0", + "pathe": "2.0.3", + "proper-lockfile": "4.1.2", + "remeda": "2.33.4", + "std-env": "3.10.0", + "valibot": "1.2.0", + "zeptomatch": "2.1.0" + } + }, + "node_modules/@prisma/engines": { + "version": "7.7.0", + "resolved": "https://registry.npmmirror.com/@prisma/engines/-/engines-7.7.0.tgz", + "integrity": "sha512-7fmcbT7HHXBq/b+3h/dO1JI3fd8l8q7erf7xP7pRprh58hmSSnG8mg9K3yjW3h9WaHWUwngVFpSxxxivaitQ2w==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "7.7.0", + "@prisma/engines-version": "7.6.0-1.75cbdc1eb7150937890ad5465d861175c6624711", + "@prisma/fetch-engine": "7.7.0", + "@prisma/get-platform": "7.7.0" + } + }, + "node_modules/@prisma/engines-version": { + "version": "7.6.0-1.75cbdc1eb7150937890ad5465d861175c6624711", + "resolved": "https://registry.npmmirror.com/@prisma/engines-version/-/engines-version-7.6.0-1.75cbdc1eb7150937890ad5465d861175c6624711.tgz", + "integrity": "sha512-r51DLcJ8bDRSrBEJF3J4cinoWyGA7rfP2mG6lD90VqIbGNOkbfcLcXalSVjq5Y6brQS3vcjrq4GbyUb1Cb7vkw==", + "license": "Apache-2.0" + }, + "node_modules/@prisma/engines/node_modules/@prisma/get-platform": { + "version": "7.7.0", + "resolved": "https://registry.npmmirror.com/@prisma/get-platform/-/get-platform-7.7.0.tgz", + "integrity": "sha512-MEUNzvKxvYnJ7kgvd6oNRnMmmiGNS9TYLB2weMeIXplnHdL/UWEGnvavYGnN7KLJ2n0iI4dDAyzSkHI3c7AscQ==", + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "7.7.0" + } + }, + "node_modules/@prisma/fetch-engine": { + "version": "7.7.0", + "resolved": "https://registry.npmmirror.com/@prisma/fetch-engine/-/fetch-engine-7.7.0.tgz", + "integrity": "sha512-TfyzveBQoK4xALzsTpVhB/0KG1N8zOK0ap+RnBMkzGUu3f98fnQ4QtXa2wlKPhsO2X8a3N5ugFQgcKNoHGmDfw==", + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "7.7.0", + "@prisma/engines-version": "7.6.0-1.75cbdc1eb7150937890ad5465d861175c6624711", + "@prisma/get-platform": "7.7.0" + } + }, + "node_modules/@prisma/fetch-engine/node_modules/@prisma/get-platform": { + "version": "7.7.0", + "resolved": "https://registry.npmmirror.com/@prisma/get-platform/-/get-platform-7.7.0.tgz", + "integrity": "sha512-MEUNzvKxvYnJ7kgvd6oNRnMmmiGNS9TYLB2weMeIXplnHdL/UWEGnvavYGnN7KLJ2n0iI4dDAyzSkHI3c7AscQ==", + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "7.7.0" + } + }, + "node_modules/@prisma/get-platform": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/@prisma/get-platform/-/get-platform-7.2.0.tgz", + "integrity": "sha512-k1V0l0Td1732EHpAfi2eySTezyllok9dXb6UQanajkJQzPUGi3vO2z7jdkz67SypFTdmbnyGYxvEvYZdZsMAVA==", + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "7.2.0" + } + }, + "node_modules/@prisma/get-platform/node_modules/@prisma/debug": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/@prisma/debug/-/debug-7.2.0.tgz", + "integrity": "sha512-YSGTiSlBAVJPzX4ONZmMotL+ozJwQjRmZweQNIq/ER0tQJKJynNkRB3kyvt37eOfsbMCXk3gnLF6J9OJ4QWftw==", + "license": "Apache-2.0" + }, + "node_modules/@prisma/query-plan-executor": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/@prisma/query-plan-executor/-/query-plan-executor-7.2.0.tgz", + "integrity": "sha512-EOZmNzcV8uJ0mae3DhTsiHgoNCuu1J9mULQpGCh62zN3PxPTd+qI9tJvk5jOst8WHKQNwJWR3b39t0XvfBB0WQ==", + "license": "Apache-2.0" + }, + "node_modules/@prisma/streams-local": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/@prisma/streams-local/-/streams-local-0.1.2.tgz", + "integrity": "sha512-l49yTxKKF2odFxaAXTmwmkBKL3+bVQ1tFOooGifu4xkdb9NMNLxHj27XAhTylWZod8I+ISGM5erU1xcl/oBCtg==", + "license": "Apache-2.0", + "dependencies": { + "ajv": "^8.12.0", + "better-result": "^2.7.0", + "env-paths": "^3.0.0", + "proper-lockfile": "^4.1.2" + }, + "engines": { + "bun": ">=1.3.6", + "node": ">=22.0.0" + } + }, + "node_modules/@prisma/studio-core": { + "version": "0.27.3", + "resolved": "https://registry.npmmirror.com/@prisma/studio-core/-/studio-core-0.27.3.tgz", + "integrity": "sha512-AADjNFPdsrglxHQVTmHFqv6DuKQZ5WY4p5/gVFY017twvNrSwpLJ9lqUbYYxEu2W7nbvVxTZA8deJ8LseNALsw==", + "license": "Apache-2.0", + "dependencies": { + "@radix-ui/react-toggle": "1.1.10", + "chart.js": "4.5.1" + }, + "engines": { + "node": "^20.19 || ^22.12 || >=24.0", + "pnpm": "8" + }, + "peerDependencies": { + "@types/react": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/primitive/-/primitive-1.1.3.tgz", + "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toggle": { + "version": "1.1.10", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-toggle/-/react-toggle-1.1.10.tgz", + "integrity": "sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", + "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-effect-event": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", + "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@reduxjs/toolkit": { "version": "2.11.2", "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz", @@ -294,12 +662,38 @@ "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", "license": "MIT" }, + "node_modules/@types/react": { + "version": "19.2.14", + "resolved": "https://registry.npmmirror.com/@types/react/-/react-19.2.14.tgz", + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", + "license": "MIT", + "peer": true, + "dependencies": { + "csstype": "^3.2.2" + } + }, "node_modules/@types/use-sync-external-store": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", "license": "MIT" }, + "node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -309,6 +703,47 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/aws-ssl-profiles": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz", + "integrity": "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/axios": { + "version": "1.15.0", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.15.0.tgz", + "integrity": "sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.11", + "form-data": "^4.0.5", + "proxy-from-env": "^2.1.0" + } + }, + "node_modules/better-result": { + "version": "2.8.2", + "resolved": "https://registry.npmmirror.com/better-result/-/better-result-2.8.2.tgz", + "integrity": "sha512-YOf0VSj5nUPI27doTtXF+BBnsiRq3qY7avHqfIWnppxTLGyvkLq1QV2RTxkwoZwJ60ywLfZ0raFF4J/G886i7A==", + "license": "MIT" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, "node_modules/busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", @@ -320,6 +755,48 @@ "node": ">=10.16.0" } }, + "node_modules/c12": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/c12/-/c12-3.1.0.tgz", + "integrity": "sha512-uWoS8OU1MEIsOv8p/5a82c3H31LsWVR5qiyXVfBNOzfffjUWtPnhAb4BYI2uG2HfGmZmFjCtui5XNWaps+iFuw==", + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.3", + "confbox": "^0.2.2", + "defu": "^6.1.4", + "dotenv": "^16.6.1", + "exsolve": "^1.0.7", + "giget": "^2.0.0", + "jiti": "^2.4.2", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^1.0.0", + "pkg-types": "^2.2.0", + "rc9": "^2.1.2" + }, + "peerDependencies": { + "magicast": "^0.3.5" + }, + "peerDependenciesMeta": { + "magicast": { + "optional": true + } + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001784", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001784.tgz", @@ -340,6 +817,86 @@ ], "license": "CC-BY-4.0" }, + "node_modules/chart.js": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/chart.js/-/chart.js-4.5.1.tgz", + "integrity": "sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw==", + "license": "MIT", + "dependencies": { + "@kurkle/color": "^0.3.0" + }, + "engines": { + "pnpm": ">=8" + } + }, + "node_modules/cheerio": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/cheerio/-/cheerio-1.2.0.tgz", + "integrity": "sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "encoding-sniffer": "^0.2.1", + "htmlparser2": "^10.1.0", + "parse5": "^7.3.0", + "parse5-htmlparser2-tree-adapter": "^7.1.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^7.19.0", + "whatwg-mimetype": "^4.0.0" + }, + "engines": { + "node": ">=20.18.1" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/citty": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", + "license": "MIT", + "dependencies": { + "consola": "^3.2.3" + } + }, "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", @@ -355,6 +912,98 @@ "node": ">=6" } }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/confbox": { + "version": "0.2.4", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.2.4.tgz", + "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", + "license": "MIT" + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmmirror.com/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmmirror.com/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT", + "peer": true + }, + "node_modules/csv-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/csv-parser/-/csv-parser-3.2.0.tgz", + "integrity": "sha512-fgKbp+AJbn1h2dcAHKIdKNSSjfp43BZZykXsCjzALjKy80VXQNHPFJ6T9Afwdzoj24aMkq8GwDS7KGcDPpejrA==", + "dev": true, + "license": "MIT", + "bin": { + "csv-parser": "bin/csv-parser" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/d3-array": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", @@ -482,6 +1131,252 @@ "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", "license": "MIT" }, + "node_modules/deepmerge-ts": { + "version": "7.1.5", + "resolved": "https://registry.npmmirror.com/deepmerge-ts/-/deepmerge-ts-7.1.5.tgz", + "integrity": "sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/defu": { + "version": "6.1.7", + "resolved": "https://registry.npmmirror.com/defu/-/defu-6.1.7.tgz", + "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/destr": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", + "license": "MIT" + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmmirror.com/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/effect": { + "version": "3.20.0", + "resolved": "https://registry.npmmirror.com/effect/-/effect-3.20.0.tgz", + "integrity": "sha512-qMLfDJscrNG8p/aw+IkT9W7fgj50Z4wG5bLBy0Txsxz8iUHjDIkOgO3SV0WZfnQbNG2VJYb0b+rDLMrhM4+Krw==", + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "fast-check": "^3.23.1" + } + }, + "node_modules/empathic": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/empathic/-/empathic-2.0.0.tgz", + "integrity": "sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/encoding-sniffer": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", + "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" + } + }, + "node_modules/encoding-sniffer/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-3.0.0.tgz", + "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-toolkit": { "version": "1.45.1", "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.45.1.tgz", @@ -511,6 +1406,12 @@ "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", "license": "MIT" }, + "node_modules/exsolve": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/exsolve/-/exsolve-1.0.8.tgz", + "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==", + "license": "MIT" + }, "node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", @@ -523,12 +1424,216 @@ "node": ">=0.10.0" } }, + "node_modules/fast-check": { + "version": "3.23.2", + "resolved": "https://registry.npmmirror.com/fast-check/-/fast-check-3.23.2.tgz", + "integrity": "sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT", + "dependencies": { + "pure-rand": "^6.1.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "license": "MIT", + "dependencies": { + "is-property": "^1.0.2" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-port-please": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/get-port-please/-/get-port-please-3.2.0.tgz", + "integrity": "sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==", + "license": "MIT" + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/giget": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/giget/-/giget-2.0.0.tgz", + "integrity": "sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==", + "license": "MIT", + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.4.0", + "defu": "^6.1.4", + "node-fetch-native": "^1.6.6", + "nypm": "^0.6.0", + "pathe": "^2.0.3" + }, + "bin": { + "giget": "dist/cli.mjs" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "license": "ISC" }, + "node_modules/grammex": { + "version": "3.1.12", + "resolved": "https://registry.npmmirror.com/grammex/-/grammex-3.1.12.tgz", + "integrity": "sha512-6ufJOsSA7LcQehIJNCO7HIBykfM7DXQual0Ny780/DEcJIpBlHRvcqEBWGPYd7hrXL2GJ3oJI1MIhaXjWmLQOQ==", + "license": "MIT" + }, + "node_modules/graphmatch": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/graphmatch/-/graphmatch-1.1.1.tgz", + "integrity": "sha512-5ykVn/EXM1hF0XCaWh05VbYvEiOL2lY1kBxZtaYsyvjp7cmWOU1XsAdfQBwClraEofXDT197lFbXOEVMHpvQOg==", + "license": "MIT" + }, "node_modules/gray-matter": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", @@ -544,6 +1649,112 @@ "node": ">=6.0" } }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hono": { + "version": "4.12.12", + "resolved": "https://registry.npmmirror.com/hono/-/hono-4.12.12.tgz", + "integrity": "sha512-p1JfQMKaceuCbpJKAPKVqyqviZdS0eUxH9v82oWo1kb9xjQ5wA6iP3FNVAPDFlz5/p7d45lO+BpSk1tuSZMF4Q==", + "license": "MIT", + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/htmlparser2": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-10.1.0.tgz", + "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "entities": "^7.0.1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/http-status-codes": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/http-status-codes/-/http-status-codes-2.3.0.tgz", + "integrity": "sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==", + "license": "MIT" + }, + "node_modules/iconv-lite": { + "version": "0.7.2", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/immer": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz", @@ -572,6 +1783,27 @@ "node": ">=0.10.0" } }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmmirror.com/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -591,6 +1823,12 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -600,6 +1838,12 @@ "node": ">=0.10.0" } }, + "node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0" + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -612,6 +1856,21 @@ "loose-envify": "cli.js" } }, + "node_modules/lru.min": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/lru.min/-/lru.min-1.1.4.tgz", + "integrity": "sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA==", + "license": "MIT", + "engines": { + "bun": ">=1.0.0", + "deno": ">=1.30.0", + "node": ">=8.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wellwelwel" + } + }, "node_modules/marked": { "version": "17.0.6", "resolved": "https://registry.npmjs.org/marked/-/marked-17.0.6.tgz", @@ -624,6 +1883,71 @@ "node": ">= 20" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mysql2": { + "version": "3.15.3", + "resolved": "https://registry.npmmirror.com/mysql2/-/mysql2-3.15.3.tgz", + "integrity": "sha512-FBrGau0IXmuqg4haEZRBfHNWB5mUARw6hNwPDXXGg0XzVJ50mr/9hb267lvpVMnhZ1FON3qNd4Xfcez1rbFwSg==", + "license": "MIT", + "dependencies": { + "aws-ssl-profiles": "^1.1.1", + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.7.0", + "long": "^5.2.1", + "lru.min": "^1.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/named-placeholders": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/named-placeholders/-/named-placeholders-1.1.6.tgz", + "integrity": "sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==", + "license": "MIT", + "dependencies": { + "lru.min": "^1.1.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/nanoid": { "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", @@ -692,12 +2016,145 @@ } } }, + "node_modules/node-fetch-native": { + "version": "1.6.7", + "resolved": "https://registry.npmmirror.com/node-fetch-native/-/node-fetch-native-1.6.7.tgz", + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", + "license": "MIT" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nypm": { + "version": "0.6.5", + "resolved": "https://registry.npmmirror.com/nypm/-/nypm-0.6.5.tgz", + "integrity": "sha512-K6AJy1GMVyfyMXRVB88700BJqNUkByijGJM8kEHpLdcAt+vSQAVfkWWHYzuRXHSY6xA2sNc5RjTj0p9rE2izVQ==", + "license": "MIT", + "dependencies": { + "citty": "^0.2.0", + "pathe": "^2.0.3", + "tinyexec": "^1.0.2" + }, + "bin": { + "nypm": "dist/cli.mjs" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/nypm/node_modules/citty": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/citty/-/citty-0.2.2.tgz", + "integrity": "sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==", + "license": "MIT" + }, + "node_modules/ohash": { + "version": "2.0.11", + "resolved": "https://registry.npmmirror.com/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", + "license": "MIT" + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmmirror.com/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "license": "ISC" }, + "node_modules/pkg-types": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-2.3.0.tgz", + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", + "license": "MIT", + "dependencies": { + "confbox": "^0.2.2", + "exsolve": "^1.0.7", + "pathe": "^2.0.3" + } + }, "node_modules/postcss": { "version": "8.4.31", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", @@ -726,6 +2183,105 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postgres": { + "version": "3.4.7", + "resolved": "https://registry.npmmirror.com/postgres/-/postgres-3.4.7.tgz", + "integrity": "sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw==", + "license": "Unlicense", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/porsager" + } + }, + "node_modules/prisma": { + "version": "7.7.0", + "resolved": "https://registry.npmmirror.com/prisma/-/prisma-7.7.0.tgz", + "integrity": "sha512-HlgwRBt1uEFB9LStHL4HLYDvoi4BNu1rYA0hPG0zCAEyK9SaZBqp7E5Rjpc3Qh8Lex/ye/svoHZ0OWoFNhWxuQ==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/config": "7.7.0", + "@prisma/dev": "0.24.3", + "@prisma/engines": "7.7.0", + "@prisma/studio-core": "0.27.3", + "mysql2": "3.15.3", + "postgres": "3.4.7" + }, + "bin": { + "prisma": "build/index.js" + }, + "engines": { + "node": "^20.19 || ^22.12 || >=24.0" + }, + "peerDependencies": { + "better-sqlite3": ">=9.0.0", + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "better-sqlite3": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/proper-lockfile": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz", + "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "retry": "^0.12.0", + "signal-exit": "^3.0.2" + } + }, + "node_modules/proper-lockfile/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "node_modules/rc9": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/rc9/-/rc9-2.1.2.tgz", + "integrity": "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==", + "license": "MIT", + "dependencies": { + "defu": "^6.1.4", + "destr": "^2.0.3" + } + }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -781,6 +2337,19 @@ } } }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/recharts": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/recharts/-/recharts-3.8.1.tgz", @@ -826,12 +2395,45 @@ "redux": "^5.0.0" } }, + "node_modules/remeda": { + "version": "2.33.4", + "resolved": "https://registry.npmmirror.com/remeda/-/remeda-2.33.4.tgz", + "integrity": "sha512-ygHswjlc/opg2VrtiYvUOPLjxjtdKvjGz1/plDhkG66hjNjFr1xmfrs2ClNFo/E6TyUFiwYNh53bKV26oBoMGQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/remeda" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/reselect": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==", "license": "MIT" }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmmirror.com/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", @@ -854,6 +2456,44 @@ "node": ">=4" } }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmmirror.com/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -869,6 +2509,21 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "license": "BSD-3-Clause" }, + "node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmmirror.com/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "license": "MIT" + }, "node_modules/streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -915,12 +2570,31 @@ "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", "license": "MIT" }, + "node_modules/tinyexec": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/tinyexec/-/tinyexec-1.1.1.tgz", + "integrity": "sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, + "node_modules/undici": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/undici/-/undici-7.24.7.tgz", + "integrity": "sha512-H/nlJ/h0ggGC+uRL3ovD+G0i4bqhvsDOpbDv7At5eFLlj2b41L8QliGbnl2H7SnDiYhENphh1tQFJZf+MyfLsQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.18.1" + } + }, "node_modules/use-sync-external-store": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", @@ -930,6 +2604,20 @@ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, + "node_modules/valibot": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/valibot/-/valibot-1.2.0.tgz", + "integrity": "sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg==", + "license": "MIT", + "peerDependencies": { + "typescript": ">=5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/victory-vendor": { "version": "37.3.6", "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-37.3.6.tgz", @@ -951,6 +2639,68 @@ "d3-time": "^3.0.0", "d3-timer": "^3.0.1" } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/zeptomatch": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/zeptomatch/-/zeptomatch-2.1.0.tgz", + "integrity": "sha512-KiGErG2J0G82LSpniV0CtIzjlJ10E04j02VOudJsPyPwNZgGnRKQy7I1R7GMyg/QswnE4l7ohSGrQbQbjXPPDA==", + "license": "MIT", + "dependencies": { + "grammex": "^3.1.11", + "graphmatch": "^1.1.0" + } } } } diff --git a/package.json b/package.json index 0996ab1..cd080e0 100644 --- a/package.json +++ b/package.json @@ -8,9 +8,11 @@ "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { + "@prisma/client": "^7.7.0", "gray-matter": "^4.0.3", "marked": "^17.0.6", "next": "^14.2.3", + "prisma": "^7.7.0", "react": "^18.2.0", "react-dom": "^18.2.0", "recharts": "^3.8.1" @@ -18,5 +20,10 @@ "keywords": [], "author": "", "license": "ISC", - "description": "" + "description": "", + "devDependencies": { + "axios": "^1.15.0", + "cheerio": "^1.2.0", + "csv-parser": "^3.2.0" + } } diff --git a/prisma.config.ts b/prisma.config.ts new file mode 100644 index 0000000..831a20f --- /dev/null +++ b/prisma.config.ts @@ -0,0 +1,14 @@ +// This file was generated by Prisma, and assumes you have installed the following: +// npm install --save-dev prisma dotenv +import "dotenv/config"; +import { defineConfig } from "prisma/config"; + +export default defineConfig({ + schema: "prisma/schema.prisma", + migrations: { + path: "prisma/migrations", + }, + datasource: { + url: process.env["DATABASE_URL"], + }, +}); diff --git a/prisma/migrations/20260409135419_init/migration.sql b/prisma/migrations/20260409135419_init/migration.sql new file mode 100644 index 0000000..4ceb116 --- /dev/null +++ b/prisma/migrations/20260409135419_init/migration.sql @@ -0,0 +1,62 @@ +-- CreateTable +CREATE TABLE `User` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `name` VARCHAR(191) NOT NULL, + `email` VARCHAR(191) NOT NULL, + `password` VARCHAR(191) NOT NULL, + `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + `updatedAt` DATETIME(3) NOT NULL, + + UNIQUE INDEX `User_email_key`(`email`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `Article` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `title` VARCHAR(191) NOT NULL, + `slug` VARCHAR(191) NOT NULL, + `content` VARCHAR(191) NOT NULL, + `date` VARCHAR(191) NOT NULL, + `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + `updatedAt` DATETIME(3) NOT NULL, + + UNIQUE INDEX `Article_slug_key`(`slug`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `Strategy` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `name` VARCHAR(191) NOT NULL, + `description` VARCHAR(191) NOT NULL, + `data` JSON NOT NULL, + `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + `updatedAt` DATETIME(3) NOT NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `Indicator` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `name` VARCHAR(191) NOT NULL, + `groupName` VARCHAR(191) NOT NULL, + `data` JSON NOT NULL, + `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + `updatedAt` DATETIME(3) NOT NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `SowInventory` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `month` VARCHAR(191) NOT NULL, + `inventory` INTEGER NOT NULL, + `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + `updatedAt` DATETIME(3) NOT NULL, + + UNIQUE INDEX `SowInventory_month_key`(`month`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; diff --git a/prisma/migrations/20260409135954_rename_sow_inventory/migration.sql b/prisma/migrations/20260409135954_rename_sow_inventory/migration.sql new file mode 100644 index 0000000..9cc3f2d --- /dev/null +++ b/prisma/migrations/20260409135954_rename_sow_inventory/migration.sql @@ -0,0 +1,20 @@ +/* + Warnings: + + - You are about to drop the `SowInventory` table. If the table is not empty, all the data it contains will be lost. + +*/ +-- DropTable +DROP TABLE `SowInventory`; + +-- CreateTable +CREATE TABLE `Econ_SowInventory` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `month` VARCHAR(191) NOT NULL, + `inventory` INTEGER NOT NULL, + `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + `updatedAt` DATETIME(3) NOT NULL, + + UNIQUE INDEX `Econ_SowInventory_month_key`(`month`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; diff --git a/prisma/migrations/migration_lock.toml b/prisma/migrations/migration_lock.toml new file mode 100644 index 0000000..592fc0b --- /dev/null +++ b/prisma/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (e.g., Git) +provider = "mysql" diff --git a/prisma/schema.prisma b/prisma/schema.prisma new file mode 100644 index 0000000..5d849d2 --- /dev/null +++ b/prisma/schema.prisma @@ -0,0 +1,58 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +// Get a free hosted Postgres database in seconds: `npx create-db` + +generator client { + provider = "prisma-client" + output = "../generated/prisma" +} + +datasource db { + provider = "mysql" +} + +model User { + id Int @id @default(autoincrement()) + name String + email String @unique + password String + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt +} + +model Article { + id Int @id @default(autoincrement()) + title String + slug String @unique + content String + date String + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt +} + +model Strategy { + id Int @id @default(autoincrement()) + name String + description String + data Json + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt +} + +model Indicator { + id Int @id @default(autoincrement()) + name String + groupName String + data Json + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt +} + +model Econ_SowInventory { + id Int @id @default(autoincrement()) + month String @unique + inventory Int // 能繁母猪数量(万头) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt +} diff --git a/scripts/scraper/README.md b/scripts/scraper/README.md new file mode 100644 index 0000000..0e4224d --- /dev/null +++ b/scripts/scraper/README.md @@ -0,0 +1,62 @@ +# 数据爬取脚本 + +本目录包含用于从各种数据源爬取经济数据的脚本。 + +## 目录结构 + +- `sow-inventory-scraper.js` - 爬取能繁母猪数量数据 +- `template-scraper.js` - 通用爬取脚本模板 + +## 依赖 + +- axios - 用于发送HTTP请求 +- cheerio - 用于解析HTML内容 +- csv-parser - 用于解析CSV格式数据 + +## 安装依赖 + +```bash +npm install +``` + +## 使用方法 + +1. **修改脚本配置**: + - 打开相应的爬取脚本 + - 修改数据源URL和数据提取逻辑 + +2. **运行爬取脚本**: + ```bash + node scripts/scraper/sow-inventory-scraper.js + ``` + +## 注意事项 + +1. **数据来源合规性**:确保爬取的数据来源符合相关法律法规 +2. **爬虫礼仪**:设置合理的请求间隔,避免对目标网站造成压力 +3. **数据验证**:爬取后对数据进行验证,确保数据准确性 +4. **错误处理**:脚本包含基本的错误处理,但可能需要根据实际情况进行调整 + +## 扩展指南 + +1. **添加新的爬取脚本**: + - 复制 `template-scraper.js` 模板 + - 修改数据源URL和数据提取逻辑 + - 更新数据库存储逻辑 + +2. **修改数据提取逻辑**: + - 使用Cheerio选择器提取HTML中的数据 + - 对于CSV数据,使用csv-parser解析 + - 对于JSON数据,直接处理响应数据 + +3. **数据存储**: + - 脚本会自动将数据存储到数据库 + - 会检查数据是否已存在,存在则更新,不存在则创建 + +## 示例 + +爬取浙江省能繁母猪数量数据: + +```bash +node scripts/scraper/sow-inventory-scraper.js +``` diff --git a/scripts/scraper/sow-inventory-scraper.js b/scripts/scraper/sow-inventory-scraper.js new file mode 100644 index 0000000..6914818 --- /dev/null +++ b/scripts/scraper/sow-inventory-scraper.js @@ -0,0 +1,95 @@ +const axios = require('axios'); +const cheerio = require('cheerio'); +const fs = require('fs'); +const path = require('path'); +const { PrismaClient } = require('../../generated/prisma'); + +const prisma = new PrismaClient(); + +// 浙江数据开放网站URL(示例,实际需要根据真实网站修改) +const ZHEJIANG_OPEN_DATA_URL = 'https://data.zj.gov.cn/'; + +// 能繁母猪数量数据爬取函数 +async function scrapeSowInventory() { + try { + console.log('开始爬取浙江省能繁母猪数量数据...'); + + // 1. 发送HTTP请求获取页面内容 + const response = await axios.get(ZHEJIANG_OPEN_DATA_URL, { + headers: { + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' + } + }); + + // 2. 解析HTML内容 + const $ = cheerio.load(response.data); + + // 3. 提取数据(这里需要根据实际网站结构修改选择器) + // 示例:假设数据在表格中 + const data = []; + + $('table').each((tableIndex, table) => { + $(table).find('tr').each((rowIndex, row) => { + if (rowIndex > 0) { // 跳过表头 + const cells = $(row).find('td'); + if (cells.length >= 2) { + const month = $(cells[0]).text().trim(); + const inventory = parseInt($(cells[1]).text().trim()); + + if (month && !isNaN(inventory)) { + data.push({ + month, + inventory + }); + } + } + } + }); + }); + + console.log(`爬取到 ${data.length} 条数据`); + + // 4. 存储数据到数据库 + for (const item of data) { + try { + // 检查数据是否已存在 + const existing = await prisma.econ_SowInventory.findUnique({ + where: { month: item.month } + }); + + if (existing) { + // 更新现有数据 + await prisma.econ_SowInventory.update({ + where: { month: item.month }, + data: { inventory: item.inventory } + }); + console.log(`更新数据: ${item.month} - ${item.inventory}`); + } else { + // 创建新数据 + await prisma.econ_SowInventory.create({ + data: item + }); + console.log(`新增数据: ${item.month} - ${item.inventory}`); + } + } catch (error) { + console.error(`处理数据 ${item.month} 时出错:`, error.message); + } + } + + console.log('数据爬取和存储完成!'); + + } catch (error) { + console.error('爬取数据时出错:', error.message); + } finally { + // 关闭Prisma连接 + await prisma.$disconnect(); + } +} + +// 导出函数 +module.exports = { scrapeSowInventory }; + +// 如果直接运行此文件 +if (require.main === module) { + scrapeSowInventory(); +} diff --git a/scripts/scraper/template-scraper.js b/scripts/scraper/template-scraper.js new file mode 100644 index 0000000..83d07c6 --- /dev/null +++ b/scripts/scraper/template-scraper.js @@ -0,0 +1,100 @@ +const axios = require('axios'); +const cheerio = require('cheerio'); +const fs = require('fs'); +const path = require('path'); +const { PrismaClient } = require('../../generated/prisma'); + +const prisma = new PrismaClient(); + +// 数据源URL(需要根据实际情况修改) +const DATA_SOURCE_URL = 'https://example.com/data'; + +// 通用数据爬取函数 +async function scrapeData() { + try { + console.log('开始爬取数据...'); + + // 1. 发送HTTP请求获取页面内容 + const response = await axios.get(DATA_SOURCE_URL, { + headers: { + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' + } + }); + + // 2. 解析HTML内容 + const $ = cheerio.load(response.data); + + // 3. 提取数据(需要根据实际网站结构修改) + const data = []; + + // 示例:从表格中提取数据 + $('table').each((tableIndex, table) => { + $(table).find('tr').each((rowIndex, row) => { + if (rowIndex > 0) { // 跳过表头 + const cells = $(row).find('td'); + // 根据实际表格结构提取数据 + // 示例:假设第一列是日期,第二列是数值 + if (cells.length >= 2) { + const date = $(cells[0]).text().trim(); + const value = parseFloat($(cells[1]).text().trim()); + + if (date && !isNaN(value)) { + data.push({ + date, + value + }); + } + } + } + }); + }); + + console.log(`爬取到 ${data.length} 条数据`); + + // 4. 存储数据到数据库(需要根据实际表结构修改) + for (const item of data) { + try { + // 这里需要根据实际表结构修改 + // 示例:存储到某个表 + /* + const existing = await prisma.someTable.findUnique({ + where: { date: item.date } + }); + + if (existing) { + // 更新现有数据 + await prisma.someTable.update({ + where: { date: item.date }, + data: { value: item.value } + }); + console.log(`更新数据: ${item.date} - ${item.value}`); + } else { + // 创建新数据 + await prisma.someTable.create({ + data: item + }); + console.log(`新增数据: ${item.date} - ${item.value}`); + } + */ + } catch (error) { + console.error(`处理数据时出错:`, error.message); + } + } + + console.log('数据爬取和存储完成!'); + + } catch (error) { + console.error('爬取数据时出错:', error.message); + } finally { + // 关闭Prisma连接 + await prisma.$disconnect(); + } +} + +// 导出函数 +module.exports = { scrapeData }; + +// 如果直接运行此文件 +if (require.main === module) { + scrapeData(); +}