diff --git a/common/errors/app.error.ts b/common/errors/app.error.ts new file mode 100644 index 0000000..2612d13 --- /dev/null +++ b/common/errors/app.error.ts @@ -0,0 +1,18 @@ +// src/common/errors/app.error.ts +export class AppError extends Error { + public readonly errorCode: string; + public readonly statusCode: number; + public readonly data?: any; + + constructor(params?: { + errorCode: string; + message: string; + statusCode: number; + data?: any; + }) { + super(params?.message); + this.errorCode = params?.errorCode ?? "UNKNOWN"; + this.statusCode = params?.statusCode ?? 500; + this.data = params?.data ?? null; + } +} diff --git a/common/errors/error.ts b/common/errors/error.ts new file mode 100644 index 0000000..67eee71 --- /dev/null +++ b/common/errors/error.ts @@ -0,0 +1,33 @@ +// src/common/errors/error.ts +import { AppError } from "./app.error.js"; + +export class DuplicateUserEmailError extends AppError { + constructor(message: string, data?: unknown) { + super({ + errorCode: "U001", + statusCode: 409, + message, + data, + }); + } +} + +export class MissionAlreadyInProgressError extends AppError { + constructor() { + super({ + errorCode: "M001", + statusCode: 400, + message: "이미 도전 중인 미션입니다.", + }); + } +} + +export class MissionAlreadyCompletedError extends AppError { + constructor() { + super({ + errorCode: "M002", + statusCode: 400, + message: "이미 완료한 미션입니다.", + }); + } +} diff --git a/common/middlewares/auth.middleware.ts b/common/middlewares/auth.middleware.ts new file mode 100644 index 0000000..b39ff0d --- /dev/null +++ b/common/middlewares/auth.middleware.ts @@ -0,0 +1,20 @@ +// src/common/middlewares/auth.middleware.ts +import { Request, Response, NextFunction } from "express"; + +export function authorizeUser() { + return async (req: Request, res: Response, next: NextFunction) => { + const { username } = req.cookies; + + if (username) { + console.log(`[인증 성공] ${username}님, 환영합니다.`); + next(); + } else { + console.log("[인증 실패] 로그인이 필요합니다."); + res + .status(401) + .send( + '', + ); + } + }; +} diff --git a/common/responses/response.ts b/common/responses/response.ts new file mode 100644 index 0000000..786c86b --- /dev/null +++ b/common/responses/response.ts @@ -0,0 +1,11 @@ +// src/common/responses/response.ts +export interface ApiResponse { + resultType: "SUCCESS"; + error: null; + data: T; +} +export const success = (data: T): ApiResponse => ({ + resultType: "SUCCESS", + error: null, + data, +}); diff --git a/db.config.js b/db.config.js new file mode 100644 index 0000000..138f8da --- /dev/null +++ b/db.config.js @@ -0,0 +1,7 @@ +// src/db.config.ts +import "dotenv/config"; +import { PrismaClient } from "./generated/prisma/client.js"; +export const prisma = new PrismaClient({ + log: ["query", "info", "warn", "error"], +}); +//# sourceMappingURL=db.config.js.map \ No newline at end of file diff --git a/db.config.js.map b/db.config.js.map new file mode 100644 index 0000000..831a535 --- /dev/null +++ b/db.config.js.map @@ -0,0 +1 @@ +{"version":3,"file":"db.config.js","sourceRoot":"","sources":["../src/db.config.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC;IACrC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;CACxC,CAAC,CAAC"} \ No newline at end of file diff --git a/db.config.ts b/db.config.ts new file mode 100644 index 0000000..29b05b0 --- /dev/null +++ b/db.config.ts @@ -0,0 +1,4 @@ +// src/db.config.ts +import { PrismaClient } from "@prisma/client"; + +export const prisma = new PrismaClient(); diff --git a/generated/prisma/browser.js b/generated/prisma/browser.js new file mode 100644 index 0000000..35f594f --- /dev/null +++ b/generated/prisma/browser.js @@ -0,0 +1,18 @@ +/* !!! 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.js'; +export { Prisma }; +export * as $Enums from './enums.js'; +export * from './enums.js'; +//# sourceMappingURL=browser.js.map \ No newline at end of file diff --git a/generated/prisma/browser.js.map b/generated/prisma/browser.js.map new file mode 100644 index 0000000..b121910 --- /dev/null +++ b/generated/prisma/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/generated/prisma/browser.ts"],"names":[],"mappings":"AACA,qEAAqE;AACrE,oBAAoB;AACpB,wCAAwC;AACxC,eAAe;AACf;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,MAAM,sCAAsC,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,CAAA;AACjB,OAAO,KAAK,MAAM,MAAM,YAAY,CAAA;AACpC,cAAc,YAAY,CAAC"} \ No newline at end of file diff --git a/generated/prisma/browser.ts b/generated/prisma/browser.ts new file mode 100644 index 0000000..76f371d --- /dev/null +++ b/generated/prisma/browser.ts @@ -0,0 +1,54 @@ + +/* !!! 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.js' +export { Prisma } +export * as $Enums from './enums.js' +export * from './enums.js'; +/** + * Model User + * + */ +export type User = Prisma.UserModel +/** + * Model FoodCategory + * + */ +export type FoodCategory = Prisma.FoodCategoryModel +/** + * Model UserFavorCategory + * + */ +export type UserFavorCategory = Prisma.UserFavorCategoryModel +/** + * Model Store + * + */ +export type Store = Prisma.StoreModel +/** + * Model UserStoreReview + * + */ +export type UserStoreReview = Prisma.UserStoreReviewModel +/** + * Model Mission + * + */ +export type Mission = Prisma.MissionModel +/** + * Model UserMission + * + */ +export type UserMission = Prisma.UserMissionModel diff --git a/generated/prisma/client.js b/generated/prisma/client.js new file mode 100644 index 0000000..285b0e8 --- /dev/null +++ b/generated/prisma/client.js @@ -0,0 +1,37 @@ +/* !!! 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 $Class from "./internal/class.js"; +import * as Prisma from "./internal/prismaNamespace.js"; +export * as $Enums from './enums.js'; +export * from "./enums.js"; +/** + * ## Prisma Client + * + * Type-safe database client for TypeScript + * @example + * ``` + * const prisma = new PrismaClient() + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client). + */ +export const PrismaClient = $Class.getPrismaClientClass(__dirname); +export { Prisma }; +// file annotations for bundling tools to include these files +path.join(__dirname, "libquery_engine-darwin.dylib.node"); +path.join(process.cwd(), "src/generated/prisma/libquery_engine-darwin.dylib.node"); +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/generated/prisma/client.js.map b/generated/prisma/client.js.map new file mode 100644 index 0000000..b96d96e --- /dev/null +++ b/generated/prisma/client.js.map @@ -0,0 +1 @@ +{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/generated/prisma/client.ts"],"names":[],"mappings":"AACA,qEAAqE;AACrE,oBAAoB;AACpB,wCAAwC;AACxC,eAAe;AACf;;;;;GAKG;AAEH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAItE,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAEvD,OAAO,KAAK,MAAM,MAAM,YAAY,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAA;AAElE,OAAO,EAAE,MAAM,EAAE,CAAA;AAGjB,6DAA6D;AAC7D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mCAAmC,CAAC,CAAA;AACzD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,wDAAwD,CAAC,CAAA"} \ No newline at end of file diff --git a/generated/prisma/client.ts b/generated/prisma/client.ts new file mode 100644 index 0000000..af8732f --- /dev/null +++ b/generated/prisma/client.ts @@ -0,0 +1,81 @@ + +/* !!! 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/library" +import * as $Enums from "./enums.js" +import * as $Class from "./internal/class.js" +import * as Prisma from "./internal/prismaNamespace.js" + +export * as $Enums from './enums.js' +export * from "./enums.js" +/** + * ## Prisma Client + * + * Type-safe database client for TypeScript + * @example + * ``` + * const prisma = new PrismaClient() + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client). + */ +export const PrismaClient = $Class.getPrismaClientClass(__dirname) +export type PrismaClient = $Class.PrismaClient +export { Prisma } + + +// file annotations for bundling tools to include these files +path.join(__dirname, "libquery_engine-darwin.dylib.node") +path.join(process.cwd(), "src/generated/prisma/libquery_engine-darwin.dylib.node") + +/** + * Model User + * + */ +export type User = Prisma.UserModel +/** + * Model FoodCategory + * + */ +export type FoodCategory = Prisma.FoodCategoryModel +/** + * Model UserFavorCategory + * + */ +export type UserFavorCategory = Prisma.UserFavorCategoryModel +/** + * Model Store + * + */ +export type Store = Prisma.StoreModel +/** + * Model UserStoreReview + * + */ +export type UserStoreReview = Prisma.UserStoreReviewModel +/** + * Model Mission + * + */ +export type Mission = Prisma.MissionModel +/** + * Model UserMission + * + */ +export type UserMission = Prisma.UserMissionModel diff --git a/generated/prisma/commonInputTypes.js b/generated/prisma/commonInputTypes.js new file mode 100644 index 0000000..6310167 --- /dev/null +++ b/generated/prisma/commonInputTypes.js @@ -0,0 +1,11 @@ +/* !!! 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. + */ +export {}; +//# sourceMappingURL=commonInputTypes.js.map \ No newline at end of file diff --git a/generated/prisma/commonInputTypes.js.map b/generated/prisma/commonInputTypes.js.map new file mode 100644 index 0000000..86eb2f7 --- /dev/null +++ b/generated/prisma/commonInputTypes.js.map @@ -0,0 +1 @@ +{"version":3,"file":"commonInputTypes.js","sourceRoot":"","sources":["../../../src/generated/prisma/commonInputTypes.ts"],"names":[],"mappings":"AACA,qEAAqE;AACrE,oBAAoB;AACpB,wCAAwC;AACxC,eAAe;AACf;;;;GAIG"} \ No newline at end of file diff --git a/generated/prisma/commonInputTypes.ts b/generated/prisma/commonInputTypes.ts new file mode 100644 index 0000000..ff6246e --- /dev/null +++ b/generated/prisma/commonInputTypes.ts @@ -0,0 +1,323 @@ + +/* !!! 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/library" +import * as $Enums from "./enums.js" +import type * as Prisma from "./internal/prismaNamespace.js" + + +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 StringNullableFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null + in?: string[] | null + notIn?: string[] | null + 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.NestedStringNullableFilter<$PrismaModel> | string | null +} + +export type SortOrderInput = { + sort: Prisma.SortOrder + nulls?: Prisma.NullsOrder +} + +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 StringNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null + in?: string[] | null + notIn?: string[] | null + 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.NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null + _count?: Prisma.NestedIntNullableFilter<$PrismaModel> + _min?: Prisma.NestedStringNullableFilter<$PrismaModel> + _max?: Prisma.NestedStringNullableFilter<$PrismaModel> +} + +export type FloatFilter<$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 FloatWithAggregatesFilter<$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.NestedFloatWithAggregatesFilter<$PrismaModel> | number + _count?: Prisma.NestedIntFilter<$PrismaModel> + _avg?: Prisma.NestedFloatFilter<$PrismaModel> + _sum?: Prisma.NestedFloatFilter<$PrismaModel> + _min?: Prisma.NestedFloatFilter<$PrismaModel> + _max?: Prisma.NestedFloatFilter<$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 NestedStringNullableFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null + in?: string[] | null + notIn?: string[] | null + 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.NestedStringNullableFilter<$PrismaModel> | string | null +} + +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 NestedStringNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null + in?: string[] | null + notIn?: string[] | null + 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.NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null + _count?: Prisma.NestedIntNullableFilter<$PrismaModel> + _min?: Prisma.NestedStringNullableFilter<$PrismaModel> + _max?: Prisma.NestedStringNullableFilter<$PrismaModel> +} + +export type NestedIntNullableFilter<$PrismaModel = never> = { + equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null + in?: number[] | null + notIn?: number[] | null + lt?: number | Prisma.IntFieldRefInput<$PrismaModel> + lte?: number | Prisma.IntFieldRefInput<$PrismaModel> + gt?: number | Prisma.IntFieldRefInput<$PrismaModel> + gte?: number | Prisma.IntFieldRefInput<$PrismaModel> + not?: Prisma.NestedIntNullableFilter<$PrismaModel> | number | null +} + +export type NestedFloatWithAggregatesFilter<$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.NestedFloatWithAggregatesFilter<$PrismaModel> | number + _count?: Prisma.NestedIntFilter<$PrismaModel> + _avg?: Prisma.NestedFloatFilter<$PrismaModel> + _sum?: Prisma.NestedFloatFilter<$PrismaModel> + _min?: Prisma.NestedFloatFilter<$PrismaModel> + _max?: Prisma.NestedFloatFilter<$PrismaModel> +} + + diff --git a/generated/prisma/enums.js b/generated/prisma/enums.js new file mode 100644 index 0000000..00e3361 --- /dev/null +++ b/generated/prisma/enums.js @@ -0,0 +1,11 @@ +/* !!! 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. +*/ +export {}; +//# sourceMappingURL=enums.js.map \ No newline at end of file diff --git a/generated/prisma/enums.js.map b/generated/prisma/enums.js.map new file mode 100644 index 0000000..5a778b8 --- /dev/null +++ b/generated/prisma/enums.js.map @@ -0,0 +1 @@ +{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/generated/prisma/enums.ts"],"names":[],"mappings":"AACA,qEAAqE;AACrE,oBAAoB;AACpB,wCAAwC;AACxC,eAAe;AACf;;;;EAIE"} \ No newline at end of file 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.js b/generated/prisma/internal/class.js new file mode 100644 index 0000000..df2dfef --- /dev/null +++ b/generated/prisma/internal/class.js @@ -0,0 +1,71 @@ +/* !!! 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/library"; +const config = { + "generator": { + "name": "client", + "provider": { + "fromEnvVar": null, + "value": "prisma-client" + }, + "output": { + "value": "/Users/igeumbi/Downloads/10th_Node.js-rain-week6/src/generated/prisma", + "fromEnvVar": null + }, + "config": { + "engineType": "library" + }, + "binaryTargets": [ + { + "fromEnvVar": null, + "value": "darwin", + "native": true + } + ], + "previewFeatures": [], + "sourceFilePath": "/Users/igeumbi/Downloads/10th_Node.js-rain-week6/prisma/schema.prisma", + "isCustomOutput": true + }, + "relativePath": "../../../prisma", + "clientVersion": "6.19.3", + "engineVersion": "c2990dca591cba766e3b7ef5d9e8a84796e47ab7", + "datasourceNames": [ + "db" + ], + "activeProvider": "mysql", + "postinstall": false, + "inlineDatasources": { + "db": { + "url": { + "fromEnvVar": "DATABASE_URL", + "value": null + } + } + }, + "inlineSchema": "generator client {\n provider = \"prisma-client\"\n output = \"../src/generated/prisma\"\n}\n\ndatasource db {\n provider = \"mysql\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel User {\n id Int @id @default(autoincrement())\n email String @unique(map: \"email\") @db.VarChar(255)\n name String @db.VarChar(100)\n gender String @db.VarChar(15)\n birth DateTime @db.Date\n address String @db.VarChar(255)\n detailAddress String? @map(\"detail_address\") @db.VarChar(255)\n phoneNumber String @map(\"phone_number\") @db.VarChar(15)\n\n userFavorCategories UserFavorCategory[]\n storeReviews UserStoreReview[]\n userMissions UserMission[]\n\n @@map(\"user\")\n}\n\nmodel FoodCategory {\n id Int @id @default(autoincrement())\n name String @db.VarChar(100)\n\n userFavorCategories UserFavorCategory[]\n\n @@map(\"food_category\")\n}\n\nmodel UserFavorCategory {\n id Int @id @default(autoincrement())\n user User @relation(fields: [userId], references: [id])\n userId Int @map(\"user_id\")\n foodCategory FoodCategory @relation(fields: [foodCategoryId], references: [id])\n foodCategoryId Int @map(\"food_category_id\")\n\n @@index([foodCategoryId], map: \"f_category_id\")\n @@index([userId], map: \"user_id\")\n @@map(\"user_favor_category\")\n}\n\nmodel Store {\n id Int @id @default(autoincrement())\n name String @db.VarChar(100)\n\n reviews UserStoreReview[]\n missions Mission[]\n\n @@map(\"store\")\n}\n\nmodel UserStoreReview {\n id Int @id @default(autoincrement())\n content String @db.Text\n rating Float\n createdAt DateTime @default(now())\n\n store Store @relation(fields: [storeId], references: [id])\n storeId Int\n user User @relation(fields: [userId], references: [id])\n userId Int\n}\n\nmodel Mission {\n id Int @id @default(autoincrement())\n storeId Int @map(\"store_id\")\n conditionText String @map(\"condition_text\")\n rewardPoint Int @map(\"reward_point\")\n\n store Store @relation(fields: [storeId], references: [id])\n userMissions UserMission[]\n\n @@map(\"mission\")\n}\n\nmodel UserMission {\n id Int @id @default(autoincrement())\n userId Int @map(\"user_id\")\n missionId Int @map(\"mission_id\")\n status String\n\n user User @relation(fields: [userId], references: [id])\n mission Mission @relation(fields: [missionId], references: [id])\n\n @@unique([userId, missionId])\n @@map(\"user_mission\")\n}\n", + "inlineSchemaHash": "fe81c3168b3c5b0ae4f0514d6d97dab411b66a252757fec421c9f8e427a41e56", + "copyEngine": true, + "runtimeDataModel": { + "models": {}, + "enums": {}, + "types": {} + }, + "dirname": "" +}; +config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"dbName\":\"user\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"email\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"gender\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"15\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"birth\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":[\"Date\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"address\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"detailAddress\",\"dbName\":\"detail_address\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"phoneNumber\",\"dbName\":\"phone_number\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"15\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userFavorCategories\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"UserFavorCategory\",\"nativeType\":null,\"relationName\":\"UserToUserFavorCategory\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"storeReviews\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"UserStoreReview\",\"nativeType\":null,\"relationName\":\"UserToUserStoreReview\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userMissions\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"UserMission\",\"nativeType\":null,\"relationName\":\"UserToUserMission\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"FoodCategory\":{\"dbName\":\"food_category\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userFavorCategories\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"UserFavorCategory\",\"nativeType\":null,\"relationName\":\"FoodCategoryToUserFavorCategory\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"UserFavorCategory\":{\"dbName\":\"user_favor_category\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserToUserFavorCategory\",\"relationFromFields\":[\"userId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"dbName\":\"user_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"foodCategory\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"FoodCategory\",\"nativeType\":null,\"relationName\":\"FoodCategoryToUserFavorCategory\",\"relationFromFields\":[\"foodCategoryId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"foodCategoryId\",\"dbName\":\"food_category_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Store\":{\"dbName\":\"store\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reviews\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"UserStoreReview\",\"nativeType\":null,\"relationName\":\"StoreToUserStoreReview\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"missions\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Mission\",\"nativeType\":null,\"relationName\":\"MissionToStore\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"UserStoreReview\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"content\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Text\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rating\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"store\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Store\",\"nativeType\":null,\"relationName\":\"StoreToUserStoreReview\",\"relationFromFields\":[\"storeId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"storeId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserToUserStoreReview\",\"relationFromFields\":[\"userId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Mission\":{\"dbName\":\"mission\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"storeId\",\"dbName\":\"store_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"conditionText\",\"dbName\":\"condition_text\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rewardPoint\",\"dbName\":\"reward_point\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"store\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Store\",\"nativeType\":null,\"relationName\":\"MissionToStore\",\"relationFromFields\":[\"storeId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userMissions\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"UserMission\",\"nativeType\":null,\"relationName\":\"MissionToUserMission\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"UserMission\":{\"dbName\":\"user_mission\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"dbName\":\"user_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"missionId\",\"dbName\":\"mission_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserToUserMission\",\"relationFromFields\":[\"userId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mission\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Mission\",\"nativeType\":null,\"relationName\":\"MissionToUserMission\",\"relationFromFields\":[\"missionId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"userId\",\"missionId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"userId\",\"missionId\"]}],\"isGenerated\":false}},\"enums\":{},\"types\":{}}"); +config.engineWasm = undefined; +config.compilerWasm = undefined; +export function getPrismaClientClass(dirname) { + config.dirname = dirname; + return runtime.getPrismaClient(config); +} +//# sourceMappingURL=class.js.map \ No newline at end of file diff --git a/generated/prisma/internal/class.js.map b/generated/prisma/internal/class.js.map new file mode 100644 index 0000000..a4fc177 --- /dev/null +++ b/generated/prisma/internal/class.js.map @@ -0,0 +1 @@ +{"version":3,"file":"class.js","sourceRoot":"","sources":["../../../../src/generated/prisma/internal/class.ts"],"names":[],"mappings":"AACA,qEAAqE;AACrE,oBAAoB;AACpB,wCAAwC;AACxC,eAAe;AACf;;;;;;GAMG;AAEH,OAAO,KAAK,OAAO,MAAM,gCAAgC,CAAA;AAIzD,MAAM,MAAM,GAAkC;IAC5C,WAAW,EAAE;QACX,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE;YACV,YAAY,EAAE,IAAI;YAClB,OAAO,EAAE,eAAe;SACzB;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,uEAAuE;YAChF,YAAY,EAAE,IAAI;SACnB;QACD,QAAQ,EAAE;YACR,YAAY,EAAE,SAAS;SACxB;QACD,eAAe,EAAE;YACf;gBACE,YAAY,EAAE,IAAI;gBAClB,OAAO,EAAE,QAAQ;gBACjB,QAAQ,EAAE,IAAI;aACf;SACF;QACD,iBAAiB,EAAE,EAAE;QACrB,gBAAgB,EAAE,uEAAuE;QACzF,gBAAgB,EAAE,IAAI;KACvB;IACD,cAAc,EAAE,iBAAiB;IACjC,eAAe,EAAE,QAAQ;IACzB,eAAe,EAAE,0CAA0C;IAC3D,iBAAiB,EAAE;QACjB,IAAI;KACL;IACD,gBAAgB,EAAE,OAAO;IACzB,aAAa,EAAE,KAAK;IACpB,mBAAmB,EAAE;QACnB,IAAI,EAAE;YACJ,KAAK,EAAE;gBACL,YAAY,EAAE,cAAc;gBAC5B,OAAO,EAAE,IAAI;aACd;SACF;KACF;IACD,cAAc,EAAE,8lFAA8lF;IAC9mF,kBAAkB,EAAE,kEAAkE;IACtF,YAAY,EAAE,IAAI;IAClB,kBAAkB,EAAE;QAClB,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;KACZ;IACD,SAAS,EAAE,EAAE;CACd,CAAA;AAED,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,upbAAupb,CAAC,CAAA;AAC7rb,MAAM,CAAC,UAAU,GAAG,SAAS,CAAA;AAC7B,MAAM,CAAC,YAAY,GAAG,SAAS,CAAA;AA4M/B,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,OAAO,OAAO,CAAC,eAAe,CAAC,MAAM,CAAuC,CAAA;AAC9E,CAAC"} \ No newline at end of file diff --git a/generated/prisma/internal/class.ts b/generated/prisma/internal/class.ts new file mode 100644 index 0000000..025b266 --- /dev/null +++ b/generated/prisma/internal/class.ts @@ -0,0 +1,279 @@ + +/* !!! 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/library" +import type * as Prisma from "./prismaNamespace.js" + + +const config: runtime.GetPrismaClientConfig = { + "generator": { + "name": "client", + "provider": { + "fromEnvVar": null, + "value": "prisma-client" + }, + "output": { + "value": "/Users/igeumbi/Downloads/10th_Node.js-rain-week7/src/generated/prisma", + "fromEnvVar": null + }, + "config": { + "engineType": "library" + }, + "binaryTargets": [ + { + "fromEnvVar": null, + "value": "darwin", + "native": true + } + ], + "previewFeatures": [], + "sourceFilePath": "/Users/igeumbi/Downloads/10th_Node.js-rain-week7/prisma/schema.prisma", + "isCustomOutput": true + }, + "relativePath": "../../../prisma", + "clientVersion": "6.19.3", + "engineVersion": "c2990dca591cba766e3b7ef5d9e8a84796e47ab7", + "datasourceNames": [ + "db" + ], + "activeProvider": "mysql", + "postinstall": false, + "inlineDatasources": { + "db": { + "url": { + "fromEnvVar": "DATABASE_URL", + "value": null + } + } + }, + "inlineSchema": "generator client {\n provider = \"prisma-client\"\n output = \"../src/generated/prisma\"\n}\n\ndatasource db {\n provider = \"mysql\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel User {\n id Int @id @default(autoincrement())\n email String @unique(map: \"email\") @db.VarChar(255)\n name String @db.VarChar(100)\n gender String @db.VarChar(15)\n birth DateTime @db.Date\n address String @db.VarChar(255)\n detailAddress String? @map(\"detail_address\") @db.VarChar(255)\n phoneNumber String @map(\"phone_number\") @db.VarChar(15)\n\n userFavorCategories UserFavorCategory[]\n storeReviews UserStoreReview[]\n userMissions UserMission[]\n\n @@map(\"user\")\n}\n\nmodel FoodCategory {\n id Int @id @default(autoincrement())\n name String @db.VarChar(100)\n\n userFavorCategories UserFavorCategory[]\n\n @@map(\"food_category\")\n}\n\nmodel UserFavorCategory {\n id Int @id @default(autoincrement())\n user User @relation(fields: [userId], references: [id])\n userId Int @map(\"user_id\")\n foodCategory FoodCategory @relation(fields: [foodCategoryId], references: [id])\n foodCategoryId Int @map(\"food_category_id\")\n\n @@index([foodCategoryId], map: \"f_category_id\")\n @@index([userId], map: \"user_id\")\n @@map(\"user_favor_category\")\n}\n\nmodel Store {\n id Int @id @default(autoincrement())\n name String @db.VarChar(100)\n\n reviews UserStoreReview[]\n missions Mission[]\n\n @@map(\"store\")\n}\n\nmodel UserStoreReview {\n id Int @id @default(autoincrement())\n content String @db.Text\n rating Float\n createdAt DateTime @default(now())\n\n store Store @relation(fields: [storeId], references: [id])\n storeId Int\n user User @relation(fields: [userId], references: [id])\n userId Int\n}\n\nmodel Mission {\n id Int @id @default(autoincrement())\n storeId Int @map(\"store_id\")\n conditionText String @map(\"condition_text\")\n rewardPoint Int @map(\"reward_point\")\n\n store Store @relation(fields: [storeId], references: [id])\n userMissions UserMission[]\n\n @@map(\"mission\")\n}\n\nmodel UserMission {\n id Int @id @default(autoincrement())\n userId Int @map(\"user_id\")\n missionId Int @map(\"mission_id\")\n status String\n\n user User @relation(fields: [userId], references: [id])\n mission Mission @relation(fields: [missionId], references: [id])\n\n @@unique([userId, missionId])\n @@map(\"user_mission\")\n}\n", + "inlineSchemaHash": "fe81c3168b3c5b0ae4f0514d6d97dab411b66a252757fec421c9f8e427a41e56", + "copyEngine": true, + "runtimeDataModel": { + "models": {}, + "enums": {}, + "types": {} + }, + "dirname": "" +} + +config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"dbName\":\"user\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"email\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"gender\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"15\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"birth\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":[\"Date\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"address\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"detailAddress\",\"dbName\":\"detail_address\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"phoneNumber\",\"dbName\":\"phone_number\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"15\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userFavorCategories\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"UserFavorCategory\",\"nativeType\":null,\"relationName\":\"UserToUserFavorCategory\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"storeReviews\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"UserStoreReview\",\"nativeType\":null,\"relationName\":\"UserToUserStoreReview\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userMissions\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"UserMission\",\"nativeType\":null,\"relationName\":\"UserToUserMission\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"FoodCategory\":{\"dbName\":\"food_category\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userFavorCategories\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"UserFavorCategory\",\"nativeType\":null,\"relationName\":\"FoodCategoryToUserFavorCategory\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"UserFavorCategory\":{\"dbName\":\"user_favor_category\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserToUserFavorCategory\",\"relationFromFields\":[\"userId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"dbName\":\"user_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"foodCategory\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"FoodCategory\",\"nativeType\":null,\"relationName\":\"FoodCategoryToUserFavorCategory\",\"relationFromFields\":[\"foodCategoryId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"foodCategoryId\",\"dbName\":\"food_category_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Store\":{\"dbName\":\"store\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reviews\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"UserStoreReview\",\"nativeType\":null,\"relationName\":\"StoreToUserStoreReview\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"missions\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Mission\",\"nativeType\":null,\"relationName\":\"MissionToStore\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"UserStoreReview\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"content\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Text\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rating\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Float\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"store\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Store\",\"nativeType\":null,\"relationName\":\"StoreToUserStoreReview\",\"relationFromFields\":[\"storeId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"storeId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserToUserStoreReview\",\"relationFromFields\":[\"userId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Mission\":{\"dbName\":\"mission\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"storeId\",\"dbName\":\"store_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"conditionText\",\"dbName\":\"condition_text\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rewardPoint\",\"dbName\":\"reward_point\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"store\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Store\",\"nativeType\":null,\"relationName\":\"MissionToStore\",\"relationFromFields\":[\"storeId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userMissions\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"UserMission\",\"nativeType\":null,\"relationName\":\"MissionToUserMission\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"UserMission\":{\"dbName\":\"user_mission\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"dbName\":\"user_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"missionId\",\"dbName\":\"mission_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserToUserMission\",\"relationFromFields\":[\"userId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mission\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Mission\",\"nativeType\":null,\"relationName\":\"MissionToUserMission\",\"relationFromFields\":[\"missionId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"userId\",\"missionId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"userId\",\"missionId\"]}],\"isGenerated\":false}},\"enums\":{},\"types\":{}}") +config.engineWasm = undefined +config.compilerWasm = undefined + + + + +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() + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client). + */ + + new < + Options extends Prisma.PrismaClientOptions = Prisma.PrismaClientOptions, + LogOpts extends LogOptions = 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() + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client). + */ + +export interface PrismaClient< + in LogOpts extends Prisma.LogLevel = never, + in out OmitOpts extends Prisma.PrismaClientOptions['omit'] = Prisma.PrismaClientOptions['omit'], + 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://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access). + */ + $executeRaw(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise; + + /** + * Executes a raw query and returns the number of affected rows. + * Susceptible to SQL injections, see documentation. + * @example + * ``` + * const result = await prisma.$executeRawUnsafe('UPDATE User SET cool = $1 WHERE email = $2 ;', true, 'user@email.com') + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access). + */ + $executeRawUnsafe(query: string, ...values: any[]): Prisma.PrismaPromise; + + /** + * Performs a prepared raw query and returns the `SELECT` data. + * @example + * ``` + * const result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};` + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access). + */ + $queryRaw(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise; + + /** + * Performs a raw query and returns the `SELECT` data. + * Susceptible to SQL injections, see documentation. + * @example + * ``` + * const result = await prisma.$queryRawUnsafe('SELECT * FROM User WHERE id = $1 OR email = $2;', 1, 'user@email.com') + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access). + */ + $queryRawUnsafe(query: string, ...values: any[]): Prisma.PrismaPromise; + + + /** + * Allows the running of a sequence of read/write operations that are guaranteed to either succeed or fail as a whole. + * @example + * ``` + * const [george, bob, alice] = await prisma.$transaction([ + * prisma.user.create({ data: { name: 'George' } }), + * prisma.user.create({ data: { name: 'Bob' } }), + * prisma.user.create({ data: { name: 'Alice' } }), + * ]) + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/concepts/components/prisma-client/transactions). + */ + $transaction

[]>(arg: [...P], options?: { isolationLevel?: Prisma.TransactionIsolationLevel }): 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.foodCategory`: Exposes CRUD operations for the **FoodCategory** model. + * Example usage: + * ```ts + * // Fetch zero or more FoodCategories + * const foodCategories = await prisma.foodCategory.findMany() + * ``` + */ + get foodCategory(): Prisma.FoodCategoryDelegate; + + /** + * `prisma.userFavorCategory`: Exposes CRUD operations for the **UserFavorCategory** model. + * Example usage: + * ```ts + * // Fetch zero or more UserFavorCategories + * const userFavorCategories = await prisma.userFavorCategory.findMany() + * ``` + */ + get userFavorCategory(): Prisma.UserFavorCategoryDelegate; + + /** + * `prisma.store`: Exposes CRUD operations for the **Store** model. + * Example usage: + * ```ts + * // Fetch zero or more Stores + * const stores = await prisma.store.findMany() + * ``` + */ + get store(): Prisma.StoreDelegate; + + /** + * `prisma.userStoreReview`: Exposes CRUD operations for the **UserStoreReview** model. + * Example usage: + * ```ts + * // Fetch zero or more UserStoreReviews + * const userStoreReviews = await prisma.userStoreReview.findMany() + * ``` + */ + get userStoreReview(): Prisma.UserStoreReviewDelegate; + + /** + * `prisma.mission`: Exposes CRUD operations for the **Mission** model. + * Example usage: + * ```ts + * // Fetch zero or more Missions + * const missions = await prisma.mission.findMany() + * ``` + */ + get mission(): Prisma.MissionDelegate; + + /** + * `prisma.userMission`: Exposes CRUD operations for the **UserMission** model. + * Example usage: + * ```ts + * // Fetch zero or more UserMissions + * const userMissions = await prisma.userMission.findMany() + * ``` + */ + get userMission(): Prisma.UserMissionDelegate; +} + +export function getPrismaClientClass(dirname: string): PrismaClientConstructor { + config.dirname = dirname + return runtime.getPrismaClient(config) as unknown as PrismaClientConstructor +} diff --git a/generated/prisma/internal/prismaNamespace.js b/generated/prisma/internal/prismaNamespace.js new file mode 100644 index 0000000..59d1d14 --- /dev/null +++ b/generated/prisma/internal/prismaNamespace.js @@ -0,0 +1,162 @@ +/* !!! 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/library"; +/** + * Prisma Errors + */ +export const PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError; +export const PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError; +export const PrismaClientRustPanicError = runtime.PrismaClientRustPanicError; +export const PrismaClientInitializationError = runtime.PrismaClientInitializationError; +export const 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; +/** + * Decimal.js + */ +export const Decimal = runtime.Decimal; +export const getExtensionContext = runtime.Extensions.getExtensionContext; +/** + * Prisma Client JS version: 6.19.3 + * Query Engine version: c2990dca591cba766e3b7ef5d9e8a84796e47ab7 + */ +export const prismaVersion = { + client: "6.19.3", + engine: "c2990dca591cba766e3b7ef5d9e8a84796e47ab7" +}; +export const NullTypes = { + DbNull: runtime.objectEnumValues.classes.DbNull, + JsonNull: runtime.objectEnumValues.classes.JsonNull, + AnyNull: runtime.objectEnumValues.classes.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.objectEnumValues.instances.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.objectEnumValues.instances.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.objectEnumValues.instances.AnyNull; +export const ModelName = { + User: 'User', + FoodCategory: 'FoodCategory', + UserFavorCategory: 'UserFavorCategory', + Store: 'Store', + UserStoreReview: 'UserStoreReview', + Mission: 'Mission', + UserMission: 'UserMission' +}; +/** + * Enums + */ +export const TransactionIsolationLevel = runtime.makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' +}); +export const UserScalarFieldEnum = { + id: 'id', + email: 'email', + name: 'name', + gender: 'gender', + birth: 'birth', + address: 'address', + detailAddress: 'detailAddress', + phoneNumber: 'phoneNumber' +}; +export const FoodCategoryScalarFieldEnum = { + id: 'id', + name: 'name' +}; +export const UserFavorCategoryScalarFieldEnum = { + id: 'id', + userId: 'userId', + foodCategoryId: 'foodCategoryId' +}; +export const StoreScalarFieldEnum = { + id: 'id', + name: 'name' +}; +export const UserStoreReviewScalarFieldEnum = { + id: 'id', + content: 'content', + rating: 'rating', + createdAt: 'createdAt', + storeId: 'storeId', + userId: 'userId' +}; +export const MissionScalarFieldEnum = { + id: 'id', + storeId: 'storeId', + conditionText: 'conditionText', + rewardPoint: 'rewardPoint' +}; +export const UserMissionScalarFieldEnum = { + id: 'id', + userId: 'userId', + missionId: 'missionId', + status: 'status' +}; +export const SortOrder = { + asc: 'asc', + desc: 'desc' +}; +export const NullsOrder = { + first: 'first', + last: 'last' +}; +export const UserOrderByRelevanceFieldEnum = { + email: 'email', + name: 'name', + gender: 'gender', + address: 'address', + detailAddress: 'detailAddress', + phoneNumber: 'phoneNumber' +}; +export const FoodCategoryOrderByRelevanceFieldEnum = { + name: 'name' +}; +export const StoreOrderByRelevanceFieldEnum = { + name: 'name' +}; +export const UserStoreReviewOrderByRelevanceFieldEnum = { + content: 'content' +}; +export const MissionOrderByRelevanceFieldEnum = { + conditionText: 'conditionText' +}; +export const UserMissionOrderByRelevanceFieldEnum = { + status: 'status' +}; +export const defineExtension = runtime.Extensions.defineExtension; +//# sourceMappingURL=prismaNamespace.js.map \ No newline at end of file diff --git a/generated/prisma/internal/prismaNamespace.js.map b/generated/prisma/internal/prismaNamespace.js.map new file mode 100644 index 0000000..81f247c --- /dev/null +++ b/generated/prisma/internal/prismaNamespace.js.map @@ -0,0 +1 @@ +{"version":3,"file":"prismaNamespace.js","sourceRoot":"","sources":["../../../../src/generated/prisma/internal/prismaNamespace.ts"],"names":[],"mappings":"AACA,qEAAqE;AACrE,oBAAoB;AACpB,wCAAwC;AACxC,eAAe;AACf;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,OAAO,MAAM,gCAAgC,CAAA;AAUzD;;GAEG;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,OAAO,CAAC,6BAA6B,CAAA;AAGlF,MAAM,CAAC,MAAM,+BAA+B,GAAG,OAAO,CAAC,+BAA+B,CAAA;AAGtF,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAA;AAG5E,MAAM,CAAC,MAAM,+BAA+B,GAAG,OAAO,CAAC,+BAA+B,CAAA;AAGtF,MAAM,CAAC,MAAM,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,CAAA;AAG9E;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAA;AACjC,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;AAClC,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;AAChC,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;AAC9B,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;AAK9B;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;AAiBtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAA;AAWzE;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,0CAA0C;CACnD,CAAA;AAeD,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAmF;IAC5H,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAuF;IAClI,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAqF;CAChI,CAAA;AACD;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAA;AAC/D;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAA;AACnE;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAA;AAkQjE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,cAAc;IAC5B,iBAAiB,EAAE,mBAAmB;IACtC,KAAK,EAAE,OAAO;IACd,eAAe,EAAE,iBAAiB;IAClC,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;CAClB,CAAA;AA0fV;;GAEG;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;IAC9D,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;CACpB,CAAC,CAAA;AAKX,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,aAAa;CAClB,CAAA;AAKV,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,MAAM;CACJ,CAAA;AAKV,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,EAAE,EAAE,IAAI;IACR,MAAM,EAAE,QAAQ;IAChB,cAAc,EAAE,gBAAgB;CACxB,CAAA;AAKV,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,MAAM;CACJ,CAAA;AAKV,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,EAAE,EAAE,IAAI;IACR,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;CACR,CAAA;AAKV,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,EAAE,EAAE,IAAI;IACR,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,aAAa;CAClB,CAAA;AAKV,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,EAAE,EAAE,IAAI;IACR,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;CACR,CAAA;AAKV,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;CACJ,CAAA;AAKV,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;CACJ,CAAA;AAKV,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,aAAa;CAClB,CAAA;AAKV,MAAM,CAAC,MAAM,qCAAqC,GAAG;IACnD,IAAI,EAAE,MAAM;CACJ,CAAA;AAKV,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,IAAI,EAAE,MAAM;CACJ,CAAA;AAKV,MAAM,CAAC,MAAM,wCAAwC,GAAG;IACtD,OAAO,EAAE,SAAS;CACV,CAAA;AAKV,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,aAAa,EAAE,eAAe;CACtB,CAAA;AAKV,MAAM,CAAC,MAAM,oCAAoC,GAAG;IAClD,MAAM,EAAE,QAAQ;CACR,CAAA;AAqDV,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,eAA6H,CAAA"} \ No newline at end of file diff --git a/generated/prisma/internal/prismaNamespace.ts b/generated/prisma/internal/prismaNamespace.ts new file mode 100644 index 0000000..7d7eba3 --- /dev/null +++ b/generated/prisma/internal/prismaNamespace.ts @@ -0,0 +1,1243 @@ + +/* !!! 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/library" +import type * as Prisma from "../models.js" +import { type PrismaClient } from "./class.js" + +export type * from '../models.js' + +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 + +/** + * Metrics + */ +export type Metrics = runtime.Metrics +export type Metric = runtime.Metric +export type MetricHistogram = runtime.MetricHistogram +export type MetricHistogramBucket = runtime.MetricHistogramBucket + +/** +* 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: 6.19.3 + * Query Engine version: c2990dca591cba766e3b7ef5d9e8a84796e47ab7 + */ +export const prismaVersion: PrismaVersion = { + client: "6.19.3", + engine: "c2990dca591cba766e3b7ef5d9e8a84796e47ab7" +} + +/** + * 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.objectEnumValues.classes.DbNull as (new (secret: never) => typeof runtime.objectEnumValues.instances.DbNull), + JsonNull: runtime.objectEnumValues.classes.JsonNull as (new (secret: never) => typeof runtime.objectEnumValues.instances.JsonNull), + AnyNull: runtime.objectEnumValues.classes.AnyNull as (new (secret: never) => typeof runtime.objectEnumValues.instances.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.objectEnumValues.instances.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.objectEnumValues.instances.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.objectEnumValues.instances.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', + FoodCategory: 'FoodCategory', + UserFavorCategory: 'UserFavorCategory', + Store: 'Store', + UserStoreReview: 'UserStoreReview', + Mission: 'Mission', + UserMission: 'UserMission' +} 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" | "foodCategory" | "userFavorCategory" | "store" | "userStoreReview" | "mission" | "userMission" + 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 + } + } + } + FoodCategory: { + payload: Prisma.$FoodCategoryPayload + fields: Prisma.FoodCategoryFieldRefs + operations: { + findUnique: { + args: Prisma.FoodCategoryFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.FoodCategoryFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.FoodCategoryFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.FoodCategoryFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.FoodCategoryFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.FoodCategoryCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.FoodCategoryCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.FoodCategoryDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.FoodCategoryUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.FoodCategoryDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.FoodCategoryUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.FoodCategoryUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.FoodCategoryAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.FoodCategoryGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.FoodCategoryCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + UserFavorCategory: { + payload: Prisma.$UserFavorCategoryPayload + fields: Prisma.UserFavorCategoryFieldRefs + operations: { + findUnique: { + args: Prisma.UserFavorCategoryFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.UserFavorCategoryFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.UserFavorCategoryFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.UserFavorCategoryFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.UserFavorCategoryFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.UserFavorCategoryCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.UserFavorCategoryCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.UserFavorCategoryDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.UserFavorCategoryUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.UserFavorCategoryDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.UserFavorCategoryUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.UserFavorCategoryUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.UserFavorCategoryAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.UserFavorCategoryGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.UserFavorCategoryCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + Store: { + payload: Prisma.$StorePayload + fields: Prisma.StoreFieldRefs + operations: { + findUnique: { + args: Prisma.StoreFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.StoreFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.StoreFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.StoreFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.StoreFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.StoreCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.StoreCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.StoreDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.StoreUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.StoreDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.StoreUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.StoreUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.StoreAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.StoreGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.StoreCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + UserStoreReview: { + payload: Prisma.$UserStoreReviewPayload + fields: Prisma.UserStoreReviewFieldRefs + operations: { + findUnique: { + args: Prisma.UserStoreReviewFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.UserStoreReviewFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.UserStoreReviewFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.UserStoreReviewFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.UserStoreReviewFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.UserStoreReviewCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.UserStoreReviewCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.UserStoreReviewDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.UserStoreReviewUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.UserStoreReviewDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.UserStoreReviewUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.UserStoreReviewUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.UserStoreReviewAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.UserStoreReviewGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.UserStoreReviewCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + Mission: { + payload: Prisma.$MissionPayload + fields: Prisma.MissionFieldRefs + operations: { + findUnique: { + args: Prisma.MissionFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.MissionFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.MissionFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.MissionFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.MissionFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.MissionCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.MissionCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.MissionDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.MissionUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.MissionDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.MissionUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.MissionUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.MissionAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.MissionGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.MissionCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + UserMission: { + payload: Prisma.$UserMissionPayload + fields: Prisma.UserMissionFieldRefs + operations: { + findUnique: { + args: Prisma.UserMissionFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.UserMissionFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.UserMissionFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.UserMissionFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.UserMissionFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.UserMissionCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.UserMissionCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.UserMissionDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.UserMissionUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.UserMissionDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.UserMissionUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.UserMissionUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.UserMissionAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.UserMissionGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.UserMissionCountArgs + 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', + email: 'email', + name: 'name', + gender: 'gender', + birth: 'birth', + address: 'address', + detailAddress: 'detailAddress', + phoneNumber: 'phoneNumber' +} as const + +export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum] + + +export const FoodCategoryScalarFieldEnum = { + id: 'id', + name: 'name' +} as const + +export type FoodCategoryScalarFieldEnum = (typeof FoodCategoryScalarFieldEnum)[keyof typeof FoodCategoryScalarFieldEnum] + + +export const UserFavorCategoryScalarFieldEnum = { + id: 'id', + userId: 'userId', + foodCategoryId: 'foodCategoryId' +} as const + +export type UserFavorCategoryScalarFieldEnum = (typeof UserFavorCategoryScalarFieldEnum)[keyof typeof UserFavorCategoryScalarFieldEnum] + + +export const StoreScalarFieldEnum = { + id: 'id', + name: 'name' +} as const + +export type StoreScalarFieldEnum = (typeof StoreScalarFieldEnum)[keyof typeof StoreScalarFieldEnum] + + +export const UserStoreReviewScalarFieldEnum = { + id: 'id', + content: 'content', + rating: 'rating', + createdAt: 'createdAt', + storeId: 'storeId', + userId: 'userId' +} as const + +export type UserStoreReviewScalarFieldEnum = (typeof UserStoreReviewScalarFieldEnum)[keyof typeof UserStoreReviewScalarFieldEnum] + + +export const MissionScalarFieldEnum = { + id: 'id', + storeId: 'storeId', + conditionText: 'conditionText', + rewardPoint: 'rewardPoint' +} as const + +export type MissionScalarFieldEnum = (typeof MissionScalarFieldEnum)[keyof typeof MissionScalarFieldEnum] + + +export const UserMissionScalarFieldEnum = { + id: 'id', + userId: 'userId', + missionId: 'missionId', + status: 'status' +} as const + +export type UserMissionScalarFieldEnum = (typeof UserMissionScalarFieldEnum)[keyof typeof UserMissionScalarFieldEnum] + + +export const SortOrder = { + asc: 'asc', + desc: 'desc' +} as const + +export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder] + + +export const NullsOrder = { + first: 'first', + last: 'last' +} as const + +export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder] + + +export const UserOrderByRelevanceFieldEnum = { + email: 'email', + name: 'name', + gender: 'gender', + address: 'address', + detailAddress: 'detailAddress', + phoneNumber: 'phoneNumber' +} as const + +export type UserOrderByRelevanceFieldEnum = (typeof UserOrderByRelevanceFieldEnum)[keyof typeof UserOrderByRelevanceFieldEnum] + + +export const FoodCategoryOrderByRelevanceFieldEnum = { + name: 'name' +} as const + +export type FoodCategoryOrderByRelevanceFieldEnum = (typeof FoodCategoryOrderByRelevanceFieldEnum)[keyof typeof FoodCategoryOrderByRelevanceFieldEnum] + + +export const StoreOrderByRelevanceFieldEnum = { + name: 'name' +} as const + +export type StoreOrderByRelevanceFieldEnum = (typeof StoreOrderByRelevanceFieldEnum)[keyof typeof StoreOrderByRelevanceFieldEnum] + + +export const UserStoreReviewOrderByRelevanceFieldEnum = { + content: 'content' +} as const + +export type UserStoreReviewOrderByRelevanceFieldEnum = (typeof UserStoreReviewOrderByRelevanceFieldEnum)[keyof typeof UserStoreReviewOrderByRelevanceFieldEnum] + + +export const MissionOrderByRelevanceFieldEnum = { + conditionText: 'conditionText' +} as const + +export type MissionOrderByRelevanceFieldEnum = (typeof MissionOrderByRelevanceFieldEnum)[keyof typeof MissionOrderByRelevanceFieldEnum] + + +export const UserMissionOrderByRelevanceFieldEnum = { + status: 'status' +} as const + +export type UserMissionOrderByRelevanceFieldEnum = (typeof UserMissionOrderByRelevanceFieldEnum)[keyof typeof UserMissionOrderByRelevanceFieldEnum] + + + +/** + * 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 'Float' + */ +export type FloatFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Float'> + + +/** + * Batch Payload for updateMany & deleteMany & createMany + */ +export type BatchPayload = { + count: number +} + + +export type Datasource = { + url?: string +} +export type Datasources = { + db?: Datasource +} + +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 interface PrismaClientOptions { + /** + * Overwrites the datasource url from your schema.prisma file + */ + datasources?: Datasources + /** + * Overwrites the datasource url from your schema.prisma file + */ + datasourceUrl?: string + /** + * @default "colorless" + */ + errorFormat?: ErrorFormat + /** + * @example + * ``` + * // Shorthand for `emit: 'stdout'` + * log: ['query', 'info', 'warn', 'error'] + * + * // Emit as events only + * log: [ + * { emit: 'event', level: 'query' }, + * { emit: 'event', level: 'info' }, + * { emit: 'event', level: 'warn' } + * { emit: 'event', level: 'error' } + * ] + * + * / Emit as events and log to stdout + * og: [ + * { emit: 'stdout', level: 'query' }, + * { emit: 'stdout', level: 'info' }, + * { emit: 'stdout', level: 'warn' } + * { emit: 'stdout', level: 'error' } + * + * ``` + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/logging#the-log-option). + */ + log?: (LogLevel | LogDefinition)[] + /** + * The default values for transactionOptions + * maxWait ?= 2000 + * timeout ?= 5000 + */ + transactionOptions?: { + maxWait?: number + timeout?: number + isolationLevel?: TransactionIsolationLevel + } + /** + * Instance of a Driver Adapter, e.g., like one provided by `@prisma/adapter-planetscale` + */ + adapter?: runtime.SqlDriverAdapterFactory | null + /** + * Global configuration for omitting model fields by default. + * + * @example + * ``` + * const prisma = new PrismaClient({ + * omit: { + * user: { + * password: true + * } + * } + * }) + * ``` + */ + omit?: GlobalOmitConfig +} +export type GlobalOmitConfig = { + user?: Prisma.UserOmit + foodCategory?: Prisma.FoodCategoryOmit + userFavorCategory?: Prisma.UserFavorCategoryOmit + store?: Prisma.StoreOmit + userStoreReview?: Prisma.UserStoreReviewOmit + mission?: Prisma.MissionOmit + userMission?: Prisma.UserMissionOmit +} + +/* 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.js b/generated/prisma/internal/prismaNamespaceBrowser.js new file mode 100644 index 0000000..6bb6474 --- /dev/null +++ b/generated/prisma/internal/prismaNamespaceBrowser.js @@ -0,0 +1,133 @@ +/* !!! 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 const Decimal = runtime.Decimal; +export const NullTypes = { + DbNull: runtime.objectEnumValues.classes.DbNull, + JsonNull: runtime.objectEnumValues.classes.JsonNull, + AnyNull: runtime.objectEnumValues.classes.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.objectEnumValues.instances.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.objectEnumValues.instances.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.objectEnumValues.instances.AnyNull; +export const ModelName = { + User: 'User', + FoodCategory: 'FoodCategory', + UserFavorCategory: 'UserFavorCategory', + Store: 'Store', + UserStoreReview: 'UserStoreReview', + Mission: 'Mission', + UserMission: 'UserMission' +}; +/* + * Enums + */ +export const TransactionIsolationLevel = runtime.makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' +}); +export const UserScalarFieldEnum = { + id: 'id', + email: 'email', + name: 'name', + gender: 'gender', + birth: 'birth', + address: 'address', + detailAddress: 'detailAddress', + phoneNumber: 'phoneNumber' +}; +export const FoodCategoryScalarFieldEnum = { + id: 'id', + name: 'name' +}; +export const UserFavorCategoryScalarFieldEnum = { + id: 'id', + userId: 'userId', + foodCategoryId: 'foodCategoryId' +}; +export const StoreScalarFieldEnum = { + id: 'id', + name: 'name' +}; +export const UserStoreReviewScalarFieldEnum = { + id: 'id', + content: 'content', + rating: 'rating', + createdAt: 'createdAt', + storeId: 'storeId', + userId: 'userId' +}; +export const MissionScalarFieldEnum = { + id: 'id', + storeId: 'storeId', + conditionText: 'conditionText', + rewardPoint: 'rewardPoint' +}; +export const UserMissionScalarFieldEnum = { + id: 'id', + userId: 'userId', + missionId: 'missionId', + status: 'status' +}; +export const SortOrder = { + asc: 'asc', + desc: 'desc' +}; +export const NullsOrder = { + first: 'first', + last: 'last' +}; +export const UserOrderByRelevanceFieldEnum = { + email: 'email', + name: 'name', + gender: 'gender', + address: 'address', + detailAddress: 'detailAddress', + phoneNumber: 'phoneNumber' +}; +export const FoodCategoryOrderByRelevanceFieldEnum = { + name: 'name' +}; +export const StoreOrderByRelevanceFieldEnum = { + name: 'name' +}; +export const UserStoreReviewOrderByRelevanceFieldEnum = { + content: 'content' +}; +export const MissionOrderByRelevanceFieldEnum = { + conditionText: 'conditionText' +}; +export const UserMissionOrderByRelevanceFieldEnum = { + status: 'status' +}; +//# sourceMappingURL=prismaNamespaceBrowser.js.map \ No newline at end of file diff --git a/generated/prisma/internal/prismaNamespaceBrowser.js.map b/generated/prisma/internal/prismaNamespaceBrowser.js.map new file mode 100644 index 0000000..0d99fc6 --- /dev/null +++ b/generated/prisma/internal/prismaNamespaceBrowser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"prismaNamespaceBrowser.js","sourceRoot":"","sources":["../../../../src/generated/prisma/internal/prismaNamespaceBrowser.ts"],"names":[],"mappings":"AACA,qEAAqE;AACrE,oBAAoB;AACpB,wCAAwC;AACxC,eAAe;AACf;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,OAAO,MAAM,sCAAsC,CAAA;AAK/D,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;AAGtC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAmF;IAC5H,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAuF;IAClI,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAqF;CAChI,CAAA;AACD;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAA;AAC/D;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAA;AACnE;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAA;AAGjE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,cAAc;IAC5B,iBAAiB,EAAE,mBAAmB;IACtC,KAAK,EAAE,OAAO;IACd,eAAe,EAAE,iBAAiB;IAClC,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;CAClB,CAAA;AAIV;;GAEG;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;IAC9D,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;CACpB,CAAC,CAAA;AAKX,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,aAAa;CAClB,CAAA;AAKV,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,MAAM;CACJ,CAAA;AAKV,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,EAAE,EAAE,IAAI;IACR,MAAM,EAAE,QAAQ;IAChB,cAAc,EAAE,gBAAgB;CACxB,CAAA;AAKV,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,MAAM;CACJ,CAAA;AAKV,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,EAAE,EAAE,IAAI;IACR,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;CACR,CAAA;AAKV,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,EAAE,EAAE,IAAI;IACR,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,aAAa;CAClB,CAAA;AAKV,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,EAAE,EAAE,IAAI;IACR,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;CACR,CAAA;AAKV,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;CACJ,CAAA;AAKV,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;CACJ,CAAA;AAKV,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,aAAa;CAClB,CAAA;AAKV,MAAM,CAAC,MAAM,qCAAqC,GAAG;IACnD,IAAI,EAAE,MAAM;CACJ,CAAA;AAKV,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,IAAI,EAAE,MAAM;CACJ,CAAA;AAKV,MAAM,CAAC,MAAM,wCAAwC,GAAG;IACtD,OAAO,EAAE,SAAS;CACV,CAAA;AAKV,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,aAAa,EAAE,eAAe;CACtB,CAAA;AAKV,MAAM,CAAC,MAAM,oCAAoC,GAAG;IAClD,MAAM,EAAE,QAAQ;CACR,CAAA"} \ No newline at end of file diff --git a/generated/prisma/internal/prismaNamespaceBrowser.ts b/generated/prisma/internal/prismaNamespaceBrowser.ts new file mode 100644 index 0000000..d5f6e64 --- /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.js' +export type * from './prismaNamespace.js' + +export const Decimal = runtime.Decimal + + +export const NullTypes = { + DbNull: runtime.objectEnumValues.classes.DbNull as (new (secret: never) => typeof runtime.objectEnumValues.instances.DbNull), + JsonNull: runtime.objectEnumValues.classes.JsonNull as (new (secret: never) => typeof runtime.objectEnumValues.instances.JsonNull), + AnyNull: runtime.objectEnumValues.classes.AnyNull as (new (secret: never) => typeof runtime.objectEnumValues.instances.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.objectEnumValues.instances.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.objectEnumValues.instances.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.objectEnumValues.instances.AnyNull + + +export const ModelName = { + User: 'User', + FoodCategory: 'FoodCategory', + UserFavorCategory: 'UserFavorCategory', + Store: 'Store', + UserStoreReview: 'UserStoreReview', + Mission: 'Mission', + UserMission: 'UserMission' +} 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', + email: 'email', + name: 'name', + gender: 'gender', + birth: 'birth', + address: 'address', + detailAddress: 'detailAddress', + phoneNumber: 'phoneNumber' +} as const + +export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum] + + +export const FoodCategoryScalarFieldEnum = { + id: 'id', + name: 'name' +} as const + +export type FoodCategoryScalarFieldEnum = (typeof FoodCategoryScalarFieldEnum)[keyof typeof FoodCategoryScalarFieldEnum] + + +export const UserFavorCategoryScalarFieldEnum = { + id: 'id', + userId: 'userId', + foodCategoryId: 'foodCategoryId' +} as const + +export type UserFavorCategoryScalarFieldEnum = (typeof UserFavorCategoryScalarFieldEnum)[keyof typeof UserFavorCategoryScalarFieldEnum] + + +export const StoreScalarFieldEnum = { + id: 'id', + name: 'name' +} as const + +export type StoreScalarFieldEnum = (typeof StoreScalarFieldEnum)[keyof typeof StoreScalarFieldEnum] + + +export const UserStoreReviewScalarFieldEnum = { + id: 'id', + content: 'content', + rating: 'rating', + createdAt: 'createdAt', + storeId: 'storeId', + userId: 'userId' +} as const + +export type UserStoreReviewScalarFieldEnum = (typeof UserStoreReviewScalarFieldEnum)[keyof typeof UserStoreReviewScalarFieldEnum] + + +export const MissionScalarFieldEnum = { + id: 'id', + storeId: 'storeId', + conditionText: 'conditionText', + rewardPoint: 'rewardPoint' +} as const + +export type MissionScalarFieldEnum = (typeof MissionScalarFieldEnum)[keyof typeof MissionScalarFieldEnum] + + +export const UserMissionScalarFieldEnum = { + id: 'id', + userId: 'userId', + missionId: 'missionId', + status: 'status' +} as const + +export type UserMissionScalarFieldEnum = (typeof UserMissionScalarFieldEnum)[keyof typeof UserMissionScalarFieldEnum] + + +export const SortOrder = { + asc: 'asc', + desc: 'desc' +} as const + +export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder] + + +export const NullsOrder = { + first: 'first', + last: 'last' +} as const + +export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder] + + +export const UserOrderByRelevanceFieldEnum = { + email: 'email', + name: 'name', + gender: 'gender', + address: 'address', + detailAddress: 'detailAddress', + phoneNumber: 'phoneNumber' +} as const + +export type UserOrderByRelevanceFieldEnum = (typeof UserOrderByRelevanceFieldEnum)[keyof typeof UserOrderByRelevanceFieldEnum] + + +export const FoodCategoryOrderByRelevanceFieldEnum = { + name: 'name' +} as const + +export type FoodCategoryOrderByRelevanceFieldEnum = (typeof FoodCategoryOrderByRelevanceFieldEnum)[keyof typeof FoodCategoryOrderByRelevanceFieldEnum] + + +export const StoreOrderByRelevanceFieldEnum = { + name: 'name' +} as const + +export type StoreOrderByRelevanceFieldEnum = (typeof StoreOrderByRelevanceFieldEnum)[keyof typeof StoreOrderByRelevanceFieldEnum] + + +export const UserStoreReviewOrderByRelevanceFieldEnum = { + content: 'content' +} as const + +export type UserStoreReviewOrderByRelevanceFieldEnum = (typeof UserStoreReviewOrderByRelevanceFieldEnum)[keyof typeof UserStoreReviewOrderByRelevanceFieldEnum] + + +export const MissionOrderByRelevanceFieldEnum = { + conditionText: 'conditionText' +} as const + +export type MissionOrderByRelevanceFieldEnum = (typeof MissionOrderByRelevanceFieldEnum)[keyof typeof MissionOrderByRelevanceFieldEnum] + + +export const UserMissionOrderByRelevanceFieldEnum = { + status: 'status' +} as const + +export type UserMissionOrderByRelevanceFieldEnum = (typeof UserMissionOrderByRelevanceFieldEnum)[keyof typeof UserMissionOrderByRelevanceFieldEnum] + diff --git a/generated/prisma/libquery_engine-darwin.dylib.node b/generated/prisma/libquery_engine-darwin.dylib.node new file mode 100644 index 0000000..c9bb276 Binary files /dev/null and b/generated/prisma/libquery_engine-darwin.dylib.node differ diff --git a/generated/prisma/models.js b/generated/prisma/models.js new file mode 100644 index 0000000..5b8a5ab --- /dev/null +++ b/generated/prisma/models.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=models.js.map \ No newline at end of file diff --git a/generated/prisma/models.js.map b/generated/prisma/models.js.map new file mode 100644 index 0000000..a9e2382 --- /dev/null +++ b/generated/prisma/models.js.map @@ -0,0 +1 @@ +{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/generated/prisma/models.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/generated/prisma/models.ts b/generated/prisma/models.ts new file mode 100644 index 0000000..6cf4a6a --- /dev/null +++ b/generated/prisma/models.ts @@ -0,0 +1,18 @@ + +/* !!! 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.js' +export type * from './models/FoodCategory.js' +export type * from './models/UserFavorCategory.js' +export type * from './models/Store.js' +export type * from './models/UserStoreReview.js' +export type * from './models/Mission.js' +export type * from './models/UserMission.js' +export type * from './commonInputTypes.js' \ No newline at end of file diff --git a/generated/prisma/models/FoodCategory.js b/generated/prisma/models/FoodCategory.js new file mode 100644 index 0000000..eeba5f4 --- /dev/null +++ b/generated/prisma/models/FoodCategory.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=FoodCategory.js.map \ No newline at end of file diff --git a/generated/prisma/models/FoodCategory.js.map b/generated/prisma/models/FoodCategory.js.map new file mode 100644 index 0000000..f6c3973 --- /dev/null +++ b/generated/prisma/models/FoodCategory.js.map @@ -0,0 +1 @@ +{"version":3,"file":"FoodCategory.js","sourceRoot":"","sources":["../../../../src/generated/prisma/models/FoodCategory.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/generated/prisma/models/FoodCategory.ts b/generated/prisma/models/FoodCategory.ts new file mode 100644 index 0000000..1976b30 --- /dev/null +++ b/generated/prisma/models/FoodCategory.ts @@ -0,0 +1,1163 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `FoodCategory` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/library" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * Model FoodCategory + * + */ +export type FoodCategoryModel = runtime.Types.Result.DefaultSelection + +export type AggregateFoodCategory = { + _count: FoodCategoryCountAggregateOutputType | null + _avg: FoodCategoryAvgAggregateOutputType | null + _sum: FoodCategorySumAggregateOutputType | null + _min: FoodCategoryMinAggregateOutputType | null + _max: FoodCategoryMaxAggregateOutputType | null +} + +export type FoodCategoryAvgAggregateOutputType = { + id: number | null +} + +export type FoodCategorySumAggregateOutputType = { + id: number | null +} + +export type FoodCategoryMinAggregateOutputType = { + id: number | null + name: string | null +} + +export type FoodCategoryMaxAggregateOutputType = { + id: number | null + name: string | null +} + +export type FoodCategoryCountAggregateOutputType = { + id: number + name: number + _all: number +} + + +export type FoodCategoryAvgAggregateInputType = { + id?: true +} + +export type FoodCategorySumAggregateInputType = { + id?: true +} + +export type FoodCategoryMinAggregateInputType = { + id?: true + name?: true +} + +export type FoodCategoryMaxAggregateInputType = { + id?: true + name?: true +} + +export type FoodCategoryCountAggregateInputType = { + id?: true + name?: true + _all?: true +} + +export type FoodCategoryAggregateArgs = { + /** + * Filter which FoodCategory to aggregate. + */ + where?: Prisma.FoodCategoryWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of FoodCategories to fetch. + */ + orderBy?: Prisma.FoodCategoryOrderByWithRelationInput | Prisma.FoodCategoryOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.FoodCategoryWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` FoodCategories 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` FoodCategories. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned FoodCategories + **/ + _count?: true | FoodCategoryCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: FoodCategoryAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: FoodCategorySumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: FoodCategoryMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: FoodCategoryMaxAggregateInputType +} + +export type GetFoodCategoryAggregateType = { + [P in keyof T & keyof AggregateFoodCategory]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type FoodCategoryGroupByArgs = { + where?: Prisma.FoodCategoryWhereInput + orderBy?: Prisma.FoodCategoryOrderByWithAggregationInput | Prisma.FoodCategoryOrderByWithAggregationInput[] + by: Prisma.FoodCategoryScalarFieldEnum[] | Prisma.FoodCategoryScalarFieldEnum + having?: Prisma.FoodCategoryScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: FoodCategoryCountAggregateInputType | true + _avg?: FoodCategoryAvgAggregateInputType + _sum?: FoodCategorySumAggregateInputType + _min?: FoodCategoryMinAggregateInputType + _max?: FoodCategoryMaxAggregateInputType +} + +export type FoodCategoryGroupByOutputType = { + id: number + name: string + _count: FoodCategoryCountAggregateOutputType | null + _avg: FoodCategoryAvgAggregateOutputType | null + _sum: FoodCategorySumAggregateOutputType | null + _min: FoodCategoryMinAggregateOutputType | null + _max: FoodCategoryMaxAggregateOutputType | null +} + +type GetFoodCategoryGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof FoodCategoryGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type FoodCategoryWhereInput = { + AND?: Prisma.FoodCategoryWhereInput | Prisma.FoodCategoryWhereInput[] + OR?: Prisma.FoodCategoryWhereInput[] + NOT?: Prisma.FoodCategoryWhereInput | Prisma.FoodCategoryWhereInput[] + id?: Prisma.IntFilter<"FoodCategory"> | number + name?: Prisma.StringFilter<"FoodCategory"> | string + userFavorCategories?: Prisma.UserFavorCategoryListRelationFilter +} + +export type FoodCategoryOrderByWithRelationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + userFavorCategories?: Prisma.UserFavorCategoryOrderByRelationAggregateInput + _relevance?: Prisma.FoodCategoryOrderByRelevanceInput +} + +export type FoodCategoryWhereUniqueInput = Prisma.AtLeast<{ + id?: number + AND?: Prisma.FoodCategoryWhereInput | Prisma.FoodCategoryWhereInput[] + OR?: Prisma.FoodCategoryWhereInput[] + NOT?: Prisma.FoodCategoryWhereInput | Prisma.FoodCategoryWhereInput[] + name?: Prisma.StringFilter<"FoodCategory"> | string + userFavorCategories?: Prisma.UserFavorCategoryListRelationFilter +}, "id"> + +export type FoodCategoryOrderByWithAggregationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + _count?: Prisma.FoodCategoryCountOrderByAggregateInput + _avg?: Prisma.FoodCategoryAvgOrderByAggregateInput + _max?: Prisma.FoodCategoryMaxOrderByAggregateInput + _min?: Prisma.FoodCategoryMinOrderByAggregateInput + _sum?: Prisma.FoodCategorySumOrderByAggregateInput +} + +export type FoodCategoryScalarWhereWithAggregatesInput = { + AND?: Prisma.FoodCategoryScalarWhereWithAggregatesInput | Prisma.FoodCategoryScalarWhereWithAggregatesInput[] + OR?: Prisma.FoodCategoryScalarWhereWithAggregatesInput[] + NOT?: Prisma.FoodCategoryScalarWhereWithAggregatesInput | Prisma.FoodCategoryScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"FoodCategory"> | number + name?: Prisma.StringWithAggregatesFilter<"FoodCategory"> | string +} + +export type FoodCategoryCreateInput = { + name: string + userFavorCategories?: Prisma.UserFavorCategoryCreateNestedManyWithoutFoodCategoryInput +} + +export type FoodCategoryUncheckedCreateInput = { + id?: number + name: string + userFavorCategories?: Prisma.UserFavorCategoryUncheckedCreateNestedManyWithoutFoodCategoryInput +} + +export type FoodCategoryUpdateInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + userFavorCategories?: Prisma.UserFavorCategoryUpdateManyWithoutFoodCategoryNestedInput +} + +export type FoodCategoryUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + userFavorCategories?: Prisma.UserFavorCategoryUncheckedUpdateManyWithoutFoodCategoryNestedInput +} + +export type FoodCategoryCreateManyInput = { + id?: number + name: string +} + +export type FoodCategoryUpdateManyMutationInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type FoodCategoryUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type FoodCategoryOrderByRelevanceInput = { + fields: Prisma.FoodCategoryOrderByRelevanceFieldEnum | Prisma.FoodCategoryOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type FoodCategoryCountOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder +} + +export type FoodCategoryAvgOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type FoodCategoryMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder +} + +export type FoodCategoryMinOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder +} + +export type FoodCategorySumOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type FoodCategoryScalarRelationFilter = { + is?: Prisma.FoodCategoryWhereInput + isNot?: Prisma.FoodCategoryWhereInput +} + +export type FoodCategoryCreateNestedOneWithoutUserFavorCategoriesInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.FoodCategoryCreateOrConnectWithoutUserFavorCategoriesInput + connect?: Prisma.FoodCategoryWhereUniqueInput +} + +export type FoodCategoryUpdateOneRequiredWithoutUserFavorCategoriesNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.FoodCategoryCreateOrConnectWithoutUserFavorCategoriesInput + upsert?: Prisma.FoodCategoryUpsertWithoutUserFavorCategoriesInput + connect?: Prisma.FoodCategoryWhereUniqueInput + update?: Prisma.XOR, Prisma.FoodCategoryUncheckedUpdateWithoutUserFavorCategoriesInput> +} + +export type FoodCategoryCreateWithoutUserFavorCategoriesInput = { + name: string +} + +export type FoodCategoryUncheckedCreateWithoutUserFavorCategoriesInput = { + id?: number + name: string +} + +export type FoodCategoryCreateOrConnectWithoutUserFavorCategoriesInput = { + where: Prisma.FoodCategoryWhereUniqueInput + create: Prisma.XOR +} + +export type FoodCategoryUpsertWithoutUserFavorCategoriesInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.FoodCategoryWhereInput +} + +export type FoodCategoryUpdateToOneWithWhereWithoutUserFavorCategoriesInput = { + where?: Prisma.FoodCategoryWhereInput + data: Prisma.XOR +} + +export type FoodCategoryUpdateWithoutUserFavorCategoriesInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type FoodCategoryUncheckedUpdateWithoutUserFavorCategoriesInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string +} + + +/** + * Count Type FoodCategoryCountOutputType + */ + +export type FoodCategoryCountOutputType = { + userFavorCategories: number +} + +export type FoodCategoryCountOutputTypeSelect = { + userFavorCategories?: boolean | FoodCategoryCountOutputTypeCountUserFavorCategoriesArgs +} + +/** + * FoodCategoryCountOutputType without action + */ +export type FoodCategoryCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the FoodCategoryCountOutputType + */ + select?: Prisma.FoodCategoryCountOutputTypeSelect | null +} + +/** + * FoodCategoryCountOutputType without action + */ +export type FoodCategoryCountOutputTypeCountUserFavorCategoriesArgs = { + where?: Prisma.UserFavorCategoryWhereInput +} + + +export type FoodCategorySelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + name?: boolean + userFavorCategories?: boolean | Prisma.FoodCategory$userFavorCategoriesArgs + _count?: boolean | Prisma.FoodCategoryCountOutputTypeDefaultArgs +}, ExtArgs["result"]["foodCategory"]> + + + +export type FoodCategorySelectScalar = { + id?: boolean + name?: boolean +} + +export type FoodCategoryOmit = runtime.Types.Extensions.GetOmit<"id" | "name", ExtArgs["result"]["foodCategory"]> +export type FoodCategoryInclude = { + userFavorCategories?: boolean | Prisma.FoodCategory$userFavorCategoriesArgs + _count?: boolean | Prisma.FoodCategoryCountOutputTypeDefaultArgs +} + +export type $FoodCategoryPayload = { + name: "FoodCategory" + objects: { + userFavorCategories: Prisma.$UserFavorCategoryPayload[] + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + name: string + }, ExtArgs["result"]["foodCategory"]> + composites: {} +} + +export type FoodCategoryGetPayload = runtime.Types.Result.GetResult + +export type FoodCategoryCountArgs = + Omit & { + select?: FoodCategoryCountAggregateInputType | true + } + +export interface FoodCategoryDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['FoodCategory'], meta: { name: 'FoodCategory' } } + /** + * Find zero or one FoodCategory that matches the filter. + * @param {FoodCategoryFindUniqueArgs} args - Arguments to find a FoodCategory + * @example + * // Get one FoodCategory + * const foodCategory = await prisma.foodCategory.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__FoodCategoryClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one FoodCategory that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {FoodCategoryFindUniqueOrThrowArgs} args - Arguments to find a FoodCategory + * @example + * // Get one FoodCategory + * const foodCategory = await prisma.foodCategory.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__FoodCategoryClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first FoodCategory 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 {FoodCategoryFindFirstArgs} args - Arguments to find a FoodCategory + * @example + * // Get one FoodCategory + * const foodCategory = await prisma.foodCategory.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__FoodCategoryClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first FoodCategory 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 {FoodCategoryFindFirstOrThrowArgs} args - Arguments to find a FoodCategory + * @example + * // Get one FoodCategory + * const foodCategory = await prisma.foodCategory.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__FoodCategoryClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more FoodCategories 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 {FoodCategoryFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all FoodCategories + * const foodCategories = await prisma.foodCategory.findMany() + * + * // Get first 10 FoodCategories + * const foodCategories = await prisma.foodCategory.findMany({ take: 10 }) + * + * // Only select the `id` + * const foodCategoryWithIdOnly = await prisma.foodCategory.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a FoodCategory. + * @param {FoodCategoryCreateArgs} args - Arguments to create a FoodCategory. + * @example + * // Create one FoodCategory + * const FoodCategory = await prisma.foodCategory.create({ + * data: { + * // ... data to create a FoodCategory + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__FoodCategoryClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many FoodCategories. + * @param {FoodCategoryCreateManyArgs} args - Arguments to create many FoodCategories. + * @example + * // Create many FoodCategories + * const foodCategory = await prisma.foodCategory.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a FoodCategory. + * @param {FoodCategoryDeleteArgs} args - Arguments to delete one FoodCategory. + * @example + * // Delete one FoodCategory + * const FoodCategory = await prisma.foodCategory.delete({ + * where: { + * // ... filter to delete one FoodCategory + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__FoodCategoryClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one FoodCategory. + * @param {FoodCategoryUpdateArgs} args - Arguments to update one FoodCategory. + * @example + * // Update one FoodCategory + * const foodCategory = await prisma.foodCategory.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__FoodCategoryClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more FoodCategories. + * @param {FoodCategoryDeleteManyArgs} args - Arguments to filter FoodCategories to delete. + * @example + * // Delete a few FoodCategories + * const { count } = await prisma.foodCategory.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more FoodCategories. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {FoodCategoryUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many FoodCategories + * const foodCategory = await prisma.foodCategory.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one FoodCategory. + * @param {FoodCategoryUpsertArgs} args - Arguments to update or create a FoodCategory. + * @example + * // Update or create a FoodCategory + * const foodCategory = await prisma.foodCategory.upsert({ + * create: { + * // ... data to create a FoodCategory + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the FoodCategory we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__FoodCategoryClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of FoodCategories. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {FoodCategoryCountArgs} args - Arguments to filter FoodCategories to count. + * @example + * // Count the number of FoodCategories + * const count = await prisma.foodCategory.count({ + * where: { + * // ... the filter for the FoodCategories 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 FoodCategory. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {FoodCategoryAggregateArgs} 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 FoodCategory. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {FoodCategoryGroupByArgs} 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 FoodCategoryGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: FoodCategoryGroupByArgs['orderBy'] } + : { orderBy?: FoodCategoryGroupByArgs['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 ? GetFoodCategoryGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the FoodCategory model + */ +readonly fields: FoodCategoryFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for FoodCategory. + * 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__FoodCategoryClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + userFavorCategories = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): 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 FoodCategory model + */ +export interface FoodCategoryFieldRefs { + readonly id: Prisma.FieldRef<"FoodCategory", 'Int'> + readonly name: Prisma.FieldRef<"FoodCategory", 'String'> +} + + +// Custom InputTypes +/** + * FoodCategory findUnique + */ +export type FoodCategoryFindUniqueArgs = { + /** + * Select specific fields to fetch from the FoodCategory + */ + select?: Prisma.FoodCategorySelect | null + /** + * Omit specific fields from the FoodCategory + */ + omit?: Prisma.FoodCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FoodCategoryInclude | null + /** + * Filter, which FoodCategory to fetch. + */ + where: Prisma.FoodCategoryWhereUniqueInput +} + +/** + * FoodCategory findUniqueOrThrow + */ +export type FoodCategoryFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the FoodCategory + */ + select?: Prisma.FoodCategorySelect | null + /** + * Omit specific fields from the FoodCategory + */ + omit?: Prisma.FoodCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FoodCategoryInclude | null + /** + * Filter, which FoodCategory to fetch. + */ + where: Prisma.FoodCategoryWhereUniqueInput +} + +/** + * FoodCategory findFirst + */ +export type FoodCategoryFindFirstArgs = { + /** + * Select specific fields to fetch from the FoodCategory + */ + select?: Prisma.FoodCategorySelect | null + /** + * Omit specific fields from the FoodCategory + */ + omit?: Prisma.FoodCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FoodCategoryInclude | null + /** + * Filter, which FoodCategory to fetch. + */ + where?: Prisma.FoodCategoryWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of FoodCategories to fetch. + */ + orderBy?: Prisma.FoodCategoryOrderByWithRelationInput | Prisma.FoodCategoryOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for FoodCategories. + */ + cursor?: Prisma.FoodCategoryWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` FoodCategories 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` FoodCategories. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of FoodCategories. + */ + distinct?: Prisma.FoodCategoryScalarFieldEnum | Prisma.FoodCategoryScalarFieldEnum[] +} + +/** + * FoodCategory findFirstOrThrow + */ +export type FoodCategoryFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the FoodCategory + */ + select?: Prisma.FoodCategorySelect | null + /** + * Omit specific fields from the FoodCategory + */ + omit?: Prisma.FoodCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FoodCategoryInclude | null + /** + * Filter, which FoodCategory to fetch. + */ + where?: Prisma.FoodCategoryWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of FoodCategories to fetch. + */ + orderBy?: Prisma.FoodCategoryOrderByWithRelationInput | Prisma.FoodCategoryOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for FoodCategories. + */ + cursor?: Prisma.FoodCategoryWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` FoodCategories 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` FoodCategories. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of FoodCategories. + */ + distinct?: Prisma.FoodCategoryScalarFieldEnum | Prisma.FoodCategoryScalarFieldEnum[] +} + +/** + * FoodCategory findMany + */ +export type FoodCategoryFindManyArgs = { + /** + * Select specific fields to fetch from the FoodCategory + */ + select?: Prisma.FoodCategorySelect | null + /** + * Omit specific fields from the FoodCategory + */ + omit?: Prisma.FoodCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FoodCategoryInclude | null + /** + * Filter, which FoodCategories to fetch. + */ + where?: Prisma.FoodCategoryWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of FoodCategories to fetch. + */ + orderBy?: Prisma.FoodCategoryOrderByWithRelationInput | Prisma.FoodCategoryOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing FoodCategories. + */ + cursor?: Prisma.FoodCategoryWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` FoodCategories 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` FoodCategories. + */ + skip?: number + distinct?: Prisma.FoodCategoryScalarFieldEnum | Prisma.FoodCategoryScalarFieldEnum[] +} + +/** + * FoodCategory create + */ +export type FoodCategoryCreateArgs = { + /** + * Select specific fields to fetch from the FoodCategory + */ + select?: Prisma.FoodCategorySelect | null + /** + * Omit specific fields from the FoodCategory + */ + omit?: Prisma.FoodCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FoodCategoryInclude | null + /** + * The data needed to create a FoodCategory. + */ + data: Prisma.XOR +} + +/** + * FoodCategory createMany + */ +export type FoodCategoryCreateManyArgs = { + /** + * The data used to create many FoodCategories. + */ + data: Prisma.FoodCategoryCreateManyInput | Prisma.FoodCategoryCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * FoodCategory update + */ +export type FoodCategoryUpdateArgs = { + /** + * Select specific fields to fetch from the FoodCategory + */ + select?: Prisma.FoodCategorySelect | null + /** + * Omit specific fields from the FoodCategory + */ + omit?: Prisma.FoodCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FoodCategoryInclude | null + /** + * The data needed to update a FoodCategory. + */ + data: Prisma.XOR + /** + * Choose, which FoodCategory to update. + */ + where: Prisma.FoodCategoryWhereUniqueInput +} + +/** + * FoodCategory updateMany + */ +export type FoodCategoryUpdateManyArgs = { + /** + * The data used to update FoodCategories. + */ + data: Prisma.XOR + /** + * Filter which FoodCategories to update + */ + where?: Prisma.FoodCategoryWhereInput + /** + * Limit how many FoodCategories to update. + */ + limit?: number +} + +/** + * FoodCategory upsert + */ +export type FoodCategoryUpsertArgs = { + /** + * Select specific fields to fetch from the FoodCategory + */ + select?: Prisma.FoodCategorySelect | null + /** + * Omit specific fields from the FoodCategory + */ + omit?: Prisma.FoodCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FoodCategoryInclude | null + /** + * The filter to search for the FoodCategory to update in case it exists. + */ + where: Prisma.FoodCategoryWhereUniqueInput + /** + * In case the FoodCategory found by the `where` argument doesn't exist, create a new FoodCategory with this data. + */ + create: Prisma.XOR + /** + * In case the FoodCategory was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * FoodCategory delete + */ +export type FoodCategoryDeleteArgs = { + /** + * Select specific fields to fetch from the FoodCategory + */ + select?: Prisma.FoodCategorySelect | null + /** + * Omit specific fields from the FoodCategory + */ + omit?: Prisma.FoodCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FoodCategoryInclude | null + /** + * Filter which FoodCategory to delete. + */ + where: Prisma.FoodCategoryWhereUniqueInput +} + +/** + * FoodCategory deleteMany + */ +export type FoodCategoryDeleteManyArgs = { + /** + * Filter which FoodCategories to delete + */ + where?: Prisma.FoodCategoryWhereInput + /** + * Limit how many FoodCategories to delete. + */ + limit?: number +} + +/** + * FoodCategory.userFavorCategories + */ +export type FoodCategory$userFavorCategoriesArgs = { + /** + * Select specific fields to fetch from the UserFavorCategory + */ + select?: Prisma.UserFavorCategorySelect | null + /** + * Omit specific fields from the UserFavorCategory + */ + omit?: Prisma.UserFavorCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserFavorCategoryInclude | null + where?: Prisma.UserFavorCategoryWhereInput + orderBy?: Prisma.UserFavorCategoryOrderByWithRelationInput | Prisma.UserFavorCategoryOrderByWithRelationInput[] + cursor?: Prisma.UserFavorCategoryWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.UserFavorCategoryScalarFieldEnum | Prisma.UserFavorCategoryScalarFieldEnum[] +} + +/** + * FoodCategory without action + */ +export type FoodCategoryDefaultArgs = { + /** + * Select specific fields to fetch from the FoodCategory + */ + select?: Prisma.FoodCategorySelect | null + /** + * Omit specific fields from the FoodCategory + */ + omit?: Prisma.FoodCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FoodCategoryInclude | null +} diff --git a/generated/prisma/models/Mission.js b/generated/prisma/models/Mission.js new file mode 100644 index 0000000..253bb73 --- /dev/null +++ b/generated/prisma/models/Mission.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=Mission.js.map \ No newline at end of file diff --git a/generated/prisma/models/Mission.js.map b/generated/prisma/models/Mission.js.map new file mode 100644 index 0000000..239810e --- /dev/null +++ b/generated/prisma/models/Mission.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Mission.js","sourceRoot":"","sources":["../../../../src/generated/prisma/models/Mission.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/generated/prisma/models/Mission.ts b/generated/prisma/models/Mission.ts new file mode 100644 index 0000000..23ef540 --- /dev/null +++ b/generated/prisma/models/Mission.ts @@ -0,0 +1,1367 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Mission` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/library" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * Model Mission + * + */ +export type MissionModel = runtime.Types.Result.DefaultSelection + +export type AggregateMission = { + _count: MissionCountAggregateOutputType | null + _avg: MissionAvgAggregateOutputType | null + _sum: MissionSumAggregateOutputType | null + _min: MissionMinAggregateOutputType | null + _max: MissionMaxAggregateOutputType | null +} + +export type MissionAvgAggregateOutputType = { + id: number | null + storeId: number | null + rewardPoint: number | null +} + +export type MissionSumAggregateOutputType = { + id: number | null + storeId: number | null + rewardPoint: number | null +} + +export type MissionMinAggregateOutputType = { + id: number | null + storeId: number | null + conditionText: string | null + rewardPoint: number | null +} + +export type MissionMaxAggregateOutputType = { + id: number | null + storeId: number | null + conditionText: string | null + rewardPoint: number | null +} + +export type MissionCountAggregateOutputType = { + id: number + storeId: number + conditionText: number + rewardPoint: number + _all: number +} + + +export type MissionAvgAggregateInputType = { + id?: true + storeId?: true + rewardPoint?: true +} + +export type MissionSumAggregateInputType = { + id?: true + storeId?: true + rewardPoint?: true +} + +export type MissionMinAggregateInputType = { + id?: true + storeId?: true + conditionText?: true + rewardPoint?: true +} + +export type MissionMaxAggregateInputType = { + id?: true + storeId?: true + conditionText?: true + rewardPoint?: true +} + +export type MissionCountAggregateInputType = { + id?: true + storeId?: true + conditionText?: true + rewardPoint?: true + _all?: true +} + +export type MissionAggregateArgs = { + /** + * Filter which Mission to aggregate. + */ + where?: Prisma.MissionWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Missions to fetch. + */ + orderBy?: Prisma.MissionOrderByWithRelationInput | Prisma.MissionOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.MissionWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Missions 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` Missions. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Missions + **/ + _count?: true | MissionCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: MissionAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: MissionSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: MissionMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: MissionMaxAggregateInputType +} + +export type GetMissionAggregateType = { + [P in keyof T & keyof AggregateMission]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type MissionGroupByArgs = { + where?: Prisma.MissionWhereInput + orderBy?: Prisma.MissionOrderByWithAggregationInput | Prisma.MissionOrderByWithAggregationInput[] + by: Prisma.MissionScalarFieldEnum[] | Prisma.MissionScalarFieldEnum + having?: Prisma.MissionScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: MissionCountAggregateInputType | true + _avg?: MissionAvgAggregateInputType + _sum?: MissionSumAggregateInputType + _min?: MissionMinAggregateInputType + _max?: MissionMaxAggregateInputType +} + +export type MissionGroupByOutputType = { + id: number + storeId: number + conditionText: string + rewardPoint: number + _count: MissionCountAggregateOutputType | null + _avg: MissionAvgAggregateOutputType | null + _sum: MissionSumAggregateOutputType | null + _min: MissionMinAggregateOutputType | null + _max: MissionMaxAggregateOutputType | null +} + +type GetMissionGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof MissionGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type MissionWhereInput = { + AND?: Prisma.MissionWhereInput | Prisma.MissionWhereInput[] + OR?: Prisma.MissionWhereInput[] + NOT?: Prisma.MissionWhereInput | Prisma.MissionWhereInput[] + id?: Prisma.IntFilter<"Mission"> | number + storeId?: Prisma.IntFilter<"Mission"> | number + conditionText?: Prisma.StringFilter<"Mission"> | string + rewardPoint?: Prisma.IntFilter<"Mission"> | number + store?: Prisma.XOR + userMissions?: Prisma.UserMissionListRelationFilter +} + +export type MissionOrderByWithRelationInput = { + id?: Prisma.SortOrder + storeId?: Prisma.SortOrder + conditionText?: Prisma.SortOrder + rewardPoint?: Prisma.SortOrder + store?: Prisma.StoreOrderByWithRelationInput + userMissions?: Prisma.UserMissionOrderByRelationAggregateInput + _relevance?: Prisma.MissionOrderByRelevanceInput +} + +export type MissionWhereUniqueInput = Prisma.AtLeast<{ + id?: number + AND?: Prisma.MissionWhereInput | Prisma.MissionWhereInput[] + OR?: Prisma.MissionWhereInput[] + NOT?: Prisma.MissionWhereInput | Prisma.MissionWhereInput[] + storeId?: Prisma.IntFilter<"Mission"> | number + conditionText?: Prisma.StringFilter<"Mission"> | string + rewardPoint?: Prisma.IntFilter<"Mission"> | number + store?: Prisma.XOR + userMissions?: Prisma.UserMissionListRelationFilter +}, "id"> + +export type MissionOrderByWithAggregationInput = { + id?: Prisma.SortOrder + storeId?: Prisma.SortOrder + conditionText?: Prisma.SortOrder + rewardPoint?: Prisma.SortOrder + _count?: Prisma.MissionCountOrderByAggregateInput + _avg?: Prisma.MissionAvgOrderByAggregateInput + _max?: Prisma.MissionMaxOrderByAggregateInput + _min?: Prisma.MissionMinOrderByAggregateInput + _sum?: Prisma.MissionSumOrderByAggregateInput +} + +export type MissionScalarWhereWithAggregatesInput = { + AND?: Prisma.MissionScalarWhereWithAggregatesInput | Prisma.MissionScalarWhereWithAggregatesInput[] + OR?: Prisma.MissionScalarWhereWithAggregatesInput[] + NOT?: Prisma.MissionScalarWhereWithAggregatesInput | Prisma.MissionScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"Mission"> | number + storeId?: Prisma.IntWithAggregatesFilter<"Mission"> | number + conditionText?: Prisma.StringWithAggregatesFilter<"Mission"> | string + rewardPoint?: Prisma.IntWithAggregatesFilter<"Mission"> | number +} + +export type MissionCreateInput = { + conditionText: string + rewardPoint: number + store: Prisma.StoreCreateNestedOneWithoutMissionsInput + userMissions?: Prisma.UserMissionCreateNestedManyWithoutMissionInput +} + +export type MissionUncheckedCreateInput = { + id?: number + storeId: number + conditionText: string + rewardPoint: number + userMissions?: Prisma.UserMissionUncheckedCreateNestedManyWithoutMissionInput +} + +export type MissionUpdateInput = { + conditionText?: Prisma.StringFieldUpdateOperationsInput | string + rewardPoint?: Prisma.IntFieldUpdateOperationsInput | number + store?: Prisma.StoreUpdateOneRequiredWithoutMissionsNestedInput + userMissions?: Prisma.UserMissionUpdateManyWithoutMissionNestedInput +} + +export type MissionUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + storeId?: Prisma.IntFieldUpdateOperationsInput | number + conditionText?: Prisma.StringFieldUpdateOperationsInput | string + rewardPoint?: Prisma.IntFieldUpdateOperationsInput | number + userMissions?: Prisma.UserMissionUncheckedUpdateManyWithoutMissionNestedInput +} + +export type MissionCreateManyInput = { + id?: number + storeId: number + conditionText: string + rewardPoint: number +} + +export type MissionUpdateManyMutationInput = { + conditionText?: Prisma.StringFieldUpdateOperationsInput | string + rewardPoint?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type MissionUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + storeId?: Prisma.IntFieldUpdateOperationsInput | number + conditionText?: Prisma.StringFieldUpdateOperationsInput | string + rewardPoint?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type MissionListRelationFilter = { + every?: Prisma.MissionWhereInput + some?: Prisma.MissionWhereInput + none?: Prisma.MissionWhereInput +} + +export type MissionOrderByRelationAggregateInput = { + _count?: Prisma.SortOrder +} + +export type MissionOrderByRelevanceInput = { + fields: Prisma.MissionOrderByRelevanceFieldEnum | Prisma.MissionOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type MissionCountOrderByAggregateInput = { + id?: Prisma.SortOrder + storeId?: Prisma.SortOrder + conditionText?: Prisma.SortOrder + rewardPoint?: Prisma.SortOrder +} + +export type MissionAvgOrderByAggregateInput = { + id?: Prisma.SortOrder + storeId?: Prisma.SortOrder + rewardPoint?: Prisma.SortOrder +} + +export type MissionMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + storeId?: Prisma.SortOrder + conditionText?: Prisma.SortOrder + rewardPoint?: Prisma.SortOrder +} + +export type MissionMinOrderByAggregateInput = { + id?: Prisma.SortOrder + storeId?: Prisma.SortOrder + conditionText?: Prisma.SortOrder + rewardPoint?: Prisma.SortOrder +} + +export type MissionSumOrderByAggregateInput = { + id?: Prisma.SortOrder + storeId?: Prisma.SortOrder + rewardPoint?: Prisma.SortOrder +} + +export type MissionScalarRelationFilter = { + is?: Prisma.MissionWhereInput + isNot?: Prisma.MissionWhereInput +} + +export type MissionCreateNestedManyWithoutStoreInput = { + create?: Prisma.XOR | Prisma.MissionCreateWithoutStoreInput[] | Prisma.MissionUncheckedCreateWithoutStoreInput[] + connectOrCreate?: Prisma.MissionCreateOrConnectWithoutStoreInput | Prisma.MissionCreateOrConnectWithoutStoreInput[] + createMany?: Prisma.MissionCreateManyStoreInputEnvelope + connect?: Prisma.MissionWhereUniqueInput | Prisma.MissionWhereUniqueInput[] +} + +export type MissionUncheckedCreateNestedManyWithoutStoreInput = { + create?: Prisma.XOR | Prisma.MissionCreateWithoutStoreInput[] | Prisma.MissionUncheckedCreateWithoutStoreInput[] + connectOrCreate?: Prisma.MissionCreateOrConnectWithoutStoreInput | Prisma.MissionCreateOrConnectWithoutStoreInput[] + createMany?: Prisma.MissionCreateManyStoreInputEnvelope + connect?: Prisma.MissionWhereUniqueInput | Prisma.MissionWhereUniqueInput[] +} + +export type MissionUpdateManyWithoutStoreNestedInput = { + create?: Prisma.XOR | Prisma.MissionCreateWithoutStoreInput[] | Prisma.MissionUncheckedCreateWithoutStoreInput[] + connectOrCreate?: Prisma.MissionCreateOrConnectWithoutStoreInput | Prisma.MissionCreateOrConnectWithoutStoreInput[] + upsert?: Prisma.MissionUpsertWithWhereUniqueWithoutStoreInput | Prisma.MissionUpsertWithWhereUniqueWithoutStoreInput[] + createMany?: Prisma.MissionCreateManyStoreInputEnvelope + set?: Prisma.MissionWhereUniqueInput | Prisma.MissionWhereUniqueInput[] + disconnect?: Prisma.MissionWhereUniqueInput | Prisma.MissionWhereUniqueInput[] + delete?: Prisma.MissionWhereUniqueInput | Prisma.MissionWhereUniqueInput[] + connect?: Prisma.MissionWhereUniqueInput | Prisma.MissionWhereUniqueInput[] + update?: Prisma.MissionUpdateWithWhereUniqueWithoutStoreInput | Prisma.MissionUpdateWithWhereUniqueWithoutStoreInput[] + updateMany?: Prisma.MissionUpdateManyWithWhereWithoutStoreInput | Prisma.MissionUpdateManyWithWhereWithoutStoreInput[] + deleteMany?: Prisma.MissionScalarWhereInput | Prisma.MissionScalarWhereInput[] +} + +export type MissionUncheckedUpdateManyWithoutStoreNestedInput = { + create?: Prisma.XOR | Prisma.MissionCreateWithoutStoreInput[] | Prisma.MissionUncheckedCreateWithoutStoreInput[] + connectOrCreate?: Prisma.MissionCreateOrConnectWithoutStoreInput | Prisma.MissionCreateOrConnectWithoutStoreInput[] + upsert?: Prisma.MissionUpsertWithWhereUniqueWithoutStoreInput | Prisma.MissionUpsertWithWhereUniqueWithoutStoreInput[] + createMany?: Prisma.MissionCreateManyStoreInputEnvelope + set?: Prisma.MissionWhereUniqueInput | Prisma.MissionWhereUniqueInput[] + disconnect?: Prisma.MissionWhereUniqueInput | Prisma.MissionWhereUniqueInput[] + delete?: Prisma.MissionWhereUniqueInput | Prisma.MissionWhereUniqueInput[] + connect?: Prisma.MissionWhereUniqueInput | Prisma.MissionWhereUniqueInput[] + update?: Prisma.MissionUpdateWithWhereUniqueWithoutStoreInput | Prisma.MissionUpdateWithWhereUniqueWithoutStoreInput[] + updateMany?: Prisma.MissionUpdateManyWithWhereWithoutStoreInput | Prisma.MissionUpdateManyWithWhereWithoutStoreInput[] + deleteMany?: Prisma.MissionScalarWhereInput | Prisma.MissionScalarWhereInput[] +} + +export type MissionCreateNestedOneWithoutUserMissionsInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.MissionCreateOrConnectWithoutUserMissionsInput + connect?: Prisma.MissionWhereUniqueInput +} + +export type MissionUpdateOneRequiredWithoutUserMissionsNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.MissionCreateOrConnectWithoutUserMissionsInput + upsert?: Prisma.MissionUpsertWithoutUserMissionsInput + connect?: Prisma.MissionWhereUniqueInput + update?: Prisma.XOR, Prisma.MissionUncheckedUpdateWithoutUserMissionsInput> +} + +export type MissionCreateWithoutStoreInput = { + conditionText: string + rewardPoint: number + userMissions?: Prisma.UserMissionCreateNestedManyWithoutMissionInput +} + +export type MissionUncheckedCreateWithoutStoreInput = { + id?: number + conditionText: string + rewardPoint: number + userMissions?: Prisma.UserMissionUncheckedCreateNestedManyWithoutMissionInput +} + +export type MissionCreateOrConnectWithoutStoreInput = { + where: Prisma.MissionWhereUniqueInput + create: Prisma.XOR +} + +export type MissionCreateManyStoreInputEnvelope = { + data: Prisma.MissionCreateManyStoreInput | Prisma.MissionCreateManyStoreInput[] + skipDuplicates?: boolean +} + +export type MissionUpsertWithWhereUniqueWithoutStoreInput = { + where: Prisma.MissionWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type MissionUpdateWithWhereUniqueWithoutStoreInput = { + where: Prisma.MissionWhereUniqueInput + data: Prisma.XOR +} + +export type MissionUpdateManyWithWhereWithoutStoreInput = { + where: Prisma.MissionScalarWhereInput + data: Prisma.XOR +} + +export type MissionScalarWhereInput = { + AND?: Prisma.MissionScalarWhereInput | Prisma.MissionScalarWhereInput[] + OR?: Prisma.MissionScalarWhereInput[] + NOT?: Prisma.MissionScalarWhereInput | Prisma.MissionScalarWhereInput[] + id?: Prisma.IntFilter<"Mission"> | number + storeId?: Prisma.IntFilter<"Mission"> | number + conditionText?: Prisma.StringFilter<"Mission"> | string + rewardPoint?: Prisma.IntFilter<"Mission"> | number +} + +export type MissionCreateWithoutUserMissionsInput = { + conditionText: string + rewardPoint: number + store: Prisma.StoreCreateNestedOneWithoutMissionsInput +} + +export type MissionUncheckedCreateWithoutUserMissionsInput = { + id?: number + storeId: number + conditionText: string + rewardPoint: number +} + +export type MissionCreateOrConnectWithoutUserMissionsInput = { + where: Prisma.MissionWhereUniqueInput + create: Prisma.XOR +} + +export type MissionUpsertWithoutUserMissionsInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.MissionWhereInput +} + +export type MissionUpdateToOneWithWhereWithoutUserMissionsInput = { + where?: Prisma.MissionWhereInput + data: Prisma.XOR +} + +export type MissionUpdateWithoutUserMissionsInput = { + conditionText?: Prisma.StringFieldUpdateOperationsInput | string + rewardPoint?: Prisma.IntFieldUpdateOperationsInput | number + store?: Prisma.StoreUpdateOneRequiredWithoutMissionsNestedInput +} + +export type MissionUncheckedUpdateWithoutUserMissionsInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + storeId?: Prisma.IntFieldUpdateOperationsInput | number + conditionText?: Prisma.StringFieldUpdateOperationsInput | string + rewardPoint?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type MissionCreateManyStoreInput = { + id?: number + conditionText: string + rewardPoint: number +} + +export type MissionUpdateWithoutStoreInput = { + conditionText?: Prisma.StringFieldUpdateOperationsInput | string + rewardPoint?: Prisma.IntFieldUpdateOperationsInput | number + userMissions?: Prisma.UserMissionUpdateManyWithoutMissionNestedInput +} + +export type MissionUncheckedUpdateWithoutStoreInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + conditionText?: Prisma.StringFieldUpdateOperationsInput | string + rewardPoint?: Prisma.IntFieldUpdateOperationsInput | number + userMissions?: Prisma.UserMissionUncheckedUpdateManyWithoutMissionNestedInput +} + +export type MissionUncheckedUpdateManyWithoutStoreInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + conditionText?: Prisma.StringFieldUpdateOperationsInput | string + rewardPoint?: Prisma.IntFieldUpdateOperationsInput | number +} + + +/** + * Count Type MissionCountOutputType + */ + +export type MissionCountOutputType = { + userMissions: number +} + +export type MissionCountOutputTypeSelect = { + userMissions?: boolean | MissionCountOutputTypeCountUserMissionsArgs +} + +/** + * MissionCountOutputType without action + */ +export type MissionCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the MissionCountOutputType + */ + select?: Prisma.MissionCountOutputTypeSelect | null +} + +/** + * MissionCountOutputType without action + */ +export type MissionCountOutputTypeCountUserMissionsArgs = { + where?: Prisma.UserMissionWhereInput +} + + +export type MissionSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + storeId?: boolean + conditionText?: boolean + rewardPoint?: boolean + store?: boolean | Prisma.StoreDefaultArgs + userMissions?: boolean | Prisma.Mission$userMissionsArgs + _count?: boolean | Prisma.MissionCountOutputTypeDefaultArgs +}, ExtArgs["result"]["mission"]> + + + +export type MissionSelectScalar = { + id?: boolean + storeId?: boolean + conditionText?: boolean + rewardPoint?: boolean +} + +export type MissionOmit = runtime.Types.Extensions.GetOmit<"id" | "storeId" | "conditionText" | "rewardPoint", ExtArgs["result"]["mission"]> +export type MissionInclude = { + store?: boolean | Prisma.StoreDefaultArgs + userMissions?: boolean | Prisma.Mission$userMissionsArgs + _count?: boolean | Prisma.MissionCountOutputTypeDefaultArgs +} + +export type $MissionPayload = { + name: "Mission" + objects: { + store: Prisma.$StorePayload + userMissions: Prisma.$UserMissionPayload[] + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + storeId: number + conditionText: string + rewardPoint: number + }, ExtArgs["result"]["mission"]> + composites: {} +} + +export type MissionGetPayload = runtime.Types.Result.GetResult + +export type MissionCountArgs = + Omit & { + select?: MissionCountAggregateInputType | true + } + +export interface MissionDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Mission'], meta: { name: 'Mission' } } + /** + * Find zero or one Mission that matches the filter. + * @param {MissionFindUniqueArgs} args - Arguments to find a Mission + * @example + * // Get one Mission + * const mission = await prisma.mission.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__MissionClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Mission that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {MissionFindUniqueOrThrowArgs} args - Arguments to find a Mission + * @example + * // Get one Mission + * const mission = await prisma.mission.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__MissionClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Mission 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 {MissionFindFirstArgs} args - Arguments to find a Mission + * @example + * // Get one Mission + * const mission = await prisma.mission.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__MissionClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Mission 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 {MissionFindFirstOrThrowArgs} args - Arguments to find a Mission + * @example + * // Get one Mission + * const mission = await prisma.mission.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__MissionClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Missions 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 {MissionFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Missions + * const missions = await prisma.mission.findMany() + * + * // Get first 10 Missions + * const missions = await prisma.mission.findMany({ take: 10 }) + * + * // Only select the `id` + * const missionWithIdOnly = await prisma.mission.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Mission. + * @param {MissionCreateArgs} args - Arguments to create a Mission. + * @example + * // Create one Mission + * const Mission = await prisma.mission.create({ + * data: { + * // ... data to create a Mission + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__MissionClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Missions. + * @param {MissionCreateManyArgs} args - Arguments to create many Missions. + * @example + * // Create many Missions + * const mission = await prisma.mission.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a Mission. + * @param {MissionDeleteArgs} args - Arguments to delete one Mission. + * @example + * // Delete one Mission + * const Mission = await prisma.mission.delete({ + * where: { + * // ... filter to delete one Mission + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__MissionClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Mission. + * @param {MissionUpdateArgs} args - Arguments to update one Mission. + * @example + * // Update one Mission + * const mission = await prisma.mission.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__MissionClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Missions. + * @param {MissionDeleteManyArgs} args - Arguments to filter Missions to delete. + * @example + * // Delete a few Missions + * const { count } = await prisma.mission.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Missions. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {MissionUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Missions + * const mission = await prisma.mission.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one Mission. + * @param {MissionUpsertArgs} args - Arguments to update or create a Mission. + * @example + * // Update or create a Mission + * const mission = await prisma.mission.upsert({ + * create: { + * // ... data to create a Mission + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Mission we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__MissionClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Missions. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {MissionCountArgs} args - Arguments to filter Missions to count. + * @example + * // Count the number of Missions + * const count = await prisma.mission.count({ + * where: { + * // ... the filter for the Missions 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 Mission. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {MissionAggregateArgs} 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 Mission. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {MissionGroupByArgs} 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 MissionGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: MissionGroupByArgs['orderBy'] } + : { orderBy?: MissionGroupByArgs['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 ? GetMissionGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the Mission model + */ +readonly fields: MissionFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Mission. + * 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__MissionClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + store = {}>(args?: Prisma.Subset>): Prisma.Prisma__StoreClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + userMissions = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): 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 Mission model + */ +export interface MissionFieldRefs { + readonly id: Prisma.FieldRef<"Mission", 'Int'> + readonly storeId: Prisma.FieldRef<"Mission", 'Int'> + readonly conditionText: Prisma.FieldRef<"Mission", 'String'> + readonly rewardPoint: Prisma.FieldRef<"Mission", 'Int'> +} + + +// Custom InputTypes +/** + * Mission findUnique + */ +export type MissionFindUniqueArgs = { + /** + * Select specific fields to fetch from the Mission + */ + select?: Prisma.MissionSelect | null + /** + * Omit specific fields from the Mission + */ + omit?: Prisma.MissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MissionInclude | null + /** + * Filter, which Mission to fetch. + */ + where: Prisma.MissionWhereUniqueInput +} + +/** + * Mission findUniqueOrThrow + */ +export type MissionFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Mission + */ + select?: Prisma.MissionSelect | null + /** + * Omit specific fields from the Mission + */ + omit?: Prisma.MissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MissionInclude | null + /** + * Filter, which Mission to fetch. + */ + where: Prisma.MissionWhereUniqueInput +} + +/** + * Mission findFirst + */ +export type MissionFindFirstArgs = { + /** + * Select specific fields to fetch from the Mission + */ + select?: Prisma.MissionSelect | null + /** + * Omit specific fields from the Mission + */ + omit?: Prisma.MissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MissionInclude | null + /** + * Filter, which Mission to fetch. + */ + where?: Prisma.MissionWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Missions to fetch. + */ + orderBy?: Prisma.MissionOrderByWithRelationInput | Prisma.MissionOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Missions. + */ + cursor?: Prisma.MissionWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Missions 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` Missions. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Missions. + */ + distinct?: Prisma.MissionScalarFieldEnum | Prisma.MissionScalarFieldEnum[] +} + +/** + * Mission findFirstOrThrow + */ +export type MissionFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Mission + */ + select?: Prisma.MissionSelect | null + /** + * Omit specific fields from the Mission + */ + omit?: Prisma.MissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MissionInclude | null + /** + * Filter, which Mission to fetch. + */ + where?: Prisma.MissionWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Missions to fetch. + */ + orderBy?: Prisma.MissionOrderByWithRelationInput | Prisma.MissionOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Missions. + */ + cursor?: Prisma.MissionWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Missions 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` Missions. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Missions. + */ + distinct?: Prisma.MissionScalarFieldEnum | Prisma.MissionScalarFieldEnum[] +} + +/** + * Mission findMany + */ +export type MissionFindManyArgs = { + /** + * Select specific fields to fetch from the Mission + */ + select?: Prisma.MissionSelect | null + /** + * Omit specific fields from the Mission + */ + omit?: Prisma.MissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MissionInclude | null + /** + * Filter, which Missions to fetch. + */ + where?: Prisma.MissionWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Missions to fetch. + */ + orderBy?: Prisma.MissionOrderByWithRelationInput | Prisma.MissionOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Missions. + */ + cursor?: Prisma.MissionWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Missions 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` Missions. + */ + skip?: number + distinct?: Prisma.MissionScalarFieldEnum | Prisma.MissionScalarFieldEnum[] +} + +/** + * Mission create + */ +export type MissionCreateArgs = { + /** + * Select specific fields to fetch from the Mission + */ + select?: Prisma.MissionSelect | null + /** + * Omit specific fields from the Mission + */ + omit?: Prisma.MissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MissionInclude | null + /** + * The data needed to create a Mission. + */ + data: Prisma.XOR +} + +/** + * Mission createMany + */ +export type MissionCreateManyArgs = { + /** + * The data used to create many Missions. + */ + data: Prisma.MissionCreateManyInput | Prisma.MissionCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * Mission update + */ +export type MissionUpdateArgs = { + /** + * Select specific fields to fetch from the Mission + */ + select?: Prisma.MissionSelect | null + /** + * Omit specific fields from the Mission + */ + omit?: Prisma.MissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MissionInclude | null + /** + * The data needed to update a Mission. + */ + data: Prisma.XOR + /** + * Choose, which Mission to update. + */ + where: Prisma.MissionWhereUniqueInput +} + +/** + * Mission updateMany + */ +export type MissionUpdateManyArgs = { + /** + * The data used to update Missions. + */ + data: Prisma.XOR + /** + * Filter which Missions to update + */ + where?: Prisma.MissionWhereInput + /** + * Limit how many Missions to update. + */ + limit?: number +} + +/** + * Mission upsert + */ +export type MissionUpsertArgs = { + /** + * Select specific fields to fetch from the Mission + */ + select?: Prisma.MissionSelect | null + /** + * Omit specific fields from the Mission + */ + omit?: Prisma.MissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MissionInclude | null + /** + * The filter to search for the Mission to update in case it exists. + */ + where: Prisma.MissionWhereUniqueInput + /** + * In case the Mission found by the `where` argument doesn't exist, create a new Mission with this data. + */ + create: Prisma.XOR + /** + * In case the Mission was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * Mission delete + */ +export type MissionDeleteArgs = { + /** + * Select specific fields to fetch from the Mission + */ + select?: Prisma.MissionSelect | null + /** + * Omit specific fields from the Mission + */ + omit?: Prisma.MissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MissionInclude | null + /** + * Filter which Mission to delete. + */ + where: Prisma.MissionWhereUniqueInput +} + +/** + * Mission deleteMany + */ +export type MissionDeleteManyArgs = { + /** + * Filter which Missions to delete + */ + where?: Prisma.MissionWhereInput + /** + * Limit how many Missions to delete. + */ + limit?: number +} + +/** + * Mission.userMissions + */ +export type Mission$userMissionsArgs = { + /** + * Select specific fields to fetch from the UserMission + */ + select?: Prisma.UserMissionSelect | null + /** + * Omit specific fields from the UserMission + */ + omit?: Prisma.UserMissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserMissionInclude | null + where?: Prisma.UserMissionWhereInput + orderBy?: Prisma.UserMissionOrderByWithRelationInput | Prisma.UserMissionOrderByWithRelationInput[] + cursor?: Prisma.UserMissionWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.UserMissionScalarFieldEnum | Prisma.UserMissionScalarFieldEnum[] +} + +/** + * Mission without action + */ +export type MissionDefaultArgs = { + /** + * Select specific fields to fetch from the Mission + */ + select?: Prisma.MissionSelect | null + /** + * Omit specific fields from the Mission + */ + omit?: Prisma.MissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MissionInclude | null +} diff --git a/generated/prisma/models/Store.js b/generated/prisma/models/Store.js new file mode 100644 index 0000000..6f4bcc4 --- /dev/null +++ b/generated/prisma/models/Store.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=Store.js.map \ No newline at end of file diff --git a/generated/prisma/models/Store.js.map b/generated/prisma/models/Store.js.map new file mode 100644 index 0000000..bb368e6 --- /dev/null +++ b/generated/prisma/models/Store.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Store.js","sourceRoot":"","sources":["../../../../src/generated/prisma/models/Store.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/generated/prisma/models/Store.ts b/generated/prisma/models/Store.ts new file mode 100644 index 0000000..ce5daed --- /dev/null +++ b/generated/prisma/models/Store.ts @@ -0,0 +1,1263 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Store` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/library" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * Model Store + * + */ +export type StoreModel = runtime.Types.Result.DefaultSelection + +export type AggregateStore = { + _count: StoreCountAggregateOutputType | null + _avg: StoreAvgAggregateOutputType | null + _sum: StoreSumAggregateOutputType | null + _min: StoreMinAggregateOutputType | null + _max: StoreMaxAggregateOutputType | null +} + +export type StoreAvgAggregateOutputType = { + id: number | null +} + +export type StoreSumAggregateOutputType = { + id: number | null +} + +export type StoreMinAggregateOutputType = { + id: number | null + name: string | null +} + +export type StoreMaxAggregateOutputType = { + id: number | null + name: string | null +} + +export type StoreCountAggregateOutputType = { + id: number + name: number + _all: number +} + + +export type StoreAvgAggregateInputType = { + id?: true +} + +export type StoreSumAggregateInputType = { + id?: true +} + +export type StoreMinAggregateInputType = { + id?: true + name?: true +} + +export type StoreMaxAggregateInputType = { + id?: true + name?: true +} + +export type StoreCountAggregateInputType = { + id?: true + name?: true + _all?: true +} + +export type StoreAggregateArgs = { + /** + * Filter which Store to aggregate. + */ + where?: Prisma.StoreWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Stores to fetch. + */ + orderBy?: Prisma.StoreOrderByWithRelationInput | Prisma.StoreOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.StoreWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Stores 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` Stores. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Stores + **/ + _count?: true | StoreCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: StoreAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: StoreSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: StoreMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: StoreMaxAggregateInputType +} + +export type GetStoreAggregateType = { + [P in keyof T & keyof AggregateStore]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type StoreGroupByArgs = { + where?: Prisma.StoreWhereInput + orderBy?: Prisma.StoreOrderByWithAggregationInput | Prisma.StoreOrderByWithAggregationInput[] + by: Prisma.StoreScalarFieldEnum[] | Prisma.StoreScalarFieldEnum + having?: Prisma.StoreScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: StoreCountAggregateInputType | true + _avg?: StoreAvgAggregateInputType + _sum?: StoreSumAggregateInputType + _min?: StoreMinAggregateInputType + _max?: StoreMaxAggregateInputType +} + +export type StoreGroupByOutputType = { + id: number + name: string + _count: StoreCountAggregateOutputType | null + _avg: StoreAvgAggregateOutputType | null + _sum: StoreSumAggregateOutputType | null + _min: StoreMinAggregateOutputType | null + _max: StoreMaxAggregateOutputType | null +} + +type GetStoreGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof StoreGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type StoreWhereInput = { + AND?: Prisma.StoreWhereInput | Prisma.StoreWhereInput[] + OR?: Prisma.StoreWhereInput[] + NOT?: Prisma.StoreWhereInput | Prisma.StoreWhereInput[] + id?: Prisma.IntFilter<"Store"> | number + name?: Prisma.StringFilter<"Store"> | string + reviews?: Prisma.UserStoreReviewListRelationFilter + missions?: Prisma.MissionListRelationFilter +} + +export type StoreOrderByWithRelationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + reviews?: Prisma.UserStoreReviewOrderByRelationAggregateInput + missions?: Prisma.MissionOrderByRelationAggregateInput + _relevance?: Prisma.StoreOrderByRelevanceInput +} + +export type StoreWhereUniqueInput = Prisma.AtLeast<{ + id?: number + AND?: Prisma.StoreWhereInput | Prisma.StoreWhereInput[] + OR?: Prisma.StoreWhereInput[] + NOT?: Prisma.StoreWhereInput | Prisma.StoreWhereInput[] + name?: Prisma.StringFilter<"Store"> | string + reviews?: Prisma.UserStoreReviewListRelationFilter + missions?: Prisma.MissionListRelationFilter +}, "id"> + +export type StoreOrderByWithAggregationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + _count?: Prisma.StoreCountOrderByAggregateInput + _avg?: Prisma.StoreAvgOrderByAggregateInput + _max?: Prisma.StoreMaxOrderByAggregateInput + _min?: Prisma.StoreMinOrderByAggregateInput + _sum?: Prisma.StoreSumOrderByAggregateInput +} + +export type StoreScalarWhereWithAggregatesInput = { + AND?: Prisma.StoreScalarWhereWithAggregatesInput | Prisma.StoreScalarWhereWithAggregatesInput[] + OR?: Prisma.StoreScalarWhereWithAggregatesInput[] + NOT?: Prisma.StoreScalarWhereWithAggregatesInput | Prisma.StoreScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"Store"> | number + name?: Prisma.StringWithAggregatesFilter<"Store"> | string +} + +export type StoreCreateInput = { + name: string + reviews?: Prisma.UserStoreReviewCreateNestedManyWithoutStoreInput + missions?: Prisma.MissionCreateNestedManyWithoutStoreInput +} + +export type StoreUncheckedCreateInput = { + id?: number + name: string + reviews?: Prisma.UserStoreReviewUncheckedCreateNestedManyWithoutStoreInput + missions?: Prisma.MissionUncheckedCreateNestedManyWithoutStoreInput +} + +export type StoreUpdateInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + reviews?: Prisma.UserStoreReviewUpdateManyWithoutStoreNestedInput + missions?: Prisma.MissionUpdateManyWithoutStoreNestedInput +} + +export type StoreUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + reviews?: Prisma.UserStoreReviewUncheckedUpdateManyWithoutStoreNestedInput + missions?: Prisma.MissionUncheckedUpdateManyWithoutStoreNestedInput +} + +export type StoreCreateManyInput = { + id?: number + name: string +} + +export type StoreUpdateManyMutationInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type StoreUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type StoreOrderByRelevanceInput = { + fields: Prisma.StoreOrderByRelevanceFieldEnum | Prisma.StoreOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type StoreCountOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder +} + +export type StoreAvgOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type StoreMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder +} + +export type StoreMinOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder +} + +export type StoreSumOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type StoreScalarRelationFilter = { + is?: Prisma.StoreWhereInput + isNot?: Prisma.StoreWhereInput +} + +export type StoreCreateNestedOneWithoutReviewsInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.StoreCreateOrConnectWithoutReviewsInput + connect?: Prisma.StoreWhereUniqueInput +} + +export type StoreUpdateOneRequiredWithoutReviewsNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.StoreCreateOrConnectWithoutReviewsInput + upsert?: Prisma.StoreUpsertWithoutReviewsInput + connect?: Prisma.StoreWhereUniqueInput + update?: Prisma.XOR, Prisma.StoreUncheckedUpdateWithoutReviewsInput> +} + +export type StoreCreateNestedOneWithoutMissionsInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.StoreCreateOrConnectWithoutMissionsInput + connect?: Prisma.StoreWhereUniqueInput +} + +export type StoreUpdateOneRequiredWithoutMissionsNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.StoreCreateOrConnectWithoutMissionsInput + upsert?: Prisma.StoreUpsertWithoutMissionsInput + connect?: Prisma.StoreWhereUniqueInput + update?: Prisma.XOR, Prisma.StoreUncheckedUpdateWithoutMissionsInput> +} + +export type StoreCreateWithoutReviewsInput = { + name: string + missions?: Prisma.MissionCreateNestedManyWithoutStoreInput +} + +export type StoreUncheckedCreateWithoutReviewsInput = { + id?: number + name: string + missions?: Prisma.MissionUncheckedCreateNestedManyWithoutStoreInput +} + +export type StoreCreateOrConnectWithoutReviewsInput = { + where: Prisma.StoreWhereUniqueInput + create: Prisma.XOR +} + +export type StoreUpsertWithoutReviewsInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.StoreWhereInput +} + +export type StoreUpdateToOneWithWhereWithoutReviewsInput = { + where?: Prisma.StoreWhereInput + data: Prisma.XOR +} + +export type StoreUpdateWithoutReviewsInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + missions?: Prisma.MissionUpdateManyWithoutStoreNestedInput +} + +export type StoreUncheckedUpdateWithoutReviewsInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + missions?: Prisma.MissionUncheckedUpdateManyWithoutStoreNestedInput +} + +export type StoreCreateWithoutMissionsInput = { + name: string + reviews?: Prisma.UserStoreReviewCreateNestedManyWithoutStoreInput +} + +export type StoreUncheckedCreateWithoutMissionsInput = { + id?: number + name: string + reviews?: Prisma.UserStoreReviewUncheckedCreateNestedManyWithoutStoreInput +} + +export type StoreCreateOrConnectWithoutMissionsInput = { + where: Prisma.StoreWhereUniqueInput + create: Prisma.XOR +} + +export type StoreUpsertWithoutMissionsInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.StoreWhereInput +} + +export type StoreUpdateToOneWithWhereWithoutMissionsInput = { + where?: Prisma.StoreWhereInput + data: Prisma.XOR +} + +export type StoreUpdateWithoutMissionsInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + reviews?: Prisma.UserStoreReviewUpdateManyWithoutStoreNestedInput +} + +export type StoreUncheckedUpdateWithoutMissionsInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + reviews?: Prisma.UserStoreReviewUncheckedUpdateManyWithoutStoreNestedInput +} + + +/** + * Count Type StoreCountOutputType + */ + +export type StoreCountOutputType = { + reviews: number + missions: number +} + +export type StoreCountOutputTypeSelect = { + reviews?: boolean | StoreCountOutputTypeCountReviewsArgs + missions?: boolean | StoreCountOutputTypeCountMissionsArgs +} + +/** + * StoreCountOutputType without action + */ +export type StoreCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the StoreCountOutputType + */ + select?: Prisma.StoreCountOutputTypeSelect | null +} + +/** + * StoreCountOutputType without action + */ +export type StoreCountOutputTypeCountReviewsArgs = { + where?: Prisma.UserStoreReviewWhereInput +} + +/** + * StoreCountOutputType without action + */ +export type StoreCountOutputTypeCountMissionsArgs = { + where?: Prisma.MissionWhereInput +} + + +export type StoreSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + name?: boolean + reviews?: boolean | Prisma.Store$reviewsArgs + missions?: boolean | Prisma.Store$missionsArgs + _count?: boolean | Prisma.StoreCountOutputTypeDefaultArgs +}, ExtArgs["result"]["store"]> + + + +export type StoreSelectScalar = { + id?: boolean + name?: boolean +} + +export type StoreOmit = runtime.Types.Extensions.GetOmit<"id" | "name", ExtArgs["result"]["store"]> +export type StoreInclude = { + reviews?: boolean | Prisma.Store$reviewsArgs + missions?: boolean | Prisma.Store$missionsArgs + _count?: boolean | Prisma.StoreCountOutputTypeDefaultArgs +} + +export type $StorePayload = { + name: "Store" + objects: { + reviews: Prisma.$UserStoreReviewPayload[] + missions: Prisma.$MissionPayload[] + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + name: string + }, ExtArgs["result"]["store"]> + composites: {} +} + +export type StoreGetPayload = runtime.Types.Result.GetResult + +export type StoreCountArgs = + Omit & { + select?: StoreCountAggregateInputType | true + } + +export interface StoreDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Store'], meta: { name: 'Store' } } + /** + * Find zero or one Store that matches the filter. + * @param {StoreFindUniqueArgs} args - Arguments to find a Store + * @example + * // Get one Store + * const store = await prisma.store.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__StoreClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Store that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {StoreFindUniqueOrThrowArgs} args - Arguments to find a Store + * @example + * // Get one Store + * const store = await prisma.store.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__StoreClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Store 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 {StoreFindFirstArgs} args - Arguments to find a Store + * @example + * // Get one Store + * const store = await prisma.store.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__StoreClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Store 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 {StoreFindFirstOrThrowArgs} args - Arguments to find a Store + * @example + * // Get one Store + * const store = await prisma.store.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__StoreClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Stores 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 {StoreFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Stores + * const stores = await prisma.store.findMany() + * + * // Get first 10 Stores + * const stores = await prisma.store.findMany({ take: 10 }) + * + * // Only select the `id` + * const storeWithIdOnly = await prisma.store.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Store. + * @param {StoreCreateArgs} args - Arguments to create a Store. + * @example + * // Create one Store + * const Store = await prisma.store.create({ + * data: { + * // ... data to create a Store + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__StoreClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Stores. + * @param {StoreCreateManyArgs} args - Arguments to create many Stores. + * @example + * // Create many Stores + * const store = await prisma.store.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a Store. + * @param {StoreDeleteArgs} args - Arguments to delete one Store. + * @example + * // Delete one Store + * const Store = await prisma.store.delete({ + * where: { + * // ... filter to delete one Store + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__StoreClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Store. + * @param {StoreUpdateArgs} args - Arguments to update one Store. + * @example + * // Update one Store + * const store = await prisma.store.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__StoreClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Stores. + * @param {StoreDeleteManyArgs} args - Arguments to filter Stores to delete. + * @example + * // Delete a few Stores + * const { count } = await prisma.store.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Stores. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StoreUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Stores + * const store = await prisma.store.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one Store. + * @param {StoreUpsertArgs} args - Arguments to update or create a Store. + * @example + * // Update or create a Store + * const store = await prisma.store.upsert({ + * create: { + * // ... data to create a Store + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Store we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__StoreClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Stores. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StoreCountArgs} args - Arguments to filter Stores to count. + * @example + * // Count the number of Stores + * const count = await prisma.store.count({ + * where: { + * // ... the filter for the Stores 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 Store. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StoreAggregateArgs} 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 Store. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StoreGroupByArgs} 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 StoreGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: StoreGroupByArgs['orderBy'] } + : { orderBy?: StoreGroupByArgs['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 ? GetStoreGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the Store model + */ +readonly fields: StoreFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Store. + * 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__StoreClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + reviews = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + missions = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): 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 Store model + */ +export interface StoreFieldRefs { + readonly id: Prisma.FieldRef<"Store", 'Int'> + readonly name: Prisma.FieldRef<"Store", 'String'> +} + + +// Custom InputTypes +/** + * Store findUnique + */ +export type StoreFindUniqueArgs = { + /** + * Select specific fields to fetch from the Store + */ + select?: Prisma.StoreSelect | null + /** + * Omit specific fields from the Store + */ + omit?: Prisma.StoreOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.StoreInclude | null + /** + * Filter, which Store to fetch. + */ + where: Prisma.StoreWhereUniqueInput +} + +/** + * Store findUniqueOrThrow + */ +export type StoreFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Store + */ + select?: Prisma.StoreSelect | null + /** + * Omit specific fields from the Store + */ + omit?: Prisma.StoreOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.StoreInclude | null + /** + * Filter, which Store to fetch. + */ + where: Prisma.StoreWhereUniqueInput +} + +/** + * Store findFirst + */ +export type StoreFindFirstArgs = { + /** + * Select specific fields to fetch from the Store + */ + select?: Prisma.StoreSelect | null + /** + * Omit specific fields from the Store + */ + omit?: Prisma.StoreOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.StoreInclude | null + /** + * Filter, which Store to fetch. + */ + where?: Prisma.StoreWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Stores to fetch. + */ + orderBy?: Prisma.StoreOrderByWithRelationInput | Prisma.StoreOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Stores. + */ + cursor?: Prisma.StoreWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Stores 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` Stores. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Stores. + */ + distinct?: Prisma.StoreScalarFieldEnum | Prisma.StoreScalarFieldEnum[] +} + +/** + * Store findFirstOrThrow + */ +export type StoreFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Store + */ + select?: Prisma.StoreSelect | null + /** + * Omit specific fields from the Store + */ + omit?: Prisma.StoreOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.StoreInclude | null + /** + * Filter, which Store to fetch. + */ + where?: Prisma.StoreWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Stores to fetch. + */ + orderBy?: Prisma.StoreOrderByWithRelationInput | Prisma.StoreOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Stores. + */ + cursor?: Prisma.StoreWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Stores 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` Stores. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Stores. + */ + distinct?: Prisma.StoreScalarFieldEnum | Prisma.StoreScalarFieldEnum[] +} + +/** + * Store findMany + */ +export type StoreFindManyArgs = { + /** + * Select specific fields to fetch from the Store + */ + select?: Prisma.StoreSelect | null + /** + * Omit specific fields from the Store + */ + omit?: Prisma.StoreOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.StoreInclude | null + /** + * Filter, which Stores to fetch. + */ + where?: Prisma.StoreWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Stores to fetch. + */ + orderBy?: Prisma.StoreOrderByWithRelationInput | Prisma.StoreOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Stores. + */ + cursor?: Prisma.StoreWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Stores 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` Stores. + */ + skip?: number + distinct?: Prisma.StoreScalarFieldEnum | Prisma.StoreScalarFieldEnum[] +} + +/** + * Store create + */ +export type StoreCreateArgs = { + /** + * Select specific fields to fetch from the Store + */ + select?: Prisma.StoreSelect | null + /** + * Omit specific fields from the Store + */ + omit?: Prisma.StoreOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.StoreInclude | null + /** + * The data needed to create a Store. + */ + data: Prisma.XOR +} + +/** + * Store createMany + */ +export type StoreCreateManyArgs = { + /** + * The data used to create many Stores. + */ + data: Prisma.StoreCreateManyInput | Prisma.StoreCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * Store update + */ +export type StoreUpdateArgs = { + /** + * Select specific fields to fetch from the Store + */ + select?: Prisma.StoreSelect | null + /** + * Omit specific fields from the Store + */ + omit?: Prisma.StoreOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.StoreInclude | null + /** + * The data needed to update a Store. + */ + data: Prisma.XOR + /** + * Choose, which Store to update. + */ + where: Prisma.StoreWhereUniqueInput +} + +/** + * Store updateMany + */ +export type StoreUpdateManyArgs = { + /** + * The data used to update Stores. + */ + data: Prisma.XOR + /** + * Filter which Stores to update + */ + where?: Prisma.StoreWhereInput + /** + * Limit how many Stores to update. + */ + limit?: number +} + +/** + * Store upsert + */ +export type StoreUpsertArgs = { + /** + * Select specific fields to fetch from the Store + */ + select?: Prisma.StoreSelect | null + /** + * Omit specific fields from the Store + */ + omit?: Prisma.StoreOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.StoreInclude | null + /** + * The filter to search for the Store to update in case it exists. + */ + where: Prisma.StoreWhereUniqueInput + /** + * In case the Store found by the `where` argument doesn't exist, create a new Store with this data. + */ + create: Prisma.XOR + /** + * In case the Store was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * Store delete + */ +export type StoreDeleteArgs = { + /** + * Select specific fields to fetch from the Store + */ + select?: Prisma.StoreSelect | null + /** + * Omit specific fields from the Store + */ + omit?: Prisma.StoreOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.StoreInclude | null + /** + * Filter which Store to delete. + */ + where: Prisma.StoreWhereUniqueInput +} + +/** + * Store deleteMany + */ +export type StoreDeleteManyArgs = { + /** + * Filter which Stores to delete + */ + where?: Prisma.StoreWhereInput + /** + * Limit how many Stores to delete. + */ + limit?: number +} + +/** + * Store.reviews + */ +export type Store$reviewsArgs = { + /** + * Select specific fields to fetch from the UserStoreReview + */ + select?: Prisma.UserStoreReviewSelect | null + /** + * Omit specific fields from the UserStoreReview + */ + omit?: Prisma.UserStoreReviewOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserStoreReviewInclude | null + where?: Prisma.UserStoreReviewWhereInput + orderBy?: Prisma.UserStoreReviewOrderByWithRelationInput | Prisma.UserStoreReviewOrderByWithRelationInput[] + cursor?: Prisma.UserStoreReviewWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.UserStoreReviewScalarFieldEnum | Prisma.UserStoreReviewScalarFieldEnum[] +} + +/** + * Store.missions + */ +export type Store$missionsArgs = { + /** + * Select specific fields to fetch from the Mission + */ + select?: Prisma.MissionSelect | null + /** + * Omit specific fields from the Mission + */ + omit?: Prisma.MissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MissionInclude | null + where?: Prisma.MissionWhereInput + orderBy?: Prisma.MissionOrderByWithRelationInput | Prisma.MissionOrderByWithRelationInput[] + cursor?: Prisma.MissionWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.MissionScalarFieldEnum | Prisma.MissionScalarFieldEnum[] +} + +/** + * Store without action + */ +export type StoreDefaultArgs = { + /** + * Select specific fields to fetch from the Store + */ + select?: Prisma.StoreSelect | null + /** + * Omit specific fields from the Store + */ + omit?: Prisma.StoreOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.StoreInclude | null +} diff --git a/generated/prisma/models/User.js b/generated/prisma/models/User.js new file mode 100644 index 0000000..4459182 --- /dev/null +++ b/generated/prisma/models/User.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=User.js.map \ No newline at end of file diff --git a/generated/prisma/models/User.js.map b/generated/prisma/models/User.js.map new file mode 100644 index 0000000..119f70b --- /dev/null +++ b/generated/prisma/models/User.js.map @@ -0,0 +1 @@ +{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../../src/generated/prisma/models/User.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/generated/prisma/models/User.ts b/generated/prisma/models/User.ts new file mode 100644 index 0000000..b90a45a --- /dev/null +++ b/generated/prisma/models/User.ts @@ -0,0 +1,1619 @@ + +/* !!! 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/library" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * 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 + email: string | null + name: string | null + gender: string | null + birth: Date | null + address: string | null + detailAddress: string | null + phoneNumber: string | null +} + +export type UserMaxAggregateOutputType = { + id: number | null + email: string | null + name: string | null + gender: string | null + birth: Date | null + address: string | null + detailAddress: string | null + phoneNumber: string | null +} + +export type UserCountAggregateOutputType = { + id: number + email: number + name: number + gender: number + birth: number + address: number + detailAddress: number + phoneNumber: number + _all: number +} + + +export type UserAvgAggregateInputType = { + id?: true +} + +export type UserSumAggregateInputType = { + id?: true +} + +export type UserMinAggregateInputType = { + id?: true + email?: true + name?: true + gender?: true + birth?: true + address?: true + detailAddress?: true + phoneNumber?: true +} + +export type UserMaxAggregateInputType = { + id?: true + email?: true + name?: true + gender?: true + birth?: true + address?: true + detailAddress?: true + phoneNumber?: true +} + +export type UserCountAggregateInputType = { + id?: true + email?: true + name?: true + gender?: true + birth?: true + address?: true + detailAddress?: true + phoneNumber?: 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 + email: string + name: string + gender: string + birth: Date + address: string + detailAddress: string | null + phoneNumber: string + _count: UserCountAggregateOutputType | null + _avg: UserAvgAggregateOutputType | null + _sum: UserSumAggregateOutputType | null + _min: UserMinAggregateOutputType | null + _max: UserMaxAggregateOutputType | null +} + +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 + email?: Prisma.StringFilter<"User"> | string + name?: Prisma.StringFilter<"User"> | string + gender?: Prisma.StringFilter<"User"> | string + birth?: Prisma.DateTimeFilter<"User"> | Date | string + address?: Prisma.StringFilter<"User"> | string + detailAddress?: Prisma.StringNullableFilter<"User"> | string | null + phoneNumber?: Prisma.StringFilter<"User"> | string + userFavorCategories?: Prisma.UserFavorCategoryListRelationFilter + storeReviews?: Prisma.UserStoreReviewListRelationFilter + userMissions?: Prisma.UserMissionListRelationFilter +} + +export type UserOrderByWithRelationInput = { + id?: Prisma.SortOrder + email?: Prisma.SortOrder + name?: Prisma.SortOrder + gender?: Prisma.SortOrder + birth?: Prisma.SortOrder + address?: Prisma.SortOrder + detailAddress?: Prisma.SortOrderInput | Prisma.SortOrder + phoneNumber?: Prisma.SortOrder + userFavorCategories?: Prisma.UserFavorCategoryOrderByRelationAggregateInput + storeReviews?: Prisma.UserStoreReviewOrderByRelationAggregateInput + userMissions?: Prisma.UserMissionOrderByRelationAggregateInput + _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 + gender?: Prisma.StringFilter<"User"> | string + birth?: Prisma.DateTimeFilter<"User"> | Date | string + address?: Prisma.StringFilter<"User"> | string + detailAddress?: Prisma.StringNullableFilter<"User"> | string | null + phoneNumber?: Prisma.StringFilter<"User"> | string + userFavorCategories?: Prisma.UserFavorCategoryListRelationFilter + storeReviews?: Prisma.UserStoreReviewListRelationFilter + userMissions?: Prisma.UserMissionListRelationFilter +}, "id" | "email"> + +export type UserOrderByWithAggregationInput = { + id?: Prisma.SortOrder + email?: Prisma.SortOrder + name?: Prisma.SortOrder + gender?: Prisma.SortOrder + birth?: Prisma.SortOrder + address?: Prisma.SortOrder + detailAddress?: Prisma.SortOrderInput | Prisma.SortOrder + phoneNumber?: 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 + email?: Prisma.StringWithAggregatesFilter<"User"> | string + name?: Prisma.StringWithAggregatesFilter<"User"> | string + gender?: Prisma.StringWithAggregatesFilter<"User"> | string + birth?: Prisma.DateTimeWithAggregatesFilter<"User"> | Date | string + address?: Prisma.StringWithAggregatesFilter<"User"> | string + detailAddress?: Prisma.StringNullableWithAggregatesFilter<"User"> | string | null + phoneNumber?: Prisma.StringWithAggregatesFilter<"User"> | string +} + +export type UserCreateInput = { + email: string + name: string + gender: string + birth: Date | string + address: string + detailAddress?: string | null + phoneNumber: string + userFavorCategories?: Prisma.UserFavorCategoryCreateNestedManyWithoutUserInput + storeReviews?: Prisma.UserStoreReviewCreateNestedManyWithoutUserInput + userMissions?: Prisma.UserMissionCreateNestedManyWithoutUserInput +} + +export type UserUncheckedCreateInput = { + id?: number + email: string + name: string + gender: string + birth: Date | string + address: string + detailAddress?: string | null + phoneNumber: string + userFavorCategories?: Prisma.UserFavorCategoryUncheckedCreateNestedManyWithoutUserInput + storeReviews?: Prisma.UserStoreReviewUncheckedCreateNestedManyWithoutUserInput + userMissions?: Prisma.UserMissionUncheckedCreateNestedManyWithoutUserInput +} + +export type UserUpdateInput = { + email?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + gender?: Prisma.StringFieldUpdateOperationsInput | string + birth?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + address?: Prisma.StringFieldUpdateOperationsInput | string + detailAddress?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneNumber?: Prisma.StringFieldUpdateOperationsInput | string + userFavorCategories?: Prisma.UserFavorCategoryUpdateManyWithoutUserNestedInput + storeReviews?: Prisma.UserStoreReviewUpdateManyWithoutUserNestedInput + userMissions?: Prisma.UserMissionUpdateManyWithoutUserNestedInput +} + +export type UserUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + email?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + gender?: Prisma.StringFieldUpdateOperationsInput | string + birth?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + address?: Prisma.StringFieldUpdateOperationsInput | string + detailAddress?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneNumber?: Prisma.StringFieldUpdateOperationsInput | string + userFavorCategories?: Prisma.UserFavorCategoryUncheckedUpdateManyWithoutUserNestedInput + storeReviews?: Prisma.UserStoreReviewUncheckedUpdateManyWithoutUserNestedInput + userMissions?: Prisma.UserMissionUncheckedUpdateManyWithoutUserNestedInput +} + +export type UserCreateManyInput = { + id?: number + email: string + name: string + gender: string + birth: Date | string + address: string + detailAddress?: string | null + phoneNumber: string +} + +export type UserUpdateManyMutationInput = { + email?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + gender?: Prisma.StringFieldUpdateOperationsInput | string + birth?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + address?: Prisma.StringFieldUpdateOperationsInput | string + detailAddress?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneNumber?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type UserUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + email?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + gender?: Prisma.StringFieldUpdateOperationsInput | string + birth?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + address?: Prisma.StringFieldUpdateOperationsInput | string + detailAddress?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneNumber?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type UserOrderByRelevanceInput = { + fields: Prisma.UserOrderByRelevanceFieldEnum | Prisma.UserOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type UserCountOrderByAggregateInput = { + id?: Prisma.SortOrder + email?: Prisma.SortOrder + name?: Prisma.SortOrder + gender?: Prisma.SortOrder + birth?: Prisma.SortOrder + address?: Prisma.SortOrder + detailAddress?: Prisma.SortOrder + phoneNumber?: Prisma.SortOrder +} + +export type UserAvgOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type UserMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + email?: Prisma.SortOrder + name?: Prisma.SortOrder + gender?: Prisma.SortOrder + birth?: Prisma.SortOrder + address?: Prisma.SortOrder + detailAddress?: Prisma.SortOrder + phoneNumber?: Prisma.SortOrder +} + +export type UserMinOrderByAggregateInput = { + id?: Prisma.SortOrder + email?: Prisma.SortOrder + name?: Prisma.SortOrder + gender?: Prisma.SortOrder + birth?: Prisma.SortOrder + address?: Prisma.SortOrder + detailAddress?: Prisma.SortOrder + phoneNumber?: Prisma.SortOrder +} + +export type UserSumOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type UserScalarRelationFilter = { + is?: Prisma.UserWhereInput + isNot?: Prisma.UserWhereInput +} + +export type StringFieldUpdateOperationsInput = { + set?: string +} + +export type DateTimeFieldUpdateOperationsInput = { + set?: Date | string +} + +export type NullableStringFieldUpdateOperationsInput = { + set?: string | null +} + +export type IntFieldUpdateOperationsInput = { + set?: number + increment?: number + decrement?: number + multiply?: number + divide?: number +} + +export type UserCreateNestedOneWithoutUserFavorCategoriesInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserCreateOrConnectWithoutUserFavorCategoriesInput + connect?: Prisma.UserWhereUniqueInput +} + +export type UserUpdateOneRequiredWithoutUserFavorCategoriesNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserCreateOrConnectWithoutUserFavorCategoriesInput + upsert?: Prisma.UserUpsertWithoutUserFavorCategoriesInput + connect?: Prisma.UserWhereUniqueInput + update?: Prisma.XOR, Prisma.UserUncheckedUpdateWithoutUserFavorCategoriesInput> +} + +export type UserCreateNestedOneWithoutStoreReviewsInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserCreateOrConnectWithoutStoreReviewsInput + connect?: Prisma.UserWhereUniqueInput +} + +export type UserUpdateOneRequiredWithoutStoreReviewsNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserCreateOrConnectWithoutStoreReviewsInput + upsert?: Prisma.UserUpsertWithoutStoreReviewsInput + connect?: Prisma.UserWhereUniqueInput + update?: Prisma.XOR, Prisma.UserUncheckedUpdateWithoutStoreReviewsInput> +} + +export type UserCreateNestedOneWithoutUserMissionsInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserCreateOrConnectWithoutUserMissionsInput + connect?: Prisma.UserWhereUniqueInput +} + +export type UserUpdateOneRequiredWithoutUserMissionsNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserCreateOrConnectWithoutUserMissionsInput + upsert?: Prisma.UserUpsertWithoutUserMissionsInput + connect?: Prisma.UserWhereUniqueInput + update?: Prisma.XOR, Prisma.UserUncheckedUpdateWithoutUserMissionsInput> +} + +export type UserCreateWithoutUserFavorCategoriesInput = { + email: string + name: string + gender: string + birth: Date | string + address: string + detailAddress?: string | null + phoneNumber: string + storeReviews?: Prisma.UserStoreReviewCreateNestedManyWithoutUserInput + userMissions?: Prisma.UserMissionCreateNestedManyWithoutUserInput +} + +export type UserUncheckedCreateWithoutUserFavorCategoriesInput = { + id?: number + email: string + name: string + gender: string + birth: Date | string + address: string + detailAddress?: string | null + phoneNumber: string + storeReviews?: Prisma.UserStoreReviewUncheckedCreateNestedManyWithoutUserInput + userMissions?: Prisma.UserMissionUncheckedCreateNestedManyWithoutUserInput +} + +export type UserCreateOrConnectWithoutUserFavorCategoriesInput = { + where: Prisma.UserWhereUniqueInput + create: Prisma.XOR +} + +export type UserUpsertWithoutUserFavorCategoriesInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.UserWhereInput +} + +export type UserUpdateToOneWithWhereWithoutUserFavorCategoriesInput = { + where?: Prisma.UserWhereInput + data: Prisma.XOR +} + +export type UserUpdateWithoutUserFavorCategoriesInput = { + email?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + gender?: Prisma.StringFieldUpdateOperationsInput | string + birth?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + address?: Prisma.StringFieldUpdateOperationsInput | string + detailAddress?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneNumber?: Prisma.StringFieldUpdateOperationsInput | string + storeReviews?: Prisma.UserStoreReviewUpdateManyWithoutUserNestedInput + userMissions?: Prisma.UserMissionUpdateManyWithoutUserNestedInput +} + +export type UserUncheckedUpdateWithoutUserFavorCategoriesInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + email?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + gender?: Prisma.StringFieldUpdateOperationsInput | string + birth?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + address?: Prisma.StringFieldUpdateOperationsInput | string + detailAddress?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneNumber?: Prisma.StringFieldUpdateOperationsInput | string + storeReviews?: Prisma.UserStoreReviewUncheckedUpdateManyWithoutUserNestedInput + userMissions?: Prisma.UserMissionUncheckedUpdateManyWithoutUserNestedInput +} + +export type UserCreateWithoutStoreReviewsInput = { + email: string + name: string + gender: string + birth: Date | string + address: string + detailAddress?: string | null + phoneNumber: string + userFavorCategories?: Prisma.UserFavorCategoryCreateNestedManyWithoutUserInput + userMissions?: Prisma.UserMissionCreateNestedManyWithoutUserInput +} + +export type UserUncheckedCreateWithoutStoreReviewsInput = { + id?: number + email: string + name: string + gender: string + birth: Date | string + address: string + detailAddress?: string | null + phoneNumber: string + userFavorCategories?: Prisma.UserFavorCategoryUncheckedCreateNestedManyWithoutUserInput + userMissions?: Prisma.UserMissionUncheckedCreateNestedManyWithoutUserInput +} + +export type UserCreateOrConnectWithoutStoreReviewsInput = { + where: Prisma.UserWhereUniqueInput + create: Prisma.XOR +} + +export type UserUpsertWithoutStoreReviewsInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.UserWhereInput +} + +export type UserUpdateToOneWithWhereWithoutStoreReviewsInput = { + where?: Prisma.UserWhereInput + data: Prisma.XOR +} + +export type UserUpdateWithoutStoreReviewsInput = { + email?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + gender?: Prisma.StringFieldUpdateOperationsInput | string + birth?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + address?: Prisma.StringFieldUpdateOperationsInput | string + detailAddress?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneNumber?: Prisma.StringFieldUpdateOperationsInput | string + userFavorCategories?: Prisma.UserFavorCategoryUpdateManyWithoutUserNestedInput + userMissions?: Prisma.UserMissionUpdateManyWithoutUserNestedInput +} + +export type UserUncheckedUpdateWithoutStoreReviewsInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + email?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + gender?: Prisma.StringFieldUpdateOperationsInput | string + birth?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + address?: Prisma.StringFieldUpdateOperationsInput | string + detailAddress?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneNumber?: Prisma.StringFieldUpdateOperationsInput | string + userFavorCategories?: Prisma.UserFavorCategoryUncheckedUpdateManyWithoutUserNestedInput + userMissions?: Prisma.UserMissionUncheckedUpdateManyWithoutUserNestedInput +} + +export type UserCreateWithoutUserMissionsInput = { + email: string + name: string + gender: string + birth: Date | string + address: string + detailAddress?: string | null + phoneNumber: string + userFavorCategories?: Prisma.UserFavorCategoryCreateNestedManyWithoutUserInput + storeReviews?: Prisma.UserStoreReviewCreateNestedManyWithoutUserInput +} + +export type UserUncheckedCreateWithoutUserMissionsInput = { + id?: number + email: string + name: string + gender: string + birth: Date | string + address: string + detailAddress?: string | null + phoneNumber: string + userFavorCategories?: Prisma.UserFavorCategoryUncheckedCreateNestedManyWithoutUserInput + storeReviews?: Prisma.UserStoreReviewUncheckedCreateNestedManyWithoutUserInput +} + +export type UserCreateOrConnectWithoutUserMissionsInput = { + where: Prisma.UserWhereUniqueInput + create: Prisma.XOR +} + +export type UserUpsertWithoutUserMissionsInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.UserWhereInput +} + +export type UserUpdateToOneWithWhereWithoutUserMissionsInput = { + where?: Prisma.UserWhereInput + data: Prisma.XOR +} + +export type UserUpdateWithoutUserMissionsInput = { + email?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + gender?: Prisma.StringFieldUpdateOperationsInput | string + birth?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + address?: Prisma.StringFieldUpdateOperationsInput | string + detailAddress?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneNumber?: Prisma.StringFieldUpdateOperationsInput | string + userFavorCategories?: Prisma.UserFavorCategoryUpdateManyWithoutUserNestedInput + storeReviews?: Prisma.UserStoreReviewUpdateManyWithoutUserNestedInput +} + +export type UserUncheckedUpdateWithoutUserMissionsInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + email?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + gender?: Prisma.StringFieldUpdateOperationsInput | string + birth?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + address?: Prisma.StringFieldUpdateOperationsInput | string + detailAddress?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneNumber?: Prisma.StringFieldUpdateOperationsInput | string + userFavorCategories?: Prisma.UserFavorCategoryUncheckedUpdateManyWithoutUserNestedInput + storeReviews?: Prisma.UserStoreReviewUncheckedUpdateManyWithoutUserNestedInput +} + + +/** + * Count Type UserCountOutputType + */ + +export type UserCountOutputType = { + userFavorCategories: number + storeReviews: number + userMissions: number +} + +export type UserCountOutputTypeSelect = { + userFavorCategories?: boolean | UserCountOutputTypeCountUserFavorCategoriesArgs + storeReviews?: boolean | UserCountOutputTypeCountStoreReviewsArgs + userMissions?: boolean | UserCountOutputTypeCountUserMissionsArgs +} + +/** + * UserCountOutputType without action + */ +export type UserCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the UserCountOutputType + */ + select?: Prisma.UserCountOutputTypeSelect | null +} + +/** + * UserCountOutputType without action + */ +export type UserCountOutputTypeCountUserFavorCategoriesArgs = { + where?: Prisma.UserFavorCategoryWhereInput +} + +/** + * UserCountOutputType without action + */ +export type UserCountOutputTypeCountStoreReviewsArgs = { + where?: Prisma.UserStoreReviewWhereInput +} + +/** + * UserCountOutputType without action + */ +export type UserCountOutputTypeCountUserMissionsArgs = { + where?: Prisma.UserMissionWhereInput +} + + +export type UserSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + email?: boolean + name?: boolean + gender?: boolean + birth?: boolean + address?: boolean + detailAddress?: boolean + phoneNumber?: boolean + userFavorCategories?: boolean | Prisma.User$userFavorCategoriesArgs + storeReviews?: boolean | Prisma.User$storeReviewsArgs + userMissions?: boolean | Prisma.User$userMissionsArgs + _count?: boolean | Prisma.UserCountOutputTypeDefaultArgs +}, ExtArgs["result"]["user"]> + + + +export type UserSelectScalar = { + id?: boolean + email?: boolean + name?: boolean + gender?: boolean + birth?: boolean + address?: boolean + detailAddress?: boolean + phoneNumber?: boolean +} + +export type UserOmit = runtime.Types.Extensions.GetOmit<"id" | "email" | "name" | "gender" | "birth" | "address" | "detailAddress" | "phoneNumber", ExtArgs["result"]["user"]> +export type UserInclude = { + userFavorCategories?: boolean | Prisma.User$userFavorCategoriesArgs + storeReviews?: boolean | Prisma.User$storeReviewsArgs + userMissions?: boolean | Prisma.User$userMissionsArgs + _count?: boolean | Prisma.UserCountOutputTypeDefaultArgs +} + +export type $UserPayload = { + name: "User" + objects: { + userFavorCategories: Prisma.$UserFavorCategoryPayload[] + storeReviews: Prisma.$UserStoreReviewPayload[] + userMissions: Prisma.$UserMissionPayload[] + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + email: string + name: string + gender: string + birth: Date + address: string + detailAddress: string | null + phoneNumber: string + }, 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" + userFavorCategories = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + storeReviews = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + userMissions = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): 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 email: Prisma.FieldRef<"User", 'String'> + readonly name: Prisma.FieldRef<"User", 'String'> + readonly gender: Prisma.FieldRef<"User", 'String'> + readonly birth: Prisma.FieldRef<"User", 'DateTime'> + readonly address: Prisma.FieldRef<"User", 'String'> + readonly detailAddress: Prisma.FieldRef<"User", 'String'> + readonly phoneNumber: Prisma.FieldRef<"User", 'String'> +} + + +// 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 + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | 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 + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | 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 + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | 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 + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | 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 + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | 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 + 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 + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | 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 + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | 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 + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | 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 + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | 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.userFavorCategories + */ +export type User$userFavorCategoriesArgs = { + /** + * Select specific fields to fetch from the UserFavorCategory + */ + select?: Prisma.UserFavorCategorySelect | null + /** + * Omit specific fields from the UserFavorCategory + */ + omit?: Prisma.UserFavorCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserFavorCategoryInclude | null + where?: Prisma.UserFavorCategoryWhereInput + orderBy?: Prisma.UserFavorCategoryOrderByWithRelationInput | Prisma.UserFavorCategoryOrderByWithRelationInput[] + cursor?: Prisma.UserFavorCategoryWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.UserFavorCategoryScalarFieldEnum | Prisma.UserFavorCategoryScalarFieldEnum[] +} + +/** + * User.storeReviews + */ +export type User$storeReviewsArgs = { + /** + * Select specific fields to fetch from the UserStoreReview + */ + select?: Prisma.UserStoreReviewSelect | null + /** + * Omit specific fields from the UserStoreReview + */ + omit?: Prisma.UserStoreReviewOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserStoreReviewInclude | null + where?: Prisma.UserStoreReviewWhereInput + orderBy?: Prisma.UserStoreReviewOrderByWithRelationInput | Prisma.UserStoreReviewOrderByWithRelationInput[] + cursor?: Prisma.UserStoreReviewWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.UserStoreReviewScalarFieldEnum | Prisma.UserStoreReviewScalarFieldEnum[] +} + +/** + * User.userMissions + */ +export type User$userMissionsArgs = { + /** + * Select specific fields to fetch from the UserMission + */ + select?: Prisma.UserMissionSelect | null + /** + * Omit specific fields from the UserMission + */ + omit?: Prisma.UserMissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserMissionInclude | null + where?: Prisma.UserMissionWhereInput + orderBy?: Prisma.UserMissionOrderByWithRelationInput | Prisma.UserMissionOrderByWithRelationInput[] + cursor?: Prisma.UserMissionWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.UserMissionScalarFieldEnum | Prisma.UserMissionScalarFieldEnum[] +} + +/** + * 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 + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null +} diff --git a/generated/prisma/models/UserFavorCategory.js b/generated/prisma/models/UserFavorCategory.js new file mode 100644 index 0000000..75674b9 --- /dev/null +++ b/generated/prisma/models/UserFavorCategory.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=UserFavorCategory.js.map \ No newline at end of file diff --git a/generated/prisma/models/UserFavorCategory.js.map b/generated/prisma/models/UserFavorCategory.js.map new file mode 100644 index 0000000..db789aa --- /dev/null +++ b/generated/prisma/models/UserFavorCategory.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UserFavorCategory.js","sourceRoot":"","sources":["../../../../src/generated/prisma/models/UserFavorCategory.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/generated/prisma/models/UserFavorCategory.ts b/generated/prisma/models/UserFavorCategory.ts new file mode 100644 index 0000000..ff41623 --- /dev/null +++ b/generated/prisma/models/UserFavorCategory.ts @@ -0,0 +1,1299 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `UserFavorCategory` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/library" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * Model UserFavorCategory + * + */ +export type UserFavorCategoryModel = runtime.Types.Result.DefaultSelection + +export type AggregateUserFavorCategory = { + _count: UserFavorCategoryCountAggregateOutputType | null + _avg: UserFavorCategoryAvgAggregateOutputType | null + _sum: UserFavorCategorySumAggregateOutputType | null + _min: UserFavorCategoryMinAggregateOutputType | null + _max: UserFavorCategoryMaxAggregateOutputType | null +} + +export type UserFavorCategoryAvgAggregateOutputType = { + id: number | null + userId: number | null + foodCategoryId: number | null +} + +export type UserFavorCategorySumAggregateOutputType = { + id: number | null + userId: number | null + foodCategoryId: number | null +} + +export type UserFavorCategoryMinAggregateOutputType = { + id: number | null + userId: number | null + foodCategoryId: number | null +} + +export type UserFavorCategoryMaxAggregateOutputType = { + id: number | null + userId: number | null + foodCategoryId: number | null +} + +export type UserFavorCategoryCountAggregateOutputType = { + id: number + userId: number + foodCategoryId: number + _all: number +} + + +export type UserFavorCategoryAvgAggregateInputType = { + id?: true + userId?: true + foodCategoryId?: true +} + +export type UserFavorCategorySumAggregateInputType = { + id?: true + userId?: true + foodCategoryId?: true +} + +export type UserFavorCategoryMinAggregateInputType = { + id?: true + userId?: true + foodCategoryId?: true +} + +export type UserFavorCategoryMaxAggregateInputType = { + id?: true + userId?: true + foodCategoryId?: true +} + +export type UserFavorCategoryCountAggregateInputType = { + id?: true + userId?: true + foodCategoryId?: true + _all?: true +} + +export type UserFavorCategoryAggregateArgs = { + /** + * Filter which UserFavorCategory to aggregate. + */ + where?: Prisma.UserFavorCategoryWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of UserFavorCategories to fetch. + */ + orderBy?: Prisma.UserFavorCategoryOrderByWithRelationInput | Prisma.UserFavorCategoryOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.UserFavorCategoryWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` UserFavorCategories 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` UserFavorCategories. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned UserFavorCategories + **/ + _count?: true | UserFavorCategoryCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: UserFavorCategoryAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: UserFavorCategorySumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: UserFavorCategoryMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: UserFavorCategoryMaxAggregateInputType +} + +export type GetUserFavorCategoryAggregateType = { + [P in keyof T & keyof AggregateUserFavorCategory]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type UserFavorCategoryGroupByArgs = { + where?: Prisma.UserFavorCategoryWhereInput + orderBy?: Prisma.UserFavorCategoryOrderByWithAggregationInput | Prisma.UserFavorCategoryOrderByWithAggregationInput[] + by: Prisma.UserFavorCategoryScalarFieldEnum[] | Prisma.UserFavorCategoryScalarFieldEnum + having?: Prisma.UserFavorCategoryScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: UserFavorCategoryCountAggregateInputType | true + _avg?: UserFavorCategoryAvgAggregateInputType + _sum?: UserFavorCategorySumAggregateInputType + _min?: UserFavorCategoryMinAggregateInputType + _max?: UserFavorCategoryMaxAggregateInputType +} + +export type UserFavorCategoryGroupByOutputType = { + id: number + userId: number + foodCategoryId: number + _count: UserFavorCategoryCountAggregateOutputType | null + _avg: UserFavorCategoryAvgAggregateOutputType | null + _sum: UserFavorCategorySumAggregateOutputType | null + _min: UserFavorCategoryMinAggregateOutputType | null + _max: UserFavorCategoryMaxAggregateOutputType | null +} + +type GetUserFavorCategoryGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof UserFavorCategoryGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type UserFavorCategoryWhereInput = { + AND?: Prisma.UserFavorCategoryWhereInput | Prisma.UserFavorCategoryWhereInput[] + OR?: Prisma.UserFavorCategoryWhereInput[] + NOT?: Prisma.UserFavorCategoryWhereInput | Prisma.UserFavorCategoryWhereInput[] + id?: Prisma.IntFilter<"UserFavorCategory"> | number + userId?: Prisma.IntFilter<"UserFavorCategory"> | number + foodCategoryId?: Prisma.IntFilter<"UserFavorCategory"> | number + user?: Prisma.XOR + foodCategory?: Prisma.XOR +} + +export type UserFavorCategoryOrderByWithRelationInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + foodCategoryId?: Prisma.SortOrder + user?: Prisma.UserOrderByWithRelationInput + foodCategory?: Prisma.FoodCategoryOrderByWithRelationInput +} + +export type UserFavorCategoryWhereUniqueInput = Prisma.AtLeast<{ + id?: number + AND?: Prisma.UserFavorCategoryWhereInput | Prisma.UserFavorCategoryWhereInput[] + OR?: Prisma.UserFavorCategoryWhereInput[] + NOT?: Prisma.UserFavorCategoryWhereInput | Prisma.UserFavorCategoryWhereInput[] + userId?: Prisma.IntFilter<"UserFavorCategory"> | number + foodCategoryId?: Prisma.IntFilter<"UserFavorCategory"> | number + user?: Prisma.XOR + foodCategory?: Prisma.XOR +}, "id"> + +export type UserFavorCategoryOrderByWithAggregationInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + foodCategoryId?: Prisma.SortOrder + _count?: Prisma.UserFavorCategoryCountOrderByAggregateInput + _avg?: Prisma.UserFavorCategoryAvgOrderByAggregateInput + _max?: Prisma.UserFavorCategoryMaxOrderByAggregateInput + _min?: Prisma.UserFavorCategoryMinOrderByAggregateInput + _sum?: Prisma.UserFavorCategorySumOrderByAggregateInput +} + +export type UserFavorCategoryScalarWhereWithAggregatesInput = { + AND?: Prisma.UserFavorCategoryScalarWhereWithAggregatesInput | Prisma.UserFavorCategoryScalarWhereWithAggregatesInput[] + OR?: Prisma.UserFavorCategoryScalarWhereWithAggregatesInput[] + NOT?: Prisma.UserFavorCategoryScalarWhereWithAggregatesInput | Prisma.UserFavorCategoryScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"UserFavorCategory"> | number + userId?: Prisma.IntWithAggregatesFilter<"UserFavorCategory"> | number + foodCategoryId?: Prisma.IntWithAggregatesFilter<"UserFavorCategory"> | number +} + +export type UserFavorCategoryCreateInput = { + user: Prisma.UserCreateNestedOneWithoutUserFavorCategoriesInput + foodCategory: Prisma.FoodCategoryCreateNestedOneWithoutUserFavorCategoriesInput +} + +export type UserFavorCategoryUncheckedCreateInput = { + id?: number + userId: number + foodCategoryId: number +} + +export type UserFavorCategoryUpdateInput = { + user?: Prisma.UserUpdateOneRequiredWithoutUserFavorCategoriesNestedInput + foodCategory?: Prisma.FoodCategoryUpdateOneRequiredWithoutUserFavorCategoriesNestedInput +} + +export type UserFavorCategoryUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + userId?: Prisma.IntFieldUpdateOperationsInput | number + foodCategoryId?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type UserFavorCategoryCreateManyInput = { + id?: number + userId: number + foodCategoryId: number +} + +export type UserFavorCategoryUpdateManyMutationInput = { + +} + +export type UserFavorCategoryUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + userId?: Prisma.IntFieldUpdateOperationsInput | number + foodCategoryId?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type UserFavorCategoryListRelationFilter = { + every?: Prisma.UserFavorCategoryWhereInput + some?: Prisma.UserFavorCategoryWhereInput + none?: Prisma.UserFavorCategoryWhereInput +} + +export type UserFavorCategoryOrderByRelationAggregateInput = { + _count?: Prisma.SortOrder +} + +export type UserFavorCategoryCountOrderByAggregateInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + foodCategoryId?: Prisma.SortOrder +} + +export type UserFavorCategoryAvgOrderByAggregateInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + foodCategoryId?: Prisma.SortOrder +} + +export type UserFavorCategoryMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + foodCategoryId?: Prisma.SortOrder +} + +export type UserFavorCategoryMinOrderByAggregateInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + foodCategoryId?: Prisma.SortOrder +} + +export type UserFavorCategorySumOrderByAggregateInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + foodCategoryId?: Prisma.SortOrder +} + +export type UserFavorCategoryCreateNestedManyWithoutUserInput = { + create?: Prisma.XOR | Prisma.UserFavorCategoryCreateWithoutUserInput[] | Prisma.UserFavorCategoryUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.UserFavorCategoryCreateOrConnectWithoutUserInput | Prisma.UserFavorCategoryCreateOrConnectWithoutUserInput[] + createMany?: Prisma.UserFavorCategoryCreateManyUserInputEnvelope + connect?: Prisma.UserFavorCategoryWhereUniqueInput | Prisma.UserFavorCategoryWhereUniqueInput[] +} + +export type UserFavorCategoryUncheckedCreateNestedManyWithoutUserInput = { + create?: Prisma.XOR | Prisma.UserFavorCategoryCreateWithoutUserInput[] | Prisma.UserFavorCategoryUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.UserFavorCategoryCreateOrConnectWithoutUserInput | Prisma.UserFavorCategoryCreateOrConnectWithoutUserInput[] + createMany?: Prisma.UserFavorCategoryCreateManyUserInputEnvelope + connect?: Prisma.UserFavorCategoryWhereUniqueInput | Prisma.UserFavorCategoryWhereUniqueInput[] +} + +export type UserFavorCategoryUpdateManyWithoutUserNestedInput = { + create?: Prisma.XOR | Prisma.UserFavorCategoryCreateWithoutUserInput[] | Prisma.UserFavorCategoryUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.UserFavorCategoryCreateOrConnectWithoutUserInput | Prisma.UserFavorCategoryCreateOrConnectWithoutUserInput[] + upsert?: Prisma.UserFavorCategoryUpsertWithWhereUniqueWithoutUserInput | Prisma.UserFavorCategoryUpsertWithWhereUniqueWithoutUserInput[] + createMany?: Prisma.UserFavorCategoryCreateManyUserInputEnvelope + set?: Prisma.UserFavorCategoryWhereUniqueInput | Prisma.UserFavorCategoryWhereUniqueInput[] + disconnect?: Prisma.UserFavorCategoryWhereUniqueInput | Prisma.UserFavorCategoryWhereUniqueInput[] + delete?: Prisma.UserFavorCategoryWhereUniqueInput | Prisma.UserFavorCategoryWhereUniqueInput[] + connect?: Prisma.UserFavorCategoryWhereUniqueInput | Prisma.UserFavorCategoryWhereUniqueInput[] + update?: Prisma.UserFavorCategoryUpdateWithWhereUniqueWithoutUserInput | Prisma.UserFavorCategoryUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: Prisma.UserFavorCategoryUpdateManyWithWhereWithoutUserInput | Prisma.UserFavorCategoryUpdateManyWithWhereWithoutUserInput[] + deleteMany?: Prisma.UserFavorCategoryScalarWhereInput | Prisma.UserFavorCategoryScalarWhereInput[] +} + +export type UserFavorCategoryUncheckedUpdateManyWithoutUserNestedInput = { + create?: Prisma.XOR | Prisma.UserFavorCategoryCreateWithoutUserInput[] | Prisma.UserFavorCategoryUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.UserFavorCategoryCreateOrConnectWithoutUserInput | Prisma.UserFavorCategoryCreateOrConnectWithoutUserInput[] + upsert?: Prisma.UserFavorCategoryUpsertWithWhereUniqueWithoutUserInput | Prisma.UserFavorCategoryUpsertWithWhereUniqueWithoutUserInput[] + createMany?: Prisma.UserFavorCategoryCreateManyUserInputEnvelope + set?: Prisma.UserFavorCategoryWhereUniqueInput | Prisma.UserFavorCategoryWhereUniqueInput[] + disconnect?: Prisma.UserFavorCategoryWhereUniqueInput | Prisma.UserFavorCategoryWhereUniqueInput[] + delete?: Prisma.UserFavorCategoryWhereUniqueInput | Prisma.UserFavorCategoryWhereUniqueInput[] + connect?: Prisma.UserFavorCategoryWhereUniqueInput | Prisma.UserFavorCategoryWhereUniqueInput[] + update?: Prisma.UserFavorCategoryUpdateWithWhereUniqueWithoutUserInput | Prisma.UserFavorCategoryUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: Prisma.UserFavorCategoryUpdateManyWithWhereWithoutUserInput | Prisma.UserFavorCategoryUpdateManyWithWhereWithoutUserInput[] + deleteMany?: Prisma.UserFavorCategoryScalarWhereInput | Prisma.UserFavorCategoryScalarWhereInput[] +} + +export type UserFavorCategoryCreateNestedManyWithoutFoodCategoryInput = { + create?: Prisma.XOR | Prisma.UserFavorCategoryCreateWithoutFoodCategoryInput[] | Prisma.UserFavorCategoryUncheckedCreateWithoutFoodCategoryInput[] + connectOrCreate?: Prisma.UserFavorCategoryCreateOrConnectWithoutFoodCategoryInput | Prisma.UserFavorCategoryCreateOrConnectWithoutFoodCategoryInput[] + createMany?: Prisma.UserFavorCategoryCreateManyFoodCategoryInputEnvelope + connect?: Prisma.UserFavorCategoryWhereUniqueInput | Prisma.UserFavorCategoryWhereUniqueInput[] +} + +export type UserFavorCategoryUncheckedCreateNestedManyWithoutFoodCategoryInput = { + create?: Prisma.XOR | Prisma.UserFavorCategoryCreateWithoutFoodCategoryInput[] | Prisma.UserFavorCategoryUncheckedCreateWithoutFoodCategoryInput[] + connectOrCreate?: Prisma.UserFavorCategoryCreateOrConnectWithoutFoodCategoryInput | Prisma.UserFavorCategoryCreateOrConnectWithoutFoodCategoryInput[] + createMany?: Prisma.UserFavorCategoryCreateManyFoodCategoryInputEnvelope + connect?: Prisma.UserFavorCategoryWhereUniqueInput | Prisma.UserFavorCategoryWhereUniqueInput[] +} + +export type UserFavorCategoryUpdateManyWithoutFoodCategoryNestedInput = { + create?: Prisma.XOR | Prisma.UserFavorCategoryCreateWithoutFoodCategoryInput[] | Prisma.UserFavorCategoryUncheckedCreateWithoutFoodCategoryInput[] + connectOrCreate?: Prisma.UserFavorCategoryCreateOrConnectWithoutFoodCategoryInput | Prisma.UserFavorCategoryCreateOrConnectWithoutFoodCategoryInput[] + upsert?: Prisma.UserFavorCategoryUpsertWithWhereUniqueWithoutFoodCategoryInput | Prisma.UserFavorCategoryUpsertWithWhereUniqueWithoutFoodCategoryInput[] + createMany?: Prisma.UserFavorCategoryCreateManyFoodCategoryInputEnvelope + set?: Prisma.UserFavorCategoryWhereUniqueInput | Prisma.UserFavorCategoryWhereUniqueInput[] + disconnect?: Prisma.UserFavorCategoryWhereUniqueInput | Prisma.UserFavorCategoryWhereUniqueInput[] + delete?: Prisma.UserFavorCategoryWhereUniqueInput | Prisma.UserFavorCategoryWhereUniqueInput[] + connect?: Prisma.UserFavorCategoryWhereUniqueInput | Prisma.UserFavorCategoryWhereUniqueInput[] + update?: Prisma.UserFavorCategoryUpdateWithWhereUniqueWithoutFoodCategoryInput | Prisma.UserFavorCategoryUpdateWithWhereUniqueWithoutFoodCategoryInput[] + updateMany?: Prisma.UserFavorCategoryUpdateManyWithWhereWithoutFoodCategoryInput | Prisma.UserFavorCategoryUpdateManyWithWhereWithoutFoodCategoryInput[] + deleteMany?: Prisma.UserFavorCategoryScalarWhereInput | Prisma.UserFavorCategoryScalarWhereInput[] +} + +export type UserFavorCategoryUncheckedUpdateManyWithoutFoodCategoryNestedInput = { + create?: Prisma.XOR | Prisma.UserFavorCategoryCreateWithoutFoodCategoryInput[] | Prisma.UserFavorCategoryUncheckedCreateWithoutFoodCategoryInput[] + connectOrCreate?: Prisma.UserFavorCategoryCreateOrConnectWithoutFoodCategoryInput | Prisma.UserFavorCategoryCreateOrConnectWithoutFoodCategoryInput[] + upsert?: Prisma.UserFavorCategoryUpsertWithWhereUniqueWithoutFoodCategoryInput | Prisma.UserFavorCategoryUpsertWithWhereUniqueWithoutFoodCategoryInput[] + createMany?: Prisma.UserFavorCategoryCreateManyFoodCategoryInputEnvelope + set?: Prisma.UserFavorCategoryWhereUniqueInput | Prisma.UserFavorCategoryWhereUniqueInput[] + disconnect?: Prisma.UserFavorCategoryWhereUniqueInput | Prisma.UserFavorCategoryWhereUniqueInput[] + delete?: Prisma.UserFavorCategoryWhereUniqueInput | Prisma.UserFavorCategoryWhereUniqueInput[] + connect?: Prisma.UserFavorCategoryWhereUniqueInput | Prisma.UserFavorCategoryWhereUniqueInput[] + update?: Prisma.UserFavorCategoryUpdateWithWhereUniqueWithoutFoodCategoryInput | Prisma.UserFavorCategoryUpdateWithWhereUniqueWithoutFoodCategoryInput[] + updateMany?: Prisma.UserFavorCategoryUpdateManyWithWhereWithoutFoodCategoryInput | Prisma.UserFavorCategoryUpdateManyWithWhereWithoutFoodCategoryInput[] + deleteMany?: Prisma.UserFavorCategoryScalarWhereInput | Prisma.UserFavorCategoryScalarWhereInput[] +} + +export type UserFavorCategoryCreateWithoutUserInput = { + foodCategory: Prisma.FoodCategoryCreateNestedOneWithoutUserFavorCategoriesInput +} + +export type UserFavorCategoryUncheckedCreateWithoutUserInput = { + id?: number + foodCategoryId: number +} + +export type UserFavorCategoryCreateOrConnectWithoutUserInput = { + where: Prisma.UserFavorCategoryWhereUniqueInput + create: Prisma.XOR +} + +export type UserFavorCategoryCreateManyUserInputEnvelope = { + data: Prisma.UserFavorCategoryCreateManyUserInput | Prisma.UserFavorCategoryCreateManyUserInput[] + skipDuplicates?: boolean +} + +export type UserFavorCategoryUpsertWithWhereUniqueWithoutUserInput = { + where: Prisma.UserFavorCategoryWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type UserFavorCategoryUpdateWithWhereUniqueWithoutUserInput = { + where: Prisma.UserFavorCategoryWhereUniqueInput + data: Prisma.XOR +} + +export type UserFavorCategoryUpdateManyWithWhereWithoutUserInput = { + where: Prisma.UserFavorCategoryScalarWhereInput + data: Prisma.XOR +} + +export type UserFavorCategoryScalarWhereInput = { + AND?: Prisma.UserFavorCategoryScalarWhereInput | Prisma.UserFavorCategoryScalarWhereInput[] + OR?: Prisma.UserFavorCategoryScalarWhereInput[] + NOT?: Prisma.UserFavorCategoryScalarWhereInput | Prisma.UserFavorCategoryScalarWhereInput[] + id?: Prisma.IntFilter<"UserFavorCategory"> | number + userId?: Prisma.IntFilter<"UserFavorCategory"> | number + foodCategoryId?: Prisma.IntFilter<"UserFavorCategory"> | number +} + +export type UserFavorCategoryCreateWithoutFoodCategoryInput = { + user: Prisma.UserCreateNestedOneWithoutUserFavorCategoriesInput +} + +export type UserFavorCategoryUncheckedCreateWithoutFoodCategoryInput = { + id?: number + userId: number +} + +export type UserFavorCategoryCreateOrConnectWithoutFoodCategoryInput = { + where: Prisma.UserFavorCategoryWhereUniqueInput + create: Prisma.XOR +} + +export type UserFavorCategoryCreateManyFoodCategoryInputEnvelope = { + data: Prisma.UserFavorCategoryCreateManyFoodCategoryInput | Prisma.UserFavorCategoryCreateManyFoodCategoryInput[] + skipDuplicates?: boolean +} + +export type UserFavorCategoryUpsertWithWhereUniqueWithoutFoodCategoryInput = { + where: Prisma.UserFavorCategoryWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type UserFavorCategoryUpdateWithWhereUniqueWithoutFoodCategoryInput = { + where: Prisma.UserFavorCategoryWhereUniqueInput + data: Prisma.XOR +} + +export type UserFavorCategoryUpdateManyWithWhereWithoutFoodCategoryInput = { + where: Prisma.UserFavorCategoryScalarWhereInput + data: Prisma.XOR +} + +export type UserFavorCategoryCreateManyUserInput = { + id?: number + foodCategoryId: number +} + +export type UserFavorCategoryUpdateWithoutUserInput = { + foodCategory?: Prisma.FoodCategoryUpdateOneRequiredWithoutUserFavorCategoriesNestedInput +} + +export type UserFavorCategoryUncheckedUpdateWithoutUserInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + foodCategoryId?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type UserFavorCategoryUncheckedUpdateManyWithoutUserInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + foodCategoryId?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type UserFavorCategoryCreateManyFoodCategoryInput = { + id?: number + userId: number +} + +export type UserFavorCategoryUpdateWithoutFoodCategoryInput = { + user?: Prisma.UserUpdateOneRequiredWithoutUserFavorCategoriesNestedInput +} + +export type UserFavorCategoryUncheckedUpdateWithoutFoodCategoryInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + userId?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type UserFavorCategoryUncheckedUpdateManyWithoutFoodCategoryInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + userId?: Prisma.IntFieldUpdateOperationsInput | number +} + + + +export type UserFavorCategorySelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + userId?: boolean + foodCategoryId?: boolean + user?: boolean | Prisma.UserDefaultArgs + foodCategory?: boolean | Prisma.FoodCategoryDefaultArgs +}, ExtArgs["result"]["userFavorCategory"]> + + + +export type UserFavorCategorySelectScalar = { + id?: boolean + userId?: boolean + foodCategoryId?: boolean +} + +export type UserFavorCategoryOmit = runtime.Types.Extensions.GetOmit<"id" | "userId" | "foodCategoryId", ExtArgs["result"]["userFavorCategory"]> +export type UserFavorCategoryInclude = { + user?: boolean | Prisma.UserDefaultArgs + foodCategory?: boolean | Prisma.FoodCategoryDefaultArgs +} + +export type $UserFavorCategoryPayload = { + name: "UserFavorCategory" + objects: { + user: Prisma.$UserPayload + foodCategory: Prisma.$FoodCategoryPayload + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + userId: number + foodCategoryId: number + }, ExtArgs["result"]["userFavorCategory"]> + composites: {} +} + +export type UserFavorCategoryGetPayload = runtime.Types.Result.GetResult + +export type UserFavorCategoryCountArgs = + Omit & { + select?: UserFavorCategoryCountAggregateInputType | true + } + +export interface UserFavorCategoryDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['UserFavorCategory'], meta: { name: 'UserFavorCategory' } } + /** + * Find zero or one UserFavorCategory that matches the filter. + * @param {UserFavorCategoryFindUniqueArgs} args - Arguments to find a UserFavorCategory + * @example + * // Get one UserFavorCategory + * const userFavorCategory = await prisma.userFavorCategory.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__UserFavorCategoryClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one UserFavorCategory that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {UserFavorCategoryFindUniqueOrThrowArgs} args - Arguments to find a UserFavorCategory + * @example + * // Get one UserFavorCategory + * const userFavorCategory = await prisma.userFavorCategory.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__UserFavorCategoryClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first UserFavorCategory 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 {UserFavorCategoryFindFirstArgs} args - Arguments to find a UserFavorCategory + * @example + * // Get one UserFavorCategory + * const userFavorCategory = await prisma.userFavorCategory.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__UserFavorCategoryClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first UserFavorCategory 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 {UserFavorCategoryFindFirstOrThrowArgs} args - Arguments to find a UserFavorCategory + * @example + * // Get one UserFavorCategory + * const userFavorCategory = await prisma.userFavorCategory.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__UserFavorCategoryClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more UserFavorCategories 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 {UserFavorCategoryFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all UserFavorCategories + * const userFavorCategories = await prisma.userFavorCategory.findMany() + * + * // Get first 10 UserFavorCategories + * const userFavorCategories = await prisma.userFavorCategory.findMany({ take: 10 }) + * + * // Only select the `id` + * const userFavorCategoryWithIdOnly = await prisma.userFavorCategory.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a UserFavorCategory. + * @param {UserFavorCategoryCreateArgs} args - Arguments to create a UserFavorCategory. + * @example + * // Create one UserFavorCategory + * const UserFavorCategory = await prisma.userFavorCategory.create({ + * data: { + * // ... data to create a UserFavorCategory + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__UserFavorCategoryClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many UserFavorCategories. + * @param {UserFavorCategoryCreateManyArgs} args - Arguments to create many UserFavorCategories. + * @example + * // Create many UserFavorCategories + * const userFavorCategory = await prisma.userFavorCategory.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a UserFavorCategory. + * @param {UserFavorCategoryDeleteArgs} args - Arguments to delete one UserFavorCategory. + * @example + * // Delete one UserFavorCategory + * const UserFavorCategory = await prisma.userFavorCategory.delete({ + * where: { + * // ... filter to delete one UserFavorCategory + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__UserFavorCategoryClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one UserFavorCategory. + * @param {UserFavorCategoryUpdateArgs} args - Arguments to update one UserFavorCategory. + * @example + * // Update one UserFavorCategory + * const userFavorCategory = await prisma.userFavorCategory.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__UserFavorCategoryClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more UserFavorCategories. + * @param {UserFavorCategoryDeleteManyArgs} args - Arguments to filter UserFavorCategories to delete. + * @example + * // Delete a few UserFavorCategories + * const { count } = await prisma.userFavorCategory.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more UserFavorCategories. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserFavorCategoryUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many UserFavorCategories + * const userFavorCategory = await prisma.userFavorCategory.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one UserFavorCategory. + * @param {UserFavorCategoryUpsertArgs} args - Arguments to update or create a UserFavorCategory. + * @example + * // Update or create a UserFavorCategory + * const userFavorCategory = await prisma.userFavorCategory.upsert({ + * create: { + * // ... data to create a UserFavorCategory + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the UserFavorCategory we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__UserFavorCategoryClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of UserFavorCategories. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserFavorCategoryCountArgs} args - Arguments to filter UserFavorCategories to count. + * @example + * // Count the number of UserFavorCategories + * const count = await prisma.userFavorCategory.count({ + * where: { + * // ... the filter for the UserFavorCategories 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 UserFavorCategory. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserFavorCategoryAggregateArgs} 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 UserFavorCategory. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserFavorCategoryGroupByArgs} 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 UserFavorCategoryGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: UserFavorCategoryGroupByArgs['orderBy'] } + : { orderBy?: UserFavorCategoryGroupByArgs['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 ? GetUserFavorCategoryGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the UserFavorCategory model + */ +readonly fields: UserFavorCategoryFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for UserFavorCategory. + * 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__UserFavorCategoryClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + user = {}>(args?: Prisma.Subset>): Prisma.Prisma__UserClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + foodCategory = {}>(args?: Prisma.Subset>): Prisma.Prisma__FoodCategoryClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): 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 UserFavorCategory model + */ +export interface UserFavorCategoryFieldRefs { + readonly id: Prisma.FieldRef<"UserFavorCategory", 'Int'> + readonly userId: Prisma.FieldRef<"UserFavorCategory", 'Int'> + readonly foodCategoryId: Prisma.FieldRef<"UserFavorCategory", 'Int'> +} + + +// Custom InputTypes +/** + * UserFavorCategory findUnique + */ +export type UserFavorCategoryFindUniqueArgs = { + /** + * Select specific fields to fetch from the UserFavorCategory + */ + select?: Prisma.UserFavorCategorySelect | null + /** + * Omit specific fields from the UserFavorCategory + */ + omit?: Prisma.UserFavorCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserFavorCategoryInclude | null + /** + * Filter, which UserFavorCategory to fetch. + */ + where: Prisma.UserFavorCategoryWhereUniqueInput +} + +/** + * UserFavorCategory findUniqueOrThrow + */ +export type UserFavorCategoryFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the UserFavorCategory + */ + select?: Prisma.UserFavorCategorySelect | null + /** + * Omit specific fields from the UserFavorCategory + */ + omit?: Prisma.UserFavorCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserFavorCategoryInclude | null + /** + * Filter, which UserFavorCategory to fetch. + */ + where: Prisma.UserFavorCategoryWhereUniqueInput +} + +/** + * UserFavorCategory findFirst + */ +export type UserFavorCategoryFindFirstArgs = { + /** + * Select specific fields to fetch from the UserFavorCategory + */ + select?: Prisma.UserFavorCategorySelect | null + /** + * Omit specific fields from the UserFavorCategory + */ + omit?: Prisma.UserFavorCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserFavorCategoryInclude | null + /** + * Filter, which UserFavorCategory to fetch. + */ + where?: Prisma.UserFavorCategoryWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of UserFavorCategories to fetch. + */ + orderBy?: Prisma.UserFavorCategoryOrderByWithRelationInput | Prisma.UserFavorCategoryOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for UserFavorCategories. + */ + cursor?: Prisma.UserFavorCategoryWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` UserFavorCategories 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` UserFavorCategories. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of UserFavorCategories. + */ + distinct?: Prisma.UserFavorCategoryScalarFieldEnum | Prisma.UserFavorCategoryScalarFieldEnum[] +} + +/** + * UserFavorCategory findFirstOrThrow + */ +export type UserFavorCategoryFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the UserFavorCategory + */ + select?: Prisma.UserFavorCategorySelect | null + /** + * Omit specific fields from the UserFavorCategory + */ + omit?: Prisma.UserFavorCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserFavorCategoryInclude | null + /** + * Filter, which UserFavorCategory to fetch. + */ + where?: Prisma.UserFavorCategoryWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of UserFavorCategories to fetch. + */ + orderBy?: Prisma.UserFavorCategoryOrderByWithRelationInput | Prisma.UserFavorCategoryOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for UserFavorCategories. + */ + cursor?: Prisma.UserFavorCategoryWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` UserFavorCategories 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` UserFavorCategories. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of UserFavorCategories. + */ + distinct?: Prisma.UserFavorCategoryScalarFieldEnum | Prisma.UserFavorCategoryScalarFieldEnum[] +} + +/** + * UserFavorCategory findMany + */ +export type UserFavorCategoryFindManyArgs = { + /** + * Select specific fields to fetch from the UserFavorCategory + */ + select?: Prisma.UserFavorCategorySelect | null + /** + * Omit specific fields from the UserFavorCategory + */ + omit?: Prisma.UserFavorCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserFavorCategoryInclude | null + /** + * Filter, which UserFavorCategories to fetch. + */ + where?: Prisma.UserFavorCategoryWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of UserFavorCategories to fetch. + */ + orderBy?: Prisma.UserFavorCategoryOrderByWithRelationInput | Prisma.UserFavorCategoryOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing UserFavorCategories. + */ + cursor?: Prisma.UserFavorCategoryWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` UserFavorCategories 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` UserFavorCategories. + */ + skip?: number + distinct?: Prisma.UserFavorCategoryScalarFieldEnum | Prisma.UserFavorCategoryScalarFieldEnum[] +} + +/** + * UserFavorCategory create + */ +export type UserFavorCategoryCreateArgs = { + /** + * Select specific fields to fetch from the UserFavorCategory + */ + select?: Prisma.UserFavorCategorySelect | null + /** + * Omit specific fields from the UserFavorCategory + */ + omit?: Prisma.UserFavorCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserFavorCategoryInclude | null + /** + * The data needed to create a UserFavorCategory. + */ + data: Prisma.XOR +} + +/** + * UserFavorCategory createMany + */ +export type UserFavorCategoryCreateManyArgs = { + /** + * The data used to create many UserFavorCategories. + */ + data: Prisma.UserFavorCategoryCreateManyInput | Prisma.UserFavorCategoryCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * UserFavorCategory update + */ +export type UserFavorCategoryUpdateArgs = { + /** + * Select specific fields to fetch from the UserFavorCategory + */ + select?: Prisma.UserFavorCategorySelect | null + /** + * Omit specific fields from the UserFavorCategory + */ + omit?: Prisma.UserFavorCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserFavorCategoryInclude | null + /** + * The data needed to update a UserFavorCategory. + */ + data: Prisma.XOR + /** + * Choose, which UserFavorCategory to update. + */ + where: Prisma.UserFavorCategoryWhereUniqueInput +} + +/** + * UserFavorCategory updateMany + */ +export type UserFavorCategoryUpdateManyArgs = { + /** + * The data used to update UserFavorCategories. + */ + data: Prisma.XOR + /** + * Filter which UserFavorCategories to update + */ + where?: Prisma.UserFavorCategoryWhereInput + /** + * Limit how many UserFavorCategories to update. + */ + limit?: number +} + +/** + * UserFavorCategory upsert + */ +export type UserFavorCategoryUpsertArgs = { + /** + * Select specific fields to fetch from the UserFavorCategory + */ + select?: Prisma.UserFavorCategorySelect | null + /** + * Omit specific fields from the UserFavorCategory + */ + omit?: Prisma.UserFavorCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserFavorCategoryInclude | null + /** + * The filter to search for the UserFavorCategory to update in case it exists. + */ + where: Prisma.UserFavorCategoryWhereUniqueInput + /** + * In case the UserFavorCategory found by the `where` argument doesn't exist, create a new UserFavorCategory with this data. + */ + create: Prisma.XOR + /** + * In case the UserFavorCategory was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * UserFavorCategory delete + */ +export type UserFavorCategoryDeleteArgs = { + /** + * Select specific fields to fetch from the UserFavorCategory + */ + select?: Prisma.UserFavorCategorySelect | null + /** + * Omit specific fields from the UserFavorCategory + */ + omit?: Prisma.UserFavorCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserFavorCategoryInclude | null + /** + * Filter which UserFavorCategory to delete. + */ + where: Prisma.UserFavorCategoryWhereUniqueInput +} + +/** + * UserFavorCategory deleteMany + */ +export type UserFavorCategoryDeleteManyArgs = { + /** + * Filter which UserFavorCategories to delete + */ + where?: Prisma.UserFavorCategoryWhereInput + /** + * Limit how many UserFavorCategories to delete. + */ + limit?: number +} + +/** + * UserFavorCategory without action + */ +export type UserFavorCategoryDefaultArgs = { + /** + * Select specific fields to fetch from the UserFavorCategory + */ + select?: Prisma.UserFavorCategorySelect | null + /** + * Omit specific fields from the UserFavorCategory + */ + omit?: Prisma.UserFavorCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserFavorCategoryInclude | null +} diff --git a/generated/prisma/models/UserMission.js b/generated/prisma/models/UserMission.js new file mode 100644 index 0000000..bfb3424 --- /dev/null +++ b/generated/prisma/models/UserMission.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=UserMission.js.map \ No newline at end of file diff --git a/generated/prisma/models/UserMission.js.map b/generated/prisma/models/UserMission.js.map new file mode 100644 index 0000000..d48e3c6 --- /dev/null +++ b/generated/prisma/models/UserMission.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UserMission.js","sourceRoot":"","sources":["../../../../src/generated/prisma/models/UserMission.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/generated/prisma/models/UserMission.ts b/generated/prisma/models/UserMission.ts new file mode 100644 index 0000000..6e857bb --- /dev/null +++ b/generated/prisma/models/UserMission.ts @@ -0,0 +1,1350 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `UserMission` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/library" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * Model UserMission + * + */ +export type UserMissionModel = runtime.Types.Result.DefaultSelection + +export type AggregateUserMission = { + _count: UserMissionCountAggregateOutputType | null + _avg: UserMissionAvgAggregateOutputType | null + _sum: UserMissionSumAggregateOutputType | null + _min: UserMissionMinAggregateOutputType | null + _max: UserMissionMaxAggregateOutputType | null +} + +export type UserMissionAvgAggregateOutputType = { + id: number | null + userId: number | null + missionId: number | null +} + +export type UserMissionSumAggregateOutputType = { + id: number | null + userId: number | null + missionId: number | null +} + +export type UserMissionMinAggregateOutputType = { + id: number | null + userId: number | null + missionId: number | null + status: string | null +} + +export type UserMissionMaxAggregateOutputType = { + id: number | null + userId: number | null + missionId: number | null + status: string | null +} + +export type UserMissionCountAggregateOutputType = { + id: number + userId: number + missionId: number + status: number + _all: number +} + + +export type UserMissionAvgAggregateInputType = { + id?: true + userId?: true + missionId?: true +} + +export type UserMissionSumAggregateInputType = { + id?: true + userId?: true + missionId?: true +} + +export type UserMissionMinAggregateInputType = { + id?: true + userId?: true + missionId?: true + status?: true +} + +export type UserMissionMaxAggregateInputType = { + id?: true + userId?: true + missionId?: true + status?: true +} + +export type UserMissionCountAggregateInputType = { + id?: true + userId?: true + missionId?: true + status?: true + _all?: true +} + +export type UserMissionAggregateArgs = { + /** + * Filter which UserMission to aggregate. + */ + where?: Prisma.UserMissionWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of UserMissions to fetch. + */ + orderBy?: Prisma.UserMissionOrderByWithRelationInput | Prisma.UserMissionOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.UserMissionWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` UserMissions 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` UserMissions. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned UserMissions + **/ + _count?: true | UserMissionCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: UserMissionAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: UserMissionSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: UserMissionMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: UserMissionMaxAggregateInputType +} + +export type GetUserMissionAggregateType = { + [P in keyof T & keyof AggregateUserMission]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type UserMissionGroupByArgs = { + where?: Prisma.UserMissionWhereInput + orderBy?: Prisma.UserMissionOrderByWithAggregationInput | Prisma.UserMissionOrderByWithAggregationInput[] + by: Prisma.UserMissionScalarFieldEnum[] | Prisma.UserMissionScalarFieldEnum + having?: Prisma.UserMissionScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: UserMissionCountAggregateInputType | true + _avg?: UserMissionAvgAggregateInputType + _sum?: UserMissionSumAggregateInputType + _min?: UserMissionMinAggregateInputType + _max?: UserMissionMaxAggregateInputType +} + +export type UserMissionGroupByOutputType = { + id: number + userId: number + missionId: number + status: string + _count: UserMissionCountAggregateOutputType | null + _avg: UserMissionAvgAggregateOutputType | null + _sum: UserMissionSumAggregateOutputType | null + _min: UserMissionMinAggregateOutputType | null + _max: UserMissionMaxAggregateOutputType | null +} + +type GetUserMissionGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof UserMissionGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type UserMissionWhereInput = { + AND?: Prisma.UserMissionWhereInput | Prisma.UserMissionWhereInput[] + OR?: Prisma.UserMissionWhereInput[] + NOT?: Prisma.UserMissionWhereInput | Prisma.UserMissionWhereInput[] + id?: Prisma.IntFilter<"UserMission"> | number + userId?: Prisma.IntFilter<"UserMission"> | number + missionId?: Prisma.IntFilter<"UserMission"> | number + status?: Prisma.StringFilter<"UserMission"> | string + user?: Prisma.XOR + mission?: Prisma.XOR +} + +export type UserMissionOrderByWithRelationInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + missionId?: Prisma.SortOrder + status?: Prisma.SortOrder + user?: Prisma.UserOrderByWithRelationInput + mission?: Prisma.MissionOrderByWithRelationInput + _relevance?: Prisma.UserMissionOrderByRelevanceInput +} + +export type UserMissionWhereUniqueInput = Prisma.AtLeast<{ + id?: number + userId_missionId?: Prisma.UserMissionUserIdMissionIdCompoundUniqueInput + AND?: Prisma.UserMissionWhereInput | Prisma.UserMissionWhereInput[] + OR?: Prisma.UserMissionWhereInput[] + NOT?: Prisma.UserMissionWhereInput | Prisma.UserMissionWhereInput[] + userId?: Prisma.IntFilter<"UserMission"> | number + missionId?: Prisma.IntFilter<"UserMission"> | number + status?: Prisma.StringFilter<"UserMission"> | string + user?: Prisma.XOR + mission?: Prisma.XOR +}, "id" | "userId_missionId"> + +export type UserMissionOrderByWithAggregationInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + missionId?: Prisma.SortOrder + status?: Prisma.SortOrder + _count?: Prisma.UserMissionCountOrderByAggregateInput + _avg?: Prisma.UserMissionAvgOrderByAggregateInput + _max?: Prisma.UserMissionMaxOrderByAggregateInput + _min?: Prisma.UserMissionMinOrderByAggregateInput + _sum?: Prisma.UserMissionSumOrderByAggregateInput +} + +export type UserMissionScalarWhereWithAggregatesInput = { + AND?: Prisma.UserMissionScalarWhereWithAggregatesInput | Prisma.UserMissionScalarWhereWithAggregatesInput[] + OR?: Prisma.UserMissionScalarWhereWithAggregatesInput[] + NOT?: Prisma.UserMissionScalarWhereWithAggregatesInput | Prisma.UserMissionScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"UserMission"> | number + userId?: Prisma.IntWithAggregatesFilter<"UserMission"> | number + missionId?: Prisma.IntWithAggregatesFilter<"UserMission"> | number + status?: Prisma.StringWithAggregatesFilter<"UserMission"> | string +} + +export type UserMissionCreateInput = { + status: string + user: Prisma.UserCreateNestedOneWithoutUserMissionsInput + mission: Prisma.MissionCreateNestedOneWithoutUserMissionsInput +} + +export type UserMissionUncheckedCreateInput = { + id?: number + userId: number + missionId: number + status: string +} + +export type UserMissionUpdateInput = { + status?: Prisma.StringFieldUpdateOperationsInput | string + user?: Prisma.UserUpdateOneRequiredWithoutUserMissionsNestedInput + mission?: Prisma.MissionUpdateOneRequiredWithoutUserMissionsNestedInput +} + +export type UserMissionUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + userId?: Prisma.IntFieldUpdateOperationsInput | number + missionId?: Prisma.IntFieldUpdateOperationsInput | number + status?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type UserMissionCreateManyInput = { + id?: number + userId: number + missionId: number + status: string +} + +export type UserMissionUpdateManyMutationInput = { + status?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type UserMissionUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + userId?: Prisma.IntFieldUpdateOperationsInput | number + missionId?: Prisma.IntFieldUpdateOperationsInput | number + status?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type UserMissionListRelationFilter = { + every?: Prisma.UserMissionWhereInput + some?: Prisma.UserMissionWhereInput + none?: Prisma.UserMissionWhereInput +} + +export type UserMissionOrderByRelationAggregateInput = { + _count?: Prisma.SortOrder +} + +export type UserMissionOrderByRelevanceInput = { + fields: Prisma.UserMissionOrderByRelevanceFieldEnum | Prisma.UserMissionOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type UserMissionUserIdMissionIdCompoundUniqueInput = { + userId: number + missionId: number +} + +export type UserMissionCountOrderByAggregateInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + missionId?: Prisma.SortOrder + status?: Prisma.SortOrder +} + +export type UserMissionAvgOrderByAggregateInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + missionId?: Prisma.SortOrder +} + +export type UserMissionMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + missionId?: Prisma.SortOrder + status?: Prisma.SortOrder +} + +export type UserMissionMinOrderByAggregateInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + missionId?: Prisma.SortOrder + status?: Prisma.SortOrder +} + +export type UserMissionSumOrderByAggregateInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + missionId?: Prisma.SortOrder +} + +export type UserMissionCreateNestedManyWithoutUserInput = { + create?: Prisma.XOR | Prisma.UserMissionCreateWithoutUserInput[] | Prisma.UserMissionUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.UserMissionCreateOrConnectWithoutUserInput | Prisma.UserMissionCreateOrConnectWithoutUserInput[] + createMany?: Prisma.UserMissionCreateManyUserInputEnvelope + connect?: Prisma.UserMissionWhereUniqueInput | Prisma.UserMissionWhereUniqueInput[] +} + +export type UserMissionUncheckedCreateNestedManyWithoutUserInput = { + create?: Prisma.XOR | Prisma.UserMissionCreateWithoutUserInput[] | Prisma.UserMissionUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.UserMissionCreateOrConnectWithoutUserInput | Prisma.UserMissionCreateOrConnectWithoutUserInput[] + createMany?: Prisma.UserMissionCreateManyUserInputEnvelope + connect?: Prisma.UserMissionWhereUniqueInput | Prisma.UserMissionWhereUniqueInput[] +} + +export type UserMissionUpdateManyWithoutUserNestedInput = { + create?: Prisma.XOR | Prisma.UserMissionCreateWithoutUserInput[] | Prisma.UserMissionUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.UserMissionCreateOrConnectWithoutUserInput | Prisma.UserMissionCreateOrConnectWithoutUserInput[] + upsert?: Prisma.UserMissionUpsertWithWhereUniqueWithoutUserInput | Prisma.UserMissionUpsertWithWhereUniqueWithoutUserInput[] + createMany?: Prisma.UserMissionCreateManyUserInputEnvelope + set?: Prisma.UserMissionWhereUniqueInput | Prisma.UserMissionWhereUniqueInput[] + disconnect?: Prisma.UserMissionWhereUniqueInput | Prisma.UserMissionWhereUniqueInput[] + delete?: Prisma.UserMissionWhereUniqueInput | Prisma.UserMissionWhereUniqueInput[] + connect?: Prisma.UserMissionWhereUniqueInput | Prisma.UserMissionWhereUniqueInput[] + update?: Prisma.UserMissionUpdateWithWhereUniqueWithoutUserInput | Prisma.UserMissionUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: Prisma.UserMissionUpdateManyWithWhereWithoutUserInput | Prisma.UserMissionUpdateManyWithWhereWithoutUserInput[] + deleteMany?: Prisma.UserMissionScalarWhereInput | Prisma.UserMissionScalarWhereInput[] +} + +export type UserMissionUncheckedUpdateManyWithoutUserNestedInput = { + create?: Prisma.XOR | Prisma.UserMissionCreateWithoutUserInput[] | Prisma.UserMissionUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.UserMissionCreateOrConnectWithoutUserInput | Prisma.UserMissionCreateOrConnectWithoutUserInput[] + upsert?: Prisma.UserMissionUpsertWithWhereUniqueWithoutUserInput | Prisma.UserMissionUpsertWithWhereUniqueWithoutUserInput[] + createMany?: Prisma.UserMissionCreateManyUserInputEnvelope + set?: Prisma.UserMissionWhereUniqueInput | Prisma.UserMissionWhereUniqueInput[] + disconnect?: Prisma.UserMissionWhereUniqueInput | Prisma.UserMissionWhereUniqueInput[] + delete?: Prisma.UserMissionWhereUniqueInput | Prisma.UserMissionWhereUniqueInput[] + connect?: Prisma.UserMissionWhereUniqueInput | Prisma.UserMissionWhereUniqueInput[] + update?: Prisma.UserMissionUpdateWithWhereUniqueWithoutUserInput | Prisma.UserMissionUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: Prisma.UserMissionUpdateManyWithWhereWithoutUserInput | Prisma.UserMissionUpdateManyWithWhereWithoutUserInput[] + deleteMany?: Prisma.UserMissionScalarWhereInput | Prisma.UserMissionScalarWhereInput[] +} + +export type UserMissionCreateNestedManyWithoutMissionInput = { + create?: Prisma.XOR | Prisma.UserMissionCreateWithoutMissionInput[] | Prisma.UserMissionUncheckedCreateWithoutMissionInput[] + connectOrCreate?: Prisma.UserMissionCreateOrConnectWithoutMissionInput | Prisma.UserMissionCreateOrConnectWithoutMissionInput[] + createMany?: Prisma.UserMissionCreateManyMissionInputEnvelope + connect?: Prisma.UserMissionWhereUniqueInput | Prisma.UserMissionWhereUniqueInput[] +} + +export type UserMissionUncheckedCreateNestedManyWithoutMissionInput = { + create?: Prisma.XOR | Prisma.UserMissionCreateWithoutMissionInput[] | Prisma.UserMissionUncheckedCreateWithoutMissionInput[] + connectOrCreate?: Prisma.UserMissionCreateOrConnectWithoutMissionInput | Prisma.UserMissionCreateOrConnectWithoutMissionInput[] + createMany?: Prisma.UserMissionCreateManyMissionInputEnvelope + connect?: Prisma.UserMissionWhereUniqueInput | Prisma.UserMissionWhereUniqueInput[] +} + +export type UserMissionUpdateManyWithoutMissionNestedInput = { + create?: Prisma.XOR | Prisma.UserMissionCreateWithoutMissionInput[] | Prisma.UserMissionUncheckedCreateWithoutMissionInput[] + connectOrCreate?: Prisma.UserMissionCreateOrConnectWithoutMissionInput | Prisma.UserMissionCreateOrConnectWithoutMissionInput[] + upsert?: Prisma.UserMissionUpsertWithWhereUniqueWithoutMissionInput | Prisma.UserMissionUpsertWithWhereUniqueWithoutMissionInput[] + createMany?: Prisma.UserMissionCreateManyMissionInputEnvelope + set?: Prisma.UserMissionWhereUniqueInput | Prisma.UserMissionWhereUniqueInput[] + disconnect?: Prisma.UserMissionWhereUniqueInput | Prisma.UserMissionWhereUniqueInput[] + delete?: Prisma.UserMissionWhereUniqueInput | Prisma.UserMissionWhereUniqueInput[] + connect?: Prisma.UserMissionWhereUniqueInput | Prisma.UserMissionWhereUniqueInput[] + update?: Prisma.UserMissionUpdateWithWhereUniqueWithoutMissionInput | Prisma.UserMissionUpdateWithWhereUniqueWithoutMissionInput[] + updateMany?: Prisma.UserMissionUpdateManyWithWhereWithoutMissionInput | Prisma.UserMissionUpdateManyWithWhereWithoutMissionInput[] + deleteMany?: Prisma.UserMissionScalarWhereInput | Prisma.UserMissionScalarWhereInput[] +} + +export type UserMissionUncheckedUpdateManyWithoutMissionNestedInput = { + create?: Prisma.XOR | Prisma.UserMissionCreateWithoutMissionInput[] | Prisma.UserMissionUncheckedCreateWithoutMissionInput[] + connectOrCreate?: Prisma.UserMissionCreateOrConnectWithoutMissionInput | Prisma.UserMissionCreateOrConnectWithoutMissionInput[] + upsert?: Prisma.UserMissionUpsertWithWhereUniqueWithoutMissionInput | Prisma.UserMissionUpsertWithWhereUniqueWithoutMissionInput[] + createMany?: Prisma.UserMissionCreateManyMissionInputEnvelope + set?: Prisma.UserMissionWhereUniqueInput | Prisma.UserMissionWhereUniqueInput[] + disconnect?: Prisma.UserMissionWhereUniqueInput | Prisma.UserMissionWhereUniqueInput[] + delete?: Prisma.UserMissionWhereUniqueInput | Prisma.UserMissionWhereUniqueInput[] + connect?: Prisma.UserMissionWhereUniqueInput | Prisma.UserMissionWhereUniqueInput[] + update?: Prisma.UserMissionUpdateWithWhereUniqueWithoutMissionInput | Prisma.UserMissionUpdateWithWhereUniqueWithoutMissionInput[] + updateMany?: Prisma.UserMissionUpdateManyWithWhereWithoutMissionInput | Prisma.UserMissionUpdateManyWithWhereWithoutMissionInput[] + deleteMany?: Prisma.UserMissionScalarWhereInput | Prisma.UserMissionScalarWhereInput[] +} + +export type UserMissionCreateWithoutUserInput = { + status: string + mission: Prisma.MissionCreateNestedOneWithoutUserMissionsInput +} + +export type UserMissionUncheckedCreateWithoutUserInput = { + id?: number + missionId: number + status: string +} + +export type UserMissionCreateOrConnectWithoutUserInput = { + where: Prisma.UserMissionWhereUniqueInput + create: Prisma.XOR +} + +export type UserMissionCreateManyUserInputEnvelope = { + data: Prisma.UserMissionCreateManyUserInput | Prisma.UserMissionCreateManyUserInput[] + skipDuplicates?: boolean +} + +export type UserMissionUpsertWithWhereUniqueWithoutUserInput = { + where: Prisma.UserMissionWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type UserMissionUpdateWithWhereUniqueWithoutUserInput = { + where: Prisma.UserMissionWhereUniqueInput + data: Prisma.XOR +} + +export type UserMissionUpdateManyWithWhereWithoutUserInput = { + where: Prisma.UserMissionScalarWhereInput + data: Prisma.XOR +} + +export type UserMissionScalarWhereInput = { + AND?: Prisma.UserMissionScalarWhereInput | Prisma.UserMissionScalarWhereInput[] + OR?: Prisma.UserMissionScalarWhereInput[] + NOT?: Prisma.UserMissionScalarWhereInput | Prisma.UserMissionScalarWhereInput[] + id?: Prisma.IntFilter<"UserMission"> | number + userId?: Prisma.IntFilter<"UserMission"> | number + missionId?: Prisma.IntFilter<"UserMission"> | number + status?: Prisma.StringFilter<"UserMission"> | string +} + +export type UserMissionCreateWithoutMissionInput = { + status: string + user: Prisma.UserCreateNestedOneWithoutUserMissionsInput +} + +export type UserMissionUncheckedCreateWithoutMissionInput = { + id?: number + userId: number + status: string +} + +export type UserMissionCreateOrConnectWithoutMissionInput = { + where: Prisma.UserMissionWhereUniqueInput + create: Prisma.XOR +} + +export type UserMissionCreateManyMissionInputEnvelope = { + data: Prisma.UserMissionCreateManyMissionInput | Prisma.UserMissionCreateManyMissionInput[] + skipDuplicates?: boolean +} + +export type UserMissionUpsertWithWhereUniqueWithoutMissionInput = { + where: Prisma.UserMissionWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type UserMissionUpdateWithWhereUniqueWithoutMissionInput = { + where: Prisma.UserMissionWhereUniqueInput + data: Prisma.XOR +} + +export type UserMissionUpdateManyWithWhereWithoutMissionInput = { + where: Prisma.UserMissionScalarWhereInput + data: Prisma.XOR +} + +export type UserMissionCreateManyUserInput = { + id?: number + missionId: number + status: string +} + +export type UserMissionUpdateWithoutUserInput = { + status?: Prisma.StringFieldUpdateOperationsInput | string + mission?: Prisma.MissionUpdateOneRequiredWithoutUserMissionsNestedInput +} + +export type UserMissionUncheckedUpdateWithoutUserInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + missionId?: Prisma.IntFieldUpdateOperationsInput | number + status?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type UserMissionUncheckedUpdateManyWithoutUserInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + missionId?: Prisma.IntFieldUpdateOperationsInput | number + status?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type UserMissionCreateManyMissionInput = { + id?: number + userId: number + status: string +} + +export type UserMissionUpdateWithoutMissionInput = { + status?: Prisma.StringFieldUpdateOperationsInput | string + user?: Prisma.UserUpdateOneRequiredWithoutUserMissionsNestedInput +} + +export type UserMissionUncheckedUpdateWithoutMissionInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + userId?: Prisma.IntFieldUpdateOperationsInput | number + status?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type UserMissionUncheckedUpdateManyWithoutMissionInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + userId?: Prisma.IntFieldUpdateOperationsInput | number + status?: Prisma.StringFieldUpdateOperationsInput | string +} + + + +export type UserMissionSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + userId?: boolean + missionId?: boolean + status?: boolean + user?: boolean | Prisma.UserDefaultArgs + mission?: boolean | Prisma.MissionDefaultArgs +}, ExtArgs["result"]["userMission"]> + + + +export type UserMissionSelectScalar = { + id?: boolean + userId?: boolean + missionId?: boolean + status?: boolean +} + +export type UserMissionOmit = runtime.Types.Extensions.GetOmit<"id" | "userId" | "missionId" | "status", ExtArgs["result"]["userMission"]> +export type UserMissionInclude = { + user?: boolean | Prisma.UserDefaultArgs + mission?: boolean | Prisma.MissionDefaultArgs +} + +export type $UserMissionPayload = { + name: "UserMission" + objects: { + user: Prisma.$UserPayload + mission: Prisma.$MissionPayload + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + userId: number + missionId: number + status: string + }, ExtArgs["result"]["userMission"]> + composites: {} +} + +export type UserMissionGetPayload = runtime.Types.Result.GetResult + +export type UserMissionCountArgs = + Omit & { + select?: UserMissionCountAggregateInputType | true + } + +export interface UserMissionDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['UserMission'], meta: { name: 'UserMission' } } + /** + * Find zero or one UserMission that matches the filter. + * @param {UserMissionFindUniqueArgs} args - Arguments to find a UserMission + * @example + * // Get one UserMission + * const userMission = await prisma.userMission.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__UserMissionClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one UserMission that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {UserMissionFindUniqueOrThrowArgs} args - Arguments to find a UserMission + * @example + * // Get one UserMission + * const userMission = await prisma.userMission.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__UserMissionClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first UserMission 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 {UserMissionFindFirstArgs} args - Arguments to find a UserMission + * @example + * // Get one UserMission + * const userMission = await prisma.userMission.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__UserMissionClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first UserMission 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 {UserMissionFindFirstOrThrowArgs} args - Arguments to find a UserMission + * @example + * // Get one UserMission + * const userMission = await prisma.userMission.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__UserMissionClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more UserMissions 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 {UserMissionFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all UserMissions + * const userMissions = await prisma.userMission.findMany() + * + * // Get first 10 UserMissions + * const userMissions = await prisma.userMission.findMany({ take: 10 }) + * + * // Only select the `id` + * const userMissionWithIdOnly = await prisma.userMission.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a UserMission. + * @param {UserMissionCreateArgs} args - Arguments to create a UserMission. + * @example + * // Create one UserMission + * const UserMission = await prisma.userMission.create({ + * data: { + * // ... data to create a UserMission + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__UserMissionClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many UserMissions. + * @param {UserMissionCreateManyArgs} args - Arguments to create many UserMissions. + * @example + * // Create many UserMissions + * const userMission = await prisma.userMission.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a UserMission. + * @param {UserMissionDeleteArgs} args - Arguments to delete one UserMission. + * @example + * // Delete one UserMission + * const UserMission = await prisma.userMission.delete({ + * where: { + * // ... filter to delete one UserMission + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__UserMissionClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one UserMission. + * @param {UserMissionUpdateArgs} args - Arguments to update one UserMission. + * @example + * // Update one UserMission + * const userMission = await prisma.userMission.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__UserMissionClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more UserMissions. + * @param {UserMissionDeleteManyArgs} args - Arguments to filter UserMissions to delete. + * @example + * // Delete a few UserMissions + * const { count } = await prisma.userMission.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more UserMissions. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserMissionUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many UserMissions + * const userMission = await prisma.userMission.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one UserMission. + * @param {UserMissionUpsertArgs} args - Arguments to update or create a UserMission. + * @example + * // Update or create a UserMission + * const userMission = await prisma.userMission.upsert({ + * create: { + * // ... data to create a UserMission + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the UserMission we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__UserMissionClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of UserMissions. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserMissionCountArgs} args - Arguments to filter UserMissions to count. + * @example + * // Count the number of UserMissions + * const count = await prisma.userMission.count({ + * where: { + * // ... the filter for the UserMissions 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 UserMission. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserMissionAggregateArgs} 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 UserMission. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserMissionGroupByArgs} 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 UserMissionGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: UserMissionGroupByArgs['orderBy'] } + : { orderBy?: UserMissionGroupByArgs['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 ? GetUserMissionGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the UserMission model + */ +readonly fields: UserMissionFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for UserMission. + * 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__UserMissionClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + user = {}>(args?: Prisma.Subset>): Prisma.Prisma__UserClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + mission = {}>(args?: Prisma.Subset>): Prisma.Prisma__MissionClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): 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 UserMission model + */ +export interface UserMissionFieldRefs { + readonly id: Prisma.FieldRef<"UserMission", 'Int'> + readonly userId: Prisma.FieldRef<"UserMission", 'Int'> + readonly missionId: Prisma.FieldRef<"UserMission", 'Int'> + readonly status: Prisma.FieldRef<"UserMission", 'String'> +} + + +// Custom InputTypes +/** + * UserMission findUnique + */ +export type UserMissionFindUniqueArgs = { + /** + * Select specific fields to fetch from the UserMission + */ + select?: Prisma.UserMissionSelect | null + /** + * Omit specific fields from the UserMission + */ + omit?: Prisma.UserMissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserMissionInclude | null + /** + * Filter, which UserMission to fetch. + */ + where: Prisma.UserMissionWhereUniqueInput +} + +/** + * UserMission findUniqueOrThrow + */ +export type UserMissionFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the UserMission + */ + select?: Prisma.UserMissionSelect | null + /** + * Omit specific fields from the UserMission + */ + omit?: Prisma.UserMissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserMissionInclude | null + /** + * Filter, which UserMission to fetch. + */ + where: Prisma.UserMissionWhereUniqueInput +} + +/** + * UserMission findFirst + */ +export type UserMissionFindFirstArgs = { + /** + * Select specific fields to fetch from the UserMission + */ + select?: Prisma.UserMissionSelect | null + /** + * Omit specific fields from the UserMission + */ + omit?: Prisma.UserMissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserMissionInclude | null + /** + * Filter, which UserMission to fetch. + */ + where?: Prisma.UserMissionWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of UserMissions to fetch. + */ + orderBy?: Prisma.UserMissionOrderByWithRelationInput | Prisma.UserMissionOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for UserMissions. + */ + cursor?: Prisma.UserMissionWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` UserMissions 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` UserMissions. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of UserMissions. + */ + distinct?: Prisma.UserMissionScalarFieldEnum | Prisma.UserMissionScalarFieldEnum[] +} + +/** + * UserMission findFirstOrThrow + */ +export type UserMissionFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the UserMission + */ + select?: Prisma.UserMissionSelect | null + /** + * Omit specific fields from the UserMission + */ + omit?: Prisma.UserMissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserMissionInclude | null + /** + * Filter, which UserMission to fetch. + */ + where?: Prisma.UserMissionWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of UserMissions to fetch. + */ + orderBy?: Prisma.UserMissionOrderByWithRelationInput | Prisma.UserMissionOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for UserMissions. + */ + cursor?: Prisma.UserMissionWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` UserMissions 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` UserMissions. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of UserMissions. + */ + distinct?: Prisma.UserMissionScalarFieldEnum | Prisma.UserMissionScalarFieldEnum[] +} + +/** + * UserMission findMany + */ +export type UserMissionFindManyArgs = { + /** + * Select specific fields to fetch from the UserMission + */ + select?: Prisma.UserMissionSelect | null + /** + * Omit specific fields from the UserMission + */ + omit?: Prisma.UserMissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserMissionInclude | null + /** + * Filter, which UserMissions to fetch. + */ + where?: Prisma.UserMissionWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of UserMissions to fetch. + */ + orderBy?: Prisma.UserMissionOrderByWithRelationInput | Prisma.UserMissionOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing UserMissions. + */ + cursor?: Prisma.UserMissionWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` UserMissions 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` UserMissions. + */ + skip?: number + distinct?: Prisma.UserMissionScalarFieldEnum | Prisma.UserMissionScalarFieldEnum[] +} + +/** + * UserMission create + */ +export type UserMissionCreateArgs = { + /** + * Select specific fields to fetch from the UserMission + */ + select?: Prisma.UserMissionSelect | null + /** + * Omit specific fields from the UserMission + */ + omit?: Prisma.UserMissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserMissionInclude | null + /** + * The data needed to create a UserMission. + */ + data: Prisma.XOR +} + +/** + * UserMission createMany + */ +export type UserMissionCreateManyArgs = { + /** + * The data used to create many UserMissions. + */ + data: Prisma.UserMissionCreateManyInput | Prisma.UserMissionCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * UserMission update + */ +export type UserMissionUpdateArgs = { + /** + * Select specific fields to fetch from the UserMission + */ + select?: Prisma.UserMissionSelect | null + /** + * Omit specific fields from the UserMission + */ + omit?: Prisma.UserMissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserMissionInclude | null + /** + * The data needed to update a UserMission. + */ + data: Prisma.XOR + /** + * Choose, which UserMission to update. + */ + where: Prisma.UserMissionWhereUniqueInput +} + +/** + * UserMission updateMany + */ +export type UserMissionUpdateManyArgs = { + /** + * The data used to update UserMissions. + */ + data: Prisma.XOR + /** + * Filter which UserMissions to update + */ + where?: Prisma.UserMissionWhereInput + /** + * Limit how many UserMissions to update. + */ + limit?: number +} + +/** + * UserMission upsert + */ +export type UserMissionUpsertArgs = { + /** + * Select specific fields to fetch from the UserMission + */ + select?: Prisma.UserMissionSelect | null + /** + * Omit specific fields from the UserMission + */ + omit?: Prisma.UserMissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserMissionInclude | null + /** + * The filter to search for the UserMission to update in case it exists. + */ + where: Prisma.UserMissionWhereUniqueInput + /** + * In case the UserMission found by the `where` argument doesn't exist, create a new UserMission with this data. + */ + create: Prisma.XOR + /** + * In case the UserMission was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * UserMission delete + */ +export type UserMissionDeleteArgs = { + /** + * Select specific fields to fetch from the UserMission + */ + select?: Prisma.UserMissionSelect | null + /** + * Omit specific fields from the UserMission + */ + omit?: Prisma.UserMissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserMissionInclude | null + /** + * Filter which UserMission to delete. + */ + where: Prisma.UserMissionWhereUniqueInput +} + +/** + * UserMission deleteMany + */ +export type UserMissionDeleteManyArgs = { + /** + * Filter which UserMissions to delete + */ + where?: Prisma.UserMissionWhereInput + /** + * Limit how many UserMissions to delete. + */ + limit?: number +} + +/** + * UserMission without action + */ +export type UserMissionDefaultArgs = { + /** + * Select specific fields to fetch from the UserMission + */ + select?: Prisma.UserMissionSelect | null + /** + * Omit specific fields from the UserMission + */ + omit?: Prisma.UserMissionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserMissionInclude | null +} diff --git a/generated/prisma/models/UserStoreReview.js b/generated/prisma/models/UserStoreReview.js new file mode 100644 index 0000000..7b8690e --- /dev/null +++ b/generated/prisma/models/UserStoreReview.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=UserStoreReview.js.map \ No newline at end of file diff --git a/generated/prisma/models/UserStoreReview.js.map b/generated/prisma/models/UserStoreReview.js.map new file mode 100644 index 0000000..7f62f29 --- /dev/null +++ b/generated/prisma/models/UserStoreReview.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UserStoreReview.js","sourceRoot":"","sources":["../../../../src/generated/prisma/models/UserStoreReview.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/generated/prisma/models/UserStoreReview.ts b/generated/prisma/models/UserStoreReview.ts new file mode 100644 index 0000000..8722281 --- /dev/null +++ b/generated/prisma/models/UserStoreReview.ts @@ -0,0 +1,1436 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `UserStoreReview` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/library" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * Model UserStoreReview + * + */ +export type UserStoreReviewModel = runtime.Types.Result.DefaultSelection + +export type AggregateUserStoreReview = { + _count: UserStoreReviewCountAggregateOutputType | null + _avg: UserStoreReviewAvgAggregateOutputType | null + _sum: UserStoreReviewSumAggregateOutputType | null + _min: UserStoreReviewMinAggregateOutputType | null + _max: UserStoreReviewMaxAggregateOutputType | null +} + +export type UserStoreReviewAvgAggregateOutputType = { + id: number | null + rating: number | null + storeId: number | null + userId: number | null +} + +export type UserStoreReviewSumAggregateOutputType = { + id: number | null + rating: number | null + storeId: number | null + userId: number | null +} + +export type UserStoreReviewMinAggregateOutputType = { + id: number | null + content: string | null + rating: number | null + createdAt: Date | null + storeId: number | null + userId: number | null +} + +export type UserStoreReviewMaxAggregateOutputType = { + id: number | null + content: string | null + rating: number | null + createdAt: Date | null + storeId: number | null + userId: number | null +} + +export type UserStoreReviewCountAggregateOutputType = { + id: number + content: number + rating: number + createdAt: number + storeId: number + userId: number + _all: number +} + + +export type UserStoreReviewAvgAggregateInputType = { + id?: true + rating?: true + storeId?: true + userId?: true +} + +export type UserStoreReviewSumAggregateInputType = { + id?: true + rating?: true + storeId?: true + userId?: true +} + +export type UserStoreReviewMinAggregateInputType = { + id?: true + content?: true + rating?: true + createdAt?: true + storeId?: true + userId?: true +} + +export type UserStoreReviewMaxAggregateInputType = { + id?: true + content?: true + rating?: true + createdAt?: true + storeId?: true + userId?: true +} + +export type UserStoreReviewCountAggregateInputType = { + id?: true + content?: true + rating?: true + createdAt?: true + storeId?: true + userId?: true + _all?: true +} + +export type UserStoreReviewAggregateArgs = { + /** + * Filter which UserStoreReview to aggregate. + */ + where?: Prisma.UserStoreReviewWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of UserStoreReviews to fetch. + */ + orderBy?: Prisma.UserStoreReviewOrderByWithRelationInput | Prisma.UserStoreReviewOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.UserStoreReviewWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` UserStoreReviews 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` UserStoreReviews. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned UserStoreReviews + **/ + _count?: true | UserStoreReviewCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: UserStoreReviewAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: UserStoreReviewSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: UserStoreReviewMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: UserStoreReviewMaxAggregateInputType +} + +export type GetUserStoreReviewAggregateType = { + [P in keyof T & keyof AggregateUserStoreReview]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type UserStoreReviewGroupByArgs = { + where?: Prisma.UserStoreReviewWhereInput + orderBy?: Prisma.UserStoreReviewOrderByWithAggregationInput | Prisma.UserStoreReviewOrderByWithAggregationInput[] + by: Prisma.UserStoreReviewScalarFieldEnum[] | Prisma.UserStoreReviewScalarFieldEnum + having?: Prisma.UserStoreReviewScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: UserStoreReviewCountAggregateInputType | true + _avg?: UserStoreReviewAvgAggregateInputType + _sum?: UserStoreReviewSumAggregateInputType + _min?: UserStoreReviewMinAggregateInputType + _max?: UserStoreReviewMaxAggregateInputType +} + +export type UserStoreReviewGroupByOutputType = { + id: number + content: string + rating: number + createdAt: Date + storeId: number + userId: number + _count: UserStoreReviewCountAggregateOutputType | null + _avg: UserStoreReviewAvgAggregateOutputType | null + _sum: UserStoreReviewSumAggregateOutputType | null + _min: UserStoreReviewMinAggregateOutputType | null + _max: UserStoreReviewMaxAggregateOutputType | null +} + +type GetUserStoreReviewGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof UserStoreReviewGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type UserStoreReviewWhereInput = { + AND?: Prisma.UserStoreReviewWhereInput | Prisma.UserStoreReviewWhereInput[] + OR?: Prisma.UserStoreReviewWhereInput[] + NOT?: Prisma.UserStoreReviewWhereInput | Prisma.UserStoreReviewWhereInput[] + id?: Prisma.IntFilter<"UserStoreReview"> | number + content?: Prisma.StringFilter<"UserStoreReview"> | string + rating?: Prisma.FloatFilter<"UserStoreReview"> | number + createdAt?: Prisma.DateTimeFilter<"UserStoreReview"> | Date | string + storeId?: Prisma.IntFilter<"UserStoreReview"> | number + userId?: Prisma.IntFilter<"UserStoreReview"> | number + store?: Prisma.XOR + user?: Prisma.XOR +} + +export type UserStoreReviewOrderByWithRelationInput = { + id?: Prisma.SortOrder + content?: Prisma.SortOrder + rating?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + storeId?: Prisma.SortOrder + userId?: Prisma.SortOrder + store?: Prisma.StoreOrderByWithRelationInput + user?: Prisma.UserOrderByWithRelationInput + _relevance?: Prisma.UserStoreReviewOrderByRelevanceInput +} + +export type UserStoreReviewWhereUniqueInput = Prisma.AtLeast<{ + id?: number + AND?: Prisma.UserStoreReviewWhereInput | Prisma.UserStoreReviewWhereInput[] + OR?: Prisma.UserStoreReviewWhereInput[] + NOT?: Prisma.UserStoreReviewWhereInput | Prisma.UserStoreReviewWhereInput[] + content?: Prisma.StringFilter<"UserStoreReview"> | string + rating?: Prisma.FloatFilter<"UserStoreReview"> | number + createdAt?: Prisma.DateTimeFilter<"UserStoreReview"> | Date | string + storeId?: Prisma.IntFilter<"UserStoreReview"> | number + userId?: Prisma.IntFilter<"UserStoreReview"> | number + store?: Prisma.XOR + user?: Prisma.XOR +}, "id"> + +export type UserStoreReviewOrderByWithAggregationInput = { + id?: Prisma.SortOrder + content?: Prisma.SortOrder + rating?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + storeId?: Prisma.SortOrder + userId?: Prisma.SortOrder + _count?: Prisma.UserStoreReviewCountOrderByAggregateInput + _avg?: Prisma.UserStoreReviewAvgOrderByAggregateInput + _max?: Prisma.UserStoreReviewMaxOrderByAggregateInput + _min?: Prisma.UserStoreReviewMinOrderByAggregateInput + _sum?: Prisma.UserStoreReviewSumOrderByAggregateInput +} + +export type UserStoreReviewScalarWhereWithAggregatesInput = { + AND?: Prisma.UserStoreReviewScalarWhereWithAggregatesInput | Prisma.UserStoreReviewScalarWhereWithAggregatesInput[] + OR?: Prisma.UserStoreReviewScalarWhereWithAggregatesInput[] + NOT?: Prisma.UserStoreReviewScalarWhereWithAggregatesInput | Prisma.UserStoreReviewScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"UserStoreReview"> | number + content?: Prisma.StringWithAggregatesFilter<"UserStoreReview"> | string + rating?: Prisma.FloatWithAggregatesFilter<"UserStoreReview"> | number + createdAt?: Prisma.DateTimeWithAggregatesFilter<"UserStoreReview"> | Date | string + storeId?: Prisma.IntWithAggregatesFilter<"UserStoreReview"> | number + userId?: Prisma.IntWithAggregatesFilter<"UserStoreReview"> | number +} + +export type UserStoreReviewCreateInput = { + content: string + rating: number + createdAt?: Date | string + store: Prisma.StoreCreateNestedOneWithoutReviewsInput + user: Prisma.UserCreateNestedOneWithoutStoreReviewsInput +} + +export type UserStoreReviewUncheckedCreateInput = { + id?: number + content: string + rating: number + createdAt?: Date | string + storeId: number + userId: number +} + +export type UserStoreReviewUpdateInput = { + content?: Prisma.StringFieldUpdateOperationsInput | string + rating?: Prisma.FloatFieldUpdateOperationsInput | number + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + store?: Prisma.StoreUpdateOneRequiredWithoutReviewsNestedInput + user?: Prisma.UserUpdateOneRequiredWithoutStoreReviewsNestedInput +} + +export type UserStoreReviewUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + content?: Prisma.StringFieldUpdateOperationsInput | string + rating?: Prisma.FloatFieldUpdateOperationsInput | number + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + storeId?: Prisma.IntFieldUpdateOperationsInput | number + userId?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type UserStoreReviewCreateManyInput = { + id?: number + content: string + rating: number + createdAt?: Date | string + storeId: number + userId: number +} + +export type UserStoreReviewUpdateManyMutationInput = { + content?: Prisma.StringFieldUpdateOperationsInput | string + rating?: Prisma.FloatFieldUpdateOperationsInput | number + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type UserStoreReviewUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + content?: Prisma.StringFieldUpdateOperationsInput | string + rating?: Prisma.FloatFieldUpdateOperationsInput | number + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + storeId?: Prisma.IntFieldUpdateOperationsInput | number + userId?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type UserStoreReviewListRelationFilter = { + every?: Prisma.UserStoreReviewWhereInput + some?: Prisma.UserStoreReviewWhereInput + none?: Prisma.UserStoreReviewWhereInput +} + +export type UserStoreReviewOrderByRelationAggregateInput = { + _count?: Prisma.SortOrder +} + +export type UserStoreReviewOrderByRelevanceInput = { + fields: Prisma.UserStoreReviewOrderByRelevanceFieldEnum | Prisma.UserStoreReviewOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type UserStoreReviewCountOrderByAggregateInput = { + id?: Prisma.SortOrder + content?: Prisma.SortOrder + rating?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + storeId?: Prisma.SortOrder + userId?: Prisma.SortOrder +} + +export type UserStoreReviewAvgOrderByAggregateInput = { + id?: Prisma.SortOrder + rating?: Prisma.SortOrder + storeId?: Prisma.SortOrder + userId?: Prisma.SortOrder +} + +export type UserStoreReviewMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + content?: Prisma.SortOrder + rating?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + storeId?: Prisma.SortOrder + userId?: Prisma.SortOrder +} + +export type UserStoreReviewMinOrderByAggregateInput = { + id?: Prisma.SortOrder + content?: Prisma.SortOrder + rating?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + storeId?: Prisma.SortOrder + userId?: Prisma.SortOrder +} + +export type UserStoreReviewSumOrderByAggregateInput = { + id?: Prisma.SortOrder + rating?: Prisma.SortOrder + storeId?: Prisma.SortOrder + userId?: Prisma.SortOrder +} + +export type UserStoreReviewCreateNestedManyWithoutUserInput = { + create?: Prisma.XOR | Prisma.UserStoreReviewCreateWithoutUserInput[] | Prisma.UserStoreReviewUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.UserStoreReviewCreateOrConnectWithoutUserInput | Prisma.UserStoreReviewCreateOrConnectWithoutUserInput[] + createMany?: Prisma.UserStoreReviewCreateManyUserInputEnvelope + connect?: Prisma.UserStoreReviewWhereUniqueInput | Prisma.UserStoreReviewWhereUniqueInput[] +} + +export type UserStoreReviewUncheckedCreateNestedManyWithoutUserInput = { + create?: Prisma.XOR | Prisma.UserStoreReviewCreateWithoutUserInput[] | Prisma.UserStoreReviewUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.UserStoreReviewCreateOrConnectWithoutUserInput | Prisma.UserStoreReviewCreateOrConnectWithoutUserInput[] + createMany?: Prisma.UserStoreReviewCreateManyUserInputEnvelope + connect?: Prisma.UserStoreReviewWhereUniqueInput | Prisma.UserStoreReviewWhereUniqueInput[] +} + +export type UserStoreReviewUpdateManyWithoutUserNestedInput = { + create?: Prisma.XOR | Prisma.UserStoreReviewCreateWithoutUserInput[] | Prisma.UserStoreReviewUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.UserStoreReviewCreateOrConnectWithoutUserInput | Prisma.UserStoreReviewCreateOrConnectWithoutUserInput[] + upsert?: Prisma.UserStoreReviewUpsertWithWhereUniqueWithoutUserInput | Prisma.UserStoreReviewUpsertWithWhereUniqueWithoutUserInput[] + createMany?: Prisma.UserStoreReviewCreateManyUserInputEnvelope + set?: Prisma.UserStoreReviewWhereUniqueInput | Prisma.UserStoreReviewWhereUniqueInput[] + disconnect?: Prisma.UserStoreReviewWhereUniqueInput | Prisma.UserStoreReviewWhereUniqueInput[] + delete?: Prisma.UserStoreReviewWhereUniqueInput | Prisma.UserStoreReviewWhereUniqueInput[] + connect?: Prisma.UserStoreReviewWhereUniqueInput | Prisma.UserStoreReviewWhereUniqueInput[] + update?: Prisma.UserStoreReviewUpdateWithWhereUniqueWithoutUserInput | Prisma.UserStoreReviewUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: Prisma.UserStoreReviewUpdateManyWithWhereWithoutUserInput | Prisma.UserStoreReviewUpdateManyWithWhereWithoutUserInput[] + deleteMany?: Prisma.UserStoreReviewScalarWhereInput | Prisma.UserStoreReviewScalarWhereInput[] +} + +export type UserStoreReviewUncheckedUpdateManyWithoutUserNestedInput = { + create?: Prisma.XOR | Prisma.UserStoreReviewCreateWithoutUserInput[] | Prisma.UserStoreReviewUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.UserStoreReviewCreateOrConnectWithoutUserInput | Prisma.UserStoreReviewCreateOrConnectWithoutUserInput[] + upsert?: Prisma.UserStoreReviewUpsertWithWhereUniqueWithoutUserInput | Prisma.UserStoreReviewUpsertWithWhereUniqueWithoutUserInput[] + createMany?: Prisma.UserStoreReviewCreateManyUserInputEnvelope + set?: Prisma.UserStoreReviewWhereUniqueInput | Prisma.UserStoreReviewWhereUniqueInput[] + disconnect?: Prisma.UserStoreReviewWhereUniqueInput | Prisma.UserStoreReviewWhereUniqueInput[] + delete?: Prisma.UserStoreReviewWhereUniqueInput | Prisma.UserStoreReviewWhereUniqueInput[] + connect?: Prisma.UserStoreReviewWhereUniqueInput | Prisma.UserStoreReviewWhereUniqueInput[] + update?: Prisma.UserStoreReviewUpdateWithWhereUniqueWithoutUserInput | Prisma.UserStoreReviewUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: Prisma.UserStoreReviewUpdateManyWithWhereWithoutUserInput | Prisma.UserStoreReviewUpdateManyWithWhereWithoutUserInput[] + deleteMany?: Prisma.UserStoreReviewScalarWhereInput | Prisma.UserStoreReviewScalarWhereInput[] +} + +export type UserStoreReviewCreateNestedManyWithoutStoreInput = { + create?: Prisma.XOR | Prisma.UserStoreReviewCreateWithoutStoreInput[] | Prisma.UserStoreReviewUncheckedCreateWithoutStoreInput[] + connectOrCreate?: Prisma.UserStoreReviewCreateOrConnectWithoutStoreInput | Prisma.UserStoreReviewCreateOrConnectWithoutStoreInput[] + createMany?: Prisma.UserStoreReviewCreateManyStoreInputEnvelope + connect?: Prisma.UserStoreReviewWhereUniqueInput | Prisma.UserStoreReviewWhereUniqueInput[] +} + +export type UserStoreReviewUncheckedCreateNestedManyWithoutStoreInput = { + create?: Prisma.XOR | Prisma.UserStoreReviewCreateWithoutStoreInput[] | Prisma.UserStoreReviewUncheckedCreateWithoutStoreInput[] + connectOrCreate?: Prisma.UserStoreReviewCreateOrConnectWithoutStoreInput | Prisma.UserStoreReviewCreateOrConnectWithoutStoreInput[] + createMany?: Prisma.UserStoreReviewCreateManyStoreInputEnvelope + connect?: Prisma.UserStoreReviewWhereUniqueInput | Prisma.UserStoreReviewWhereUniqueInput[] +} + +export type UserStoreReviewUpdateManyWithoutStoreNestedInput = { + create?: Prisma.XOR | Prisma.UserStoreReviewCreateWithoutStoreInput[] | Prisma.UserStoreReviewUncheckedCreateWithoutStoreInput[] + connectOrCreate?: Prisma.UserStoreReviewCreateOrConnectWithoutStoreInput | Prisma.UserStoreReviewCreateOrConnectWithoutStoreInput[] + upsert?: Prisma.UserStoreReviewUpsertWithWhereUniqueWithoutStoreInput | Prisma.UserStoreReviewUpsertWithWhereUniqueWithoutStoreInput[] + createMany?: Prisma.UserStoreReviewCreateManyStoreInputEnvelope + set?: Prisma.UserStoreReviewWhereUniqueInput | Prisma.UserStoreReviewWhereUniqueInput[] + disconnect?: Prisma.UserStoreReviewWhereUniqueInput | Prisma.UserStoreReviewWhereUniqueInput[] + delete?: Prisma.UserStoreReviewWhereUniqueInput | Prisma.UserStoreReviewWhereUniqueInput[] + connect?: Prisma.UserStoreReviewWhereUniqueInput | Prisma.UserStoreReviewWhereUniqueInput[] + update?: Prisma.UserStoreReviewUpdateWithWhereUniqueWithoutStoreInput | Prisma.UserStoreReviewUpdateWithWhereUniqueWithoutStoreInput[] + updateMany?: Prisma.UserStoreReviewUpdateManyWithWhereWithoutStoreInput | Prisma.UserStoreReviewUpdateManyWithWhereWithoutStoreInput[] + deleteMany?: Prisma.UserStoreReviewScalarWhereInput | Prisma.UserStoreReviewScalarWhereInput[] +} + +export type UserStoreReviewUncheckedUpdateManyWithoutStoreNestedInput = { + create?: Prisma.XOR | Prisma.UserStoreReviewCreateWithoutStoreInput[] | Prisma.UserStoreReviewUncheckedCreateWithoutStoreInput[] + connectOrCreate?: Prisma.UserStoreReviewCreateOrConnectWithoutStoreInput | Prisma.UserStoreReviewCreateOrConnectWithoutStoreInput[] + upsert?: Prisma.UserStoreReviewUpsertWithWhereUniqueWithoutStoreInput | Prisma.UserStoreReviewUpsertWithWhereUniqueWithoutStoreInput[] + createMany?: Prisma.UserStoreReviewCreateManyStoreInputEnvelope + set?: Prisma.UserStoreReviewWhereUniqueInput | Prisma.UserStoreReviewWhereUniqueInput[] + disconnect?: Prisma.UserStoreReviewWhereUniqueInput | Prisma.UserStoreReviewWhereUniqueInput[] + delete?: Prisma.UserStoreReviewWhereUniqueInput | Prisma.UserStoreReviewWhereUniqueInput[] + connect?: Prisma.UserStoreReviewWhereUniqueInput | Prisma.UserStoreReviewWhereUniqueInput[] + update?: Prisma.UserStoreReviewUpdateWithWhereUniqueWithoutStoreInput | Prisma.UserStoreReviewUpdateWithWhereUniqueWithoutStoreInput[] + updateMany?: Prisma.UserStoreReviewUpdateManyWithWhereWithoutStoreInput | Prisma.UserStoreReviewUpdateManyWithWhereWithoutStoreInput[] + deleteMany?: Prisma.UserStoreReviewScalarWhereInput | Prisma.UserStoreReviewScalarWhereInput[] +} + +export type FloatFieldUpdateOperationsInput = { + set?: number + increment?: number + decrement?: number + multiply?: number + divide?: number +} + +export type UserStoreReviewCreateWithoutUserInput = { + content: string + rating: number + createdAt?: Date | string + store: Prisma.StoreCreateNestedOneWithoutReviewsInput +} + +export type UserStoreReviewUncheckedCreateWithoutUserInput = { + id?: number + content: string + rating: number + createdAt?: Date | string + storeId: number +} + +export type UserStoreReviewCreateOrConnectWithoutUserInput = { + where: Prisma.UserStoreReviewWhereUniqueInput + create: Prisma.XOR +} + +export type UserStoreReviewCreateManyUserInputEnvelope = { + data: Prisma.UserStoreReviewCreateManyUserInput | Prisma.UserStoreReviewCreateManyUserInput[] + skipDuplicates?: boolean +} + +export type UserStoreReviewUpsertWithWhereUniqueWithoutUserInput = { + where: Prisma.UserStoreReviewWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type UserStoreReviewUpdateWithWhereUniqueWithoutUserInput = { + where: Prisma.UserStoreReviewWhereUniqueInput + data: Prisma.XOR +} + +export type UserStoreReviewUpdateManyWithWhereWithoutUserInput = { + where: Prisma.UserStoreReviewScalarWhereInput + data: Prisma.XOR +} + +export type UserStoreReviewScalarWhereInput = { + AND?: Prisma.UserStoreReviewScalarWhereInput | Prisma.UserStoreReviewScalarWhereInput[] + OR?: Prisma.UserStoreReviewScalarWhereInput[] + NOT?: Prisma.UserStoreReviewScalarWhereInput | Prisma.UserStoreReviewScalarWhereInput[] + id?: Prisma.IntFilter<"UserStoreReview"> | number + content?: Prisma.StringFilter<"UserStoreReview"> | string + rating?: Prisma.FloatFilter<"UserStoreReview"> | number + createdAt?: Prisma.DateTimeFilter<"UserStoreReview"> | Date | string + storeId?: Prisma.IntFilter<"UserStoreReview"> | number + userId?: Prisma.IntFilter<"UserStoreReview"> | number +} + +export type UserStoreReviewCreateWithoutStoreInput = { + content: string + rating: number + createdAt?: Date | string + user: Prisma.UserCreateNestedOneWithoutStoreReviewsInput +} + +export type UserStoreReviewUncheckedCreateWithoutStoreInput = { + id?: number + content: string + rating: number + createdAt?: Date | string + userId: number +} + +export type UserStoreReviewCreateOrConnectWithoutStoreInput = { + where: Prisma.UserStoreReviewWhereUniqueInput + create: Prisma.XOR +} + +export type UserStoreReviewCreateManyStoreInputEnvelope = { + data: Prisma.UserStoreReviewCreateManyStoreInput | Prisma.UserStoreReviewCreateManyStoreInput[] + skipDuplicates?: boolean +} + +export type UserStoreReviewUpsertWithWhereUniqueWithoutStoreInput = { + where: Prisma.UserStoreReviewWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type UserStoreReviewUpdateWithWhereUniqueWithoutStoreInput = { + where: Prisma.UserStoreReviewWhereUniqueInput + data: Prisma.XOR +} + +export type UserStoreReviewUpdateManyWithWhereWithoutStoreInput = { + where: Prisma.UserStoreReviewScalarWhereInput + data: Prisma.XOR +} + +export type UserStoreReviewCreateManyUserInput = { + id?: number + content: string + rating: number + createdAt?: Date | string + storeId: number +} + +export type UserStoreReviewUpdateWithoutUserInput = { + content?: Prisma.StringFieldUpdateOperationsInput | string + rating?: Prisma.FloatFieldUpdateOperationsInput | number + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + store?: Prisma.StoreUpdateOneRequiredWithoutReviewsNestedInput +} + +export type UserStoreReviewUncheckedUpdateWithoutUserInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + content?: Prisma.StringFieldUpdateOperationsInput | string + rating?: Prisma.FloatFieldUpdateOperationsInput | number + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + storeId?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type UserStoreReviewUncheckedUpdateManyWithoutUserInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + content?: Prisma.StringFieldUpdateOperationsInput | string + rating?: Prisma.FloatFieldUpdateOperationsInput | number + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + storeId?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type UserStoreReviewCreateManyStoreInput = { + id?: number + content: string + rating: number + createdAt?: Date | string + userId: number +} + +export type UserStoreReviewUpdateWithoutStoreInput = { + content?: Prisma.StringFieldUpdateOperationsInput | string + rating?: Prisma.FloatFieldUpdateOperationsInput | number + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + user?: Prisma.UserUpdateOneRequiredWithoutStoreReviewsNestedInput +} + +export type UserStoreReviewUncheckedUpdateWithoutStoreInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + content?: Prisma.StringFieldUpdateOperationsInput | string + rating?: Prisma.FloatFieldUpdateOperationsInput | number + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + userId?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type UserStoreReviewUncheckedUpdateManyWithoutStoreInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + content?: Prisma.StringFieldUpdateOperationsInput | string + rating?: Prisma.FloatFieldUpdateOperationsInput | number + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + userId?: Prisma.IntFieldUpdateOperationsInput | number +} + + + +export type UserStoreReviewSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + content?: boolean + rating?: boolean + createdAt?: boolean + storeId?: boolean + userId?: boolean + store?: boolean | Prisma.StoreDefaultArgs + user?: boolean | Prisma.UserDefaultArgs +}, ExtArgs["result"]["userStoreReview"]> + + + +export type UserStoreReviewSelectScalar = { + id?: boolean + content?: boolean + rating?: boolean + createdAt?: boolean + storeId?: boolean + userId?: boolean +} + +export type UserStoreReviewOmit = runtime.Types.Extensions.GetOmit<"id" | "content" | "rating" | "createdAt" | "storeId" | "userId", ExtArgs["result"]["userStoreReview"]> +export type UserStoreReviewInclude = { + store?: boolean | Prisma.StoreDefaultArgs + user?: boolean | Prisma.UserDefaultArgs +} + +export type $UserStoreReviewPayload = { + name: "UserStoreReview" + objects: { + store: Prisma.$StorePayload + user: Prisma.$UserPayload + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + content: string + rating: number + createdAt: Date + storeId: number + userId: number + }, ExtArgs["result"]["userStoreReview"]> + composites: {} +} + +export type UserStoreReviewGetPayload = runtime.Types.Result.GetResult + +export type UserStoreReviewCountArgs = + Omit & { + select?: UserStoreReviewCountAggregateInputType | true + } + +export interface UserStoreReviewDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['UserStoreReview'], meta: { name: 'UserStoreReview' } } + /** + * Find zero or one UserStoreReview that matches the filter. + * @param {UserStoreReviewFindUniqueArgs} args - Arguments to find a UserStoreReview + * @example + * // Get one UserStoreReview + * const userStoreReview = await prisma.userStoreReview.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__UserStoreReviewClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one UserStoreReview that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {UserStoreReviewFindUniqueOrThrowArgs} args - Arguments to find a UserStoreReview + * @example + * // Get one UserStoreReview + * const userStoreReview = await prisma.userStoreReview.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__UserStoreReviewClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first UserStoreReview 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 {UserStoreReviewFindFirstArgs} args - Arguments to find a UserStoreReview + * @example + * // Get one UserStoreReview + * const userStoreReview = await prisma.userStoreReview.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__UserStoreReviewClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first UserStoreReview 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 {UserStoreReviewFindFirstOrThrowArgs} args - Arguments to find a UserStoreReview + * @example + * // Get one UserStoreReview + * const userStoreReview = await prisma.userStoreReview.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__UserStoreReviewClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more UserStoreReviews 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 {UserStoreReviewFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all UserStoreReviews + * const userStoreReviews = await prisma.userStoreReview.findMany() + * + * // Get first 10 UserStoreReviews + * const userStoreReviews = await prisma.userStoreReview.findMany({ take: 10 }) + * + * // Only select the `id` + * const userStoreReviewWithIdOnly = await prisma.userStoreReview.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a UserStoreReview. + * @param {UserStoreReviewCreateArgs} args - Arguments to create a UserStoreReview. + * @example + * // Create one UserStoreReview + * const UserStoreReview = await prisma.userStoreReview.create({ + * data: { + * // ... data to create a UserStoreReview + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__UserStoreReviewClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many UserStoreReviews. + * @param {UserStoreReviewCreateManyArgs} args - Arguments to create many UserStoreReviews. + * @example + * // Create many UserStoreReviews + * const userStoreReview = await prisma.userStoreReview.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a UserStoreReview. + * @param {UserStoreReviewDeleteArgs} args - Arguments to delete one UserStoreReview. + * @example + * // Delete one UserStoreReview + * const UserStoreReview = await prisma.userStoreReview.delete({ + * where: { + * // ... filter to delete one UserStoreReview + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__UserStoreReviewClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one UserStoreReview. + * @param {UserStoreReviewUpdateArgs} args - Arguments to update one UserStoreReview. + * @example + * // Update one UserStoreReview + * const userStoreReview = await prisma.userStoreReview.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__UserStoreReviewClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more UserStoreReviews. + * @param {UserStoreReviewDeleteManyArgs} args - Arguments to filter UserStoreReviews to delete. + * @example + * // Delete a few UserStoreReviews + * const { count } = await prisma.userStoreReview.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more UserStoreReviews. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserStoreReviewUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many UserStoreReviews + * const userStoreReview = await prisma.userStoreReview.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one UserStoreReview. + * @param {UserStoreReviewUpsertArgs} args - Arguments to update or create a UserStoreReview. + * @example + * // Update or create a UserStoreReview + * const userStoreReview = await prisma.userStoreReview.upsert({ + * create: { + * // ... data to create a UserStoreReview + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the UserStoreReview we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__UserStoreReviewClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of UserStoreReviews. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserStoreReviewCountArgs} args - Arguments to filter UserStoreReviews to count. + * @example + * // Count the number of UserStoreReviews + * const count = await prisma.userStoreReview.count({ + * where: { + * // ... the filter for the UserStoreReviews 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 UserStoreReview. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserStoreReviewAggregateArgs} 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 UserStoreReview. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserStoreReviewGroupByArgs} 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 UserStoreReviewGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: UserStoreReviewGroupByArgs['orderBy'] } + : { orderBy?: UserStoreReviewGroupByArgs['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 ? GetUserStoreReviewGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the UserStoreReview model + */ +readonly fields: UserStoreReviewFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for UserStoreReview. + * 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__UserStoreReviewClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + store = {}>(args?: Prisma.Subset>): Prisma.Prisma__StoreClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + user = {}>(args?: Prisma.Subset>): Prisma.Prisma__UserClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): 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 UserStoreReview model + */ +export interface UserStoreReviewFieldRefs { + readonly id: Prisma.FieldRef<"UserStoreReview", 'Int'> + readonly content: Prisma.FieldRef<"UserStoreReview", 'String'> + readonly rating: Prisma.FieldRef<"UserStoreReview", 'Float'> + readonly createdAt: Prisma.FieldRef<"UserStoreReview", 'DateTime'> + readonly storeId: Prisma.FieldRef<"UserStoreReview", 'Int'> + readonly userId: Prisma.FieldRef<"UserStoreReview", 'Int'> +} + + +// Custom InputTypes +/** + * UserStoreReview findUnique + */ +export type UserStoreReviewFindUniqueArgs = { + /** + * Select specific fields to fetch from the UserStoreReview + */ + select?: Prisma.UserStoreReviewSelect | null + /** + * Omit specific fields from the UserStoreReview + */ + omit?: Prisma.UserStoreReviewOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserStoreReviewInclude | null + /** + * Filter, which UserStoreReview to fetch. + */ + where: Prisma.UserStoreReviewWhereUniqueInput +} + +/** + * UserStoreReview findUniqueOrThrow + */ +export type UserStoreReviewFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the UserStoreReview + */ + select?: Prisma.UserStoreReviewSelect | null + /** + * Omit specific fields from the UserStoreReview + */ + omit?: Prisma.UserStoreReviewOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserStoreReviewInclude | null + /** + * Filter, which UserStoreReview to fetch. + */ + where: Prisma.UserStoreReviewWhereUniqueInput +} + +/** + * UserStoreReview findFirst + */ +export type UserStoreReviewFindFirstArgs = { + /** + * Select specific fields to fetch from the UserStoreReview + */ + select?: Prisma.UserStoreReviewSelect | null + /** + * Omit specific fields from the UserStoreReview + */ + omit?: Prisma.UserStoreReviewOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserStoreReviewInclude | null + /** + * Filter, which UserStoreReview to fetch. + */ + where?: Prisma.UserStoreReviewWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of UserStoreReviews to fetch. + */ + orderBy?: Prisma.UserStoreReviewOrderByWithRelationInput | Prisma.UserStoreReviewOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for UserStoreReviews. + */ + cursor?: Prisma.UserStoreReviewWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` UserStoreReviews 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` UserStoreReviews. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of UserStoreReviews. + */ + distinct?: Prisma.UserStoreReviewScalarFieldEnum | Prisma.UserStoreReviewScalarFieldEnum[] +} + +/** + * UserStoreReview findFirstOrThrow + */ +export type UserStoreReviewFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the UserStoreReview + */ + select?: Prisma.UserStoreReviewSelect | null + /** + * Omit specific fields from the UserStoreReview + */ + omit?: Prisma.UserStoreReviewOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserStoreReviewInclude | null + /** + * Filter, which UserStoreReview to fetch. + */ + where?: Prisma.UserStoreReviewWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of UserStoreReviews to fetch. + */ + orderBy?: Prisma.UserStoreReviewOrderByWithRelationInput | Prisma.UserStoreReviewOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for UserStoreReviews. + */ + cursor?: Prisma.UserStoreReviewWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` UserStoreReviews 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` UserStoreReviews. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of UserStoreReviews. + */ + distinct?: Prisma.UserStoreReviewScalarFieldEnum | Prisma.UserStoreReviewScalarFieldEnum[] +} + +/** + * UserStoreReview findMany + */ +export type UserStoreReviewFindManyArgs = { + /** + * Select specific fields to fetch from the UserStoreReview + */ + select?: Prisma.UserStoreReviewSelect | null + /** + * Omit specific fields from the UserStoreReview + */ + omit?: Prisma.UserStoreReviewOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserStoreReviewInclude | null + /** + * Filter, which UserStoreReviews to fetch. + */ + where?: Prisma.UserStoreReviewWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of UserStoreReviews to fetch. + */ + orderBy?: Prisma.UserStoreReviewOrderByWithRelationInput | Prisma.UserStoreReviewOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing UserStoreReviews. + */ + cursor?: Prisma.UserStoreReviewWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` UserStoreReviews 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` UserStoreReviews. + */ + skip?: number + distinct?: Prisma.UserStoreReviewScalarFieldEnum | Prisma.UserStoreReviewScalarFieldEnum[] +} + +/** + * UserStoreReview create + */ +export type UserStoreReviewCreateArgs = { + /** + * Select specific fields to fetch from the UserStoreReview + */ + select?: Prisma.UserStoreReviewSelect | null + /** + * Omit specific fields from the UserStoreReview + */ + omit?: Prisma.UserStoreReviewOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserStoreReviewInclude | null + /** + * The data needed to create a UserStoreReview. + */ + data: Prisma.XOR +} + +/** + * UserStoreReview createMany + */ +export type UserStoreReviewCreateManyArgs = { + /** + * The data used to create many UserStoreReviews. + */ + data: Prisma.UserStoreReviewCreateManyInput | Prisma.UserStoreReviewCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * UserStoreReview update + */ +export type UserStoreReviewUpdateArgs = { + /** + * Select specific fields to fetch from the UserStoreReview + */ + select?: Prisma.UserStoreReviewSelect | null + /** + * Omit specific fields from the UserStoreReview + */ + omit?: Prisma.UserStoreReviewOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserStoreReviewInclude | null + /** + * The data needed to update a UserStoreReview. + */ + data: Prisma.XOR + /** + * Choose, which UserStoreReview to update. + */ + where: Prisma.UserStoreReviewWhereUniqueInput +} + +/** + * UserStoreReview updateMany + */ +export type UserStoreReviewUpdateManyArgs = { + /** + * The data used to update UserStoreReviews. + */ + data: Prisma.XOR + /** + * Filter which UserStoreReviews to update + */ + where?: Prisma.UserStoreReviewWhereInput + /** + * Limit how many UserStoreReviews to update. + */ + limit?: number +} + +/** + * UserStoreReview upsert + */ +export type UserStoreReviewUpsertArgs = { + /** + * Select specific fields to fetch from the UserStoreReview + */ + select?: Prisma.UserStoreReviewSelect | null + /** + * Omit specific fields from the UserStoreReview + */ + omit?: Prisma.UserStoreReviewOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserStoreReviewInclude | null + /** + * The filter to search for the UserStoreReview to update in case it exists. + */ + where: Prisma.UserStoreReviewWhereUniqueInput + /** + * In case the UserStoreReview found by the `where` argument doesn't exist, create a new UserStoreReview with this data. + */ + create: Prisma.XOR + /** + * In case the UserStoreReview was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * UserStoreReview delete + */ +export type UserStoreReviewDeleteArgs = { + /** + * Select specific fields to fetch from the UserStoreReview + */ + select?: Prisma.UserStoreReviewSelect | null + /** + * Omit specific fields from the UserStoreReview + */ + omit?: Prisma.UserStoreReviewOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserStoreReviewInclude | null + /** + * Filter which UserStoreReview to delete. + */ + where: Prisma.UserStoreReviewWhereUniqueInput +} + +/** + * UserStoreReview deleteMany + */ +export type UserStoreReviewDeleteManyArgs = { + /** + * Filter which UserStoreReviews to delete + */ + where?: Prisma.UserStoreReviewWhereInput + /** + * Limit how many UserStoreReviews to delete. + */ + limit?: number +} + +/** + * UserStoreReview without action + */ +export type UserStoreReviewDefaultArgs = { + /** + * Select specific fields to fetch from the UserStoreReview + */ + select?: Prisma.UserStoreReviewSelect | null + /** + * Omit specific fields from the UserStoreReview + */ + omit?: Prisma.UserStoreReviewOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserStoreReviewInclude | null +} diff --git a/generated/routes.ts b/generated/routes.ts new file mode 100644 index 0000000..3221abc --- /dev/null +++ b/generated/routes.ts @@ -0,0 +1,251 @@ +/* tslint:disable */ +/* eslint-disable */ +// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa +import type { TsoaRoute } from '@tsoa/runtime'; +import { fetchMiddlewares, ExpressTemplateService } from '@tsoa/runtime'; +// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa +import { UserController } from './../modules/users/controllers/user.controller'; +import type { Request as ExRequest, Response as ExResponse, RequestHandler, Router } from 'express'; + + + +// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa + +const models: TsoaRoute.Models = { + "UserSignUpResponse": { + "dataType": "refObject", + "properties": { + "userId": {"dataType":"double","required":true}, + "preferences": {"dataType":"array","array":{"dataType":"string"},"required":true}, + }, + "additionalProperties": false, + }, + // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa + "ApiResponse_UserSignUpResponse_": { + "dataType": "refObject", + "properties": { + "resultType": {"dataType":"enum","enums":["SUCCESS"],"required":true}, + "error": {"dataType":"enum","enums":[null],"required":true}, + "data": {"ref":"UserSignUpResponse","required":true}, + }, + "additionalProperties": false, + }, + // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa + "UserSignUpRequest": { + "dataType": "refObject", + "properties": { + "email": {"dataType":"string","required":true}, + "name": {"dataType":"string","required":true}, + "gender": {"dataType":"string","required":true}, + "birth": {"dataType":"datetime","required":true}, + "address": {"dataType":"string"}, + "detailAddress": {"dataType":"string"}, + "phoneNumber": {"dataType":"string","required":true}, + "preferences": {"dataType":"array","array":{"dataType":"double"},"required":true}, + }, + "additionalProperties": false, + }, + // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa +}; +const templateService = new ExpressTemplateService(models, {"noImplicitAdditionalProperties":"throw-on-extras","bodyCoercion":true}); + +// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa + + + + +export function RegisterRoutes(app: Router) { + + // ########################################################################################################### + // NOTE: If you do not see routes for all of your controllers in this file, then you might not have informed tsoa of where to look + // Please look into the "controllerPathGlobs" config option described in the readme: https://github.com/lukeautry/tsoa + // ########################################################################################################### + + + + const argsUserController_handleGuestPage: Record = { + }; + app.get('/users/guest', + ...(fetchMiddlewares(UserController)), + ...(fetchMiddlewares(UserController.prototype.handleGuestPage)), + + async function UserController_handleGuestPage(request: ExRequest, response: ExResponse, next: any) { + + // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa + + let validatedArgs: any[] = []; + try { + validatedArgs = templateService.getValidatedArgs({ args: argsUserController_handleGuestPage, request, response }); + + const controller = new UserController(); + + await templateService.apiHandler({ + methodName: 'handleGuestPage', + controller, + response, + next, + validatedArgs, + successStatus: undefined, + }); + } catch (err) { + return next(err); + } + }); + // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa + const argsUserController_handleLoginPage: Record = { + }; + app.get('/users/login', + ...(fetchMiddlewares(UserController)), + ...(fetchMiddlewares(UserController.prototype.handleLoginPage)), + + async function UserController_handleLoginPage(request: ExRequest, response: ExResponse, next: any) { + + // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa + + let validatedArgs: any[] = []; + try { + validatedArgs = templateService.getValidatedArgs({ args: argsUserController_handleLoginPage, request, response }); + + const controller = new UserController(); + + await templateService.apiHandler({ + methodName: 'handleLoginPage', + controller, + response, + next, + validatedArgs, + successStatus: undefined, + }); + } catch (err) { + return next(err); + } + }); + // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa + const argsUserController_handleMypage: Record = { + req: {"in":"request","name":"req","required":true,"dataType":"object"}, + }; + app.get('/users/mypage', + ...(fetchMiddlewares(UserController)), + ...(fetchMiddlewares(UserController.prototype.handleMypage)), + + async function UserController_handleMypage(request: ExRequest, response: ExResponse, next: any) { + + // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa + + let validatedArgs: any[] = []; + try { + validatedArgs = templateService.getValidatedArgs({ args: argsUserController_handleMypage, request, response }); + + const controller = new UserController(); + + await templateService.apiHandler({ + methodName: 'handleMypage', + controller, + response, + next, + validatedArgs, + successStatus: undefined, + }); + } catch (err) { + return next(err); + } + }); + // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa + const argsUserController_handleSetLogin: Record = { + req: {"in":"request","name":"req","required":true,"dataType":"object"}, + }; + app.get('/users/set-login', + ...(fetchMiddlewares(UserController)), + ...(fetchMiddlewares(UserController.prototype.handleSetLogin)), + + async function UserController_handleSetLogin(request: ExRequest, response: ExResponse, next: any) { + + // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa + + let validatedArgs: any[] = []; + try { + validatedArgs = templateService.getValidatedArgs({ args: argsUserController_handleSetLogin, request, response }); + + const controller = new UserController(); + + await templateService.apiHandler({ + methodName: 'handleSetLogin', + controller, + response, + next, + validatedArgs, + successStatus: undefined, + }); + } catch (err) { + return next(err); + } + }); + // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa + const argsUserController_handleSetLogout: Record = { + req: {"in":"request","name":"req","required":true,"dataType":"object"}, + }; + app.get('/users/set-logout', + ...(fetchMiddlewares(UserController)), + ...(fetchMiddlewares(UserController.prototype.handleSetLogout)), + + async function UserController_handleSetLogout(request: ExRequest, response: ExResponse, next: any) { + + // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa + + let validatedArgs: any[] = []; + try { + validatedArgs = templateService.getValidatedArgs({ args: argsUserController_handleSetLogout, request, response }); + + const controller = new UserController(); + + await templateService.apiHandler({ + methodName: 'handleSetLogout', + controller, + response, + next, + validatedArgs, + successStatus: undefined, + }); + } catch (err) { + return next(err); + } + }); + // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa + const argsUserController_handleUserSignUp: Record = { + body: {"in":"body","name":"body","required":true,"ref":"UserSignUpRequest"}, + }; + app.post('/users/signup', + ...(fetchMiddlewares(UserController)), + ...(fetchMiddlewares(UserController.prototype.handleUserSignUp)), + + async function UserController_handleUserSignUp(request: ExRequest, response: ExResponse, next: any) { + + // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa + + let validatedArgs: any[] = []; + try { + validatedArgs = templateService.getValidatedArgs({ args: argsUserController_handleUserSignUp, request, response }); + + const controller = new UserController(); + + await templateService.apiHandler({ + methodName: 'handleUserSignUp', + controller, + response, + next, + validatedArgs, + successStatus: undefined, + }); + } catch (err) { + return next(err); + } + }); + // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa + + // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa + + + // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa +} + +// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa diff --git a/index.js b/index.js new file mode 100644 index 0000000..734d51a --- /dev/null +++ b/index.js @@ -0,0 +1,31 @@ +// src/index.ts +import dotenv from "dotenv"; +import express from "express"; +import cors from "cors"; +import { handleUserSignUp } from "./modules/users/controllers/user.controller.js"; +import { createStore } from "./modules/stores/controllers/store.controller.js"; +import { createReview, handleListStoreReviews, handleMyReviews, } from "./modules/reviews/controllers/review.controller.js"; +import { createMission, handleStoreMissions, challengeMission, handleMyMissions, completeMission, } from "./modules/missions/controllers/mission.controller.js"; +dotenv.config(); +const app = express(); +const port = process.env.PORT || 3000; +app.use(cors()); +app.use(express.json()); +app.use(express.urlencoded({ extended: false })); +app.get("/", (req, res) => { + res.send("Hello World!"); +}); +app.post("/api/v1/users/signup", handleUserSignUp); +app.get("/api/v1/users/:userId/reviews", handleMyReviews); +app.post("/api/v1/stores", createStore); +app.get("/api/v1/stores/:storeId/reviews", handleListStoreReviews); +app.get("/api/v1/stores/:storeId/missions", handleStoreMissions); +app.post("/api/v1/reviews/:storeId", createReview); +app.post("/api/v1/missions", createMission); +app.post("/api/v1/missions/:missionId/challenge", challengeMission); +app.get("/api/v1/users/:userId/missions", handleMyMissions); +app.post("/api/v1/user-missions/:userMissionId/complete", completeMission); +app.listen(port, () => { + console.log(`[server] running on port ${port}`); +}); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..8517726 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,OAAuC,MAAM,SAAS,CAAC;AAC9D,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AAE/E,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,eAAe,GAChB,MAAM,oDAAoD,CAAC;AAE5D,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,sDAAsD,CAAC;AAE9D,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,GAAG,GAAY,OAAO,EAAE,CAAC;AAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;AAEtC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AAChB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AACxB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAEjD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;IAC3C,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,CAAC;AACnD,GAAG,CAAC,GAAG,CAAC,+BAA+B,EAAE,eAAe,CAAC,CAAC;AAE1D,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;AACxC,GAAG,CAAC,GAAG,CAAC,iCAAiC,EAAE,sBAAsB,CAAC,CAAC;AACnE,GAAG,CAAC,GAAG,CAAC,kCAAkC,EAAE,mBAAmB,CAAC,CAAC;AAEjE,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,YAAY,CAAC,CAAC;AAEnD,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;AAC5C,GAAG,CAAC,IAAI,CAAC,uCAAuC,EAAE,gBAAgB,CAAC,CAAC;AAEpE,GAAG,CAAC,GAAG,CAAC,gCAAgC,EAAE,gBAAgB,CAAC,CAAC;AAE5D,GAAG,CAAC,IAAI,CACN,+CAA+C,EAC/C,eAAe,CAChB,CAAC;AAEF,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;IACpB,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/index.ts b/index.ts new file mode 100644 index 0000000..0113777 --- /dev/null +++ b/index.ts @@ -0,0 +1,50 @@ +// src/index.ts +import dotenv from "dotenv"; +import express, { Express, Request, Response, NextFunction } from "express"; +import cors from "cors"; +import morgan from "morgan"; +import cookieParser from "cookie-parser"; +import { RegisterRoutes } from "./generated/routes.js"; + +dotenv.config(); + +const app: Express = express(); +const port = process.env.PORT || 3000; + +app.use((req: Request, res: Response, next: NextFunction) => { + (res as any).error = function ({ errorCode = null, message = null, data = null }) { + return this.json({ + resultType: "FAILED", + error: { errorCode, message, data }, + data: null, + }); + }; + next(); +}); + +app.use(morgan("dev")); +app.use(cors()); +app.use(express.static("public")); +app.use(express.json()); +app.use(express.urlencoded({ extended: false })); +app.use(cookieParser()); + +const router = express.Router(); +RegisterRoutes(router); +app.use("/api/v1", router); + +app.use((err: any, req: Request, res: Response, next: NextFunction) => { + if (res.headersSent) { + return next(err); + } + + (res as any).status(err.statusCode || 500).error({ + errorCode: err.errorCode || "UNKNOWN", + message: err.message || "Internal Server Error", + data: err.data || null, + }); +}); + +app.listen(port, () => { + console.log(`[server]: Server is running at http://localhost:${port}`); +}); \ No newline at end of file diff --git a/migrations/20260507051229_init_database/migration.sql b/migrations/20260507051229_init_database/migration.sql new file mode 100644 index 0000000..31b12a1 --- /dev/null +++ b/migrations/20260507051229_init_database/migration.sql @@ -0,0 +1,39 @@ +-- CreateTable +CREATE TABLE `user` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `email` VARCHAR(255) NOT NULL, + `name` VARCHAR(100) NOT NULL, + `gender` VARCHAR(15) NOT NULL, + `birth` DATE NOT NULL, + `address` VARCHAR(255) NOT NULL, + `detail_address` VARCHAR(255) NULL, + `phone_number` VARCHAR(15) NOT NULL, + + UNIQUE INDEX `email`(`email`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `food_category` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `name` VARCHAR(100) NOT NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `user_favor_category` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `user_id` INTEGER NOT NULL, + `food_category_id` INTEGER NOT NULL, + + INDEX `f_category_id`(`food_category_id`), + INDEX `user_id`(`user_id`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- AddForeignKey +ALTER TABLE `user_favor_category` ADD CONSTRAINT `user_favor_category_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `user_favor_category` ADD CONSTRAINT `user_favor_category_food_category_id_fkey` FOREIGN KEY (`food_category_id`) REFERENCES `food_category`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/migrations/20260507051802_add_store_review/migration.sql b/migrations/20260507051802_add_store_review/migration.sql new file mode 100644 index 0000000..ae5a039 --- /dev/null +++ b/migrations/20260507051802_add_store_review/migration.sql @@ -0,0 +1,23 @@ +-- CreateTable +CREATE TABLE `store` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `name` VARCHAR(100) NOT NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `user_store_review` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `content` TEXT NOT NULL, + `store_id` INTEGER NOT NULL, + `user_id` INTEGER NOT NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- AddForeignKey +ALTER TABLE `user_store_review` ADD CONSTRAINT `user_store_review_store_id_fkey` FOREIGN KEY (`store_id`) REFERENCES `store`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `user_store_review` ADD CONSTRAINT `user_store_review_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/migrations/20260507070443_add_review_rating_created_at/migration.sql b/migrations/20260507070443_add_review_rating_created_at/migration.sql new file mode 100644 index 0000000..f4e0aa8 --- /dev/null +++ b/migrations/20260507070443_add_review_rating_created_at/migration.sql @@ -0,0 +1,32 @@ +/* + Warnings: + + - You are about to drop the `user_store_review` table. If the table is not empty, all the data it contains will be lost. + +*/ +-- DropForeignKey +ALTER TABLE `user_store_review` DROP FOREIGN KEY `user_store_review_store_id_fkey`; + +-- DropForeignKey +ALTER TABLE `user_store_review` DROP FOREIGN KEY `user_store_review_user_id_fkey`; + +-- DropTable +DROP TABLE `user_store_review`; + +-- CreateTable +CREATE TABLE `UserStoreReview` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `content` TEXT NOT NULL, + `rating` DOUBLE NOT NULL, + `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + `storeId` INTEGER NOT NULL, + `userId` INTEGER NOT NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- AddForeignKey +ALTER TABLE `UserStoreReview` ADD CONSTRAINT `UserStoreReview_storeId_fkey` FOREIGN KEY (`storeId`) REFERENCES `store`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `UserStoreReview` ADD CONSTRAINT `UserStoreReview_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/migrations/20260508160714_init_mission/migration.sql b/migrations/20260508160714_init_mission/migration.sql new file mode 100644 index 0000000..399f38c --- /dev/null +++ b/migrations/20260508160714_init_mission/migration.sql @@ -0,0 +1,29 @@ +-- CreateTable +CREATE TABLE `mission` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `store_id` INTEGER NOT NULL, + `condition_text` VARCHAR(191) NOT NULL, + `reward_point` INTEGER NOT NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `user_mission` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `user_id` INTEGER NOT NULL, + `mission_id` INTEGER NOT NULL, + `status` VARCHAR(191) NOT NULL, + + UNIQUE INDEX `user_mission_user_id_mission_id_key`(`user_id`, `mission_id`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- AddForeignKey +ALTER TABLE `mission` ADD CONSTRAINT `mission_store_id_fkey` FOREIGN KEY (`store_id`) REFERENCES `store`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `user_mission` ADD CONSTRAINT `user_mission_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `user_mission` ADD CONSTRAINT `user_mission_mission_id_fkey` FOREIGN KEY (`mission_id`) REFERENCES `mission`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/migrations/migration_lock.toml b/migrations/migration_lock.toml new file mode 100644 index 0000000..592fc0b --- /dev/null +++ b/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/modules/missions/controllers/mission.controller.js b/modules/missions/controllers/mission.controller.js new file mode 100644 index 0000000..4b1740a --- /dev/null +++ b/modules/missions/controllers/mission.controller.js @@ -0,0 +1,33 @@ +import { createMissionService, challengeMissionService, listStoreMissionsService, listMyMissionsService, completeMissionService, } from "../services/mission.service.js"; +export const createMission = async (req, res) => { + const { storeId, condition, rewardPoint } = req.body; + const result = await createMissionService({ + storeId, + condition, + rewardPoint, + }); + res.status(201).json({ success: true, data: result }); +}; +export const handleStoreMissions = async (req, res) => { + const storeId = Number(req.params.storeId); + const result = await listStoreMissionsService(storeId); + res.status(200).json(result); +}; +export const challengeMission = async (req, res) => { + const missionId = Number(req.params.missionId); + const userId = 1; + const result = await challengeMissionService(userId, missionId); + res.status(201).json({ success: true, data: result }); +}; +export const handleMyMissions = async (req, res) => { + const userId = Number(req.params.userId); + const status = req.query.status; + const result = await listMyMissionsService(userId, status); + res.status(200).json(result); +}; +export const completeMission = async (req, res) => { + const userMissionId = Number(req.params.userMissionId); + const result = await completeMissionService(userMissionId); + res.status(200).json(result); +}; +//# sourceMappingURL=mission.controller.js.map \ No newline at end of file diff --git a/modules/missions/controllers/mission.controller.js.map b/modules/missions/controllers/mission.controller.js.map new file mode 100644 index 0000000..9bab88b --- /dev/null +++ b/modules/missions/controllers/mission.controller.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mission.controller.js","sourceRoot":"","sources":["../../../../src/modules/missions/controllers/mission.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AAExC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,GAAY,EACZ,GAAa,EACb,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;IAErD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC;QACxC,OAAO;QACP,SAAS;QACT,WAAW;KACZ,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,GAAiC,EACjC,GAAa,EACb,EAAE;IACF,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACvD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,GAAmC,EACnC,GAAa,EACb,EAAE;IACF,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,CAAC,CAAC;IACjB,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,GAA+D,EAC/D,GAAa,EACb,EAAE;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,GAAuC,EACvC,GAAa,EACb,EAAE;IACF,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAC3D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC,CAAC"} \ No newline at end of file diff --git a/modules/missions/controllers/mission.controller.ts b/modules/missions/controllers/mission.controller.ts new file mode 100644 index 0000000..e2eab66 --- /dev/null +++ b/modules/missions/controllers/mission.controller.ts @@ -0,0 +1,58 @@ +// src/modules/missions/controllers/mission.controller.ts +import { Request, Response } from "express"; +import { + createMissionService, + challengeMissionService, + listStoreMissionsService, + listMyMissionsService, + completeMissionService, +} from "../services/mission.service.js"; +import { success } from "../../../common/responses/response.js"; + +export const createMission = async (req: Request, res: Response) => { + const { storeId, condition, rewardPoint } = req.body; + const result = await createMissionService({ + storeId, + condition, + rewardPoint, + }); + res.status(201).json(success(result)); +}; + +export const handleStoreMissions = async ( + req: Request<{ storeId: string }>, + res: Response +) => { + const storeId = Number(req.params.storeId); + const result = await listStoreMissionsService(storeId); + res.status(200).json(success(result)); +}; + +export const challengeMission = async ( + req: Request<{ missionId: string }>, + res: Response +) => { + const missionId = Number(req.params.missionId); + const userId = 1; + const result = await challengeMissionService(userId, missionId); + res.status(201).json(success(result)); +}; + +export const handleMyMissions = async ( + req: Request<{ userId: string }, any, any, { status?: string }>, + res: Response +) => { + const userId = Number(req.params.userId); + const status = req.query.status; + const result = await listMyMissionsService(userId, status); + res.status(200).json(success(result)); +}; + +export const completeMission = async ( + req: Request<{ userMissionId: string }>, + res: Response +) => { + const userMissionId = Number(req.params.userMissionId); + const result = await completeMissionService(userMissionId); + res.status(200).json(success(result)); +}; diff --git a/modules/missions/repositories/mission.repository.js b/modules/missions/repositories/mission.repository.js new file mode 100644 index 0000000..b3aa9d4 --- /dev/null +++ b/modules/missions/repositories/mission.repository.js @@ -0,0 +1,67 @@ +// src/modules/missions/repositories/mission.repository.ts +import { prisma } from "../../../db.config.js"; +export const insertMission = async (storeId, condition, rewardPoint) => { + const mission = await prisma.mission.create({ + data: { + storeId, + conditionText: condition, + rewardPoint, + }, + }); + return { + id: mission.id, + storeId: mission.storeId, + condition: mission.conditionText, + rewardPoint: mission.rewardPoint, + }; +}; +export const findMissionsByStore = async (storeId) => { + return prisma.mission.findMany({ + where: { storeId }, + include: { + store: { + select: { id: true, name: true }, + }, + }, + orderBy: { id: "asc" }, + }); +}; +export const getUserMission = async (userId, missionId) => { + return prisma.userMission.findUnique({ + where: { + userId_missionId: { userId, missionId }, + }, + }); +}; +export const insertUserMission = async (userId, missionId) => { + return prisma.userMission.create({ + data: { + userId, + missionId, + status: "IN_PROGRESS", + }, + }); +}; +export const findUserMissions = async (userId, status) => { + return prisma.userMission.findMany({ + where: { + userId, + ...(status ? { status } : {}), + }, + include: { + mission: { + include: { + store: { select: { id: true, name: true } }, + }, + }, + }, + orderBy: { id: "asc" }, + }); +}; +export const completeUserMission = async (userMissionId) => { + return prisma.userMission.update({ + where: { id: userMissionId }, + data: { status: "COMPLETED" }, + }); +}; +//# sourceMappingURL=mission.repository.js.map \ No newline at end of file diff --git a/modules/missions/repositories/mission.repository.js.map b/modules/missions/repositories/mission.repository.js.map new file mode 100644 index 0000000..1d43a56 --- /dev/null +++ b/modules/missions/repositories/mission.repository.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mission.repository.js","sourceRoot":"","sources":["../../../../src/modules/missions/repositories/mission.repository.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,OAAe,EACf,SAAiB,EACjB,WAAmB,EACnB,EAAE;IACF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAC1C,IAAI,EAAE;YACJ,OAAO;YACP,aAAa,EAAE,SAAS;YACxB,WAAW;SACZ;KACF,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,aAAa;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;IAC3D,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC7B,KAAK,EAAE,EAAE,OAAO,EAAE;QAClB,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;aACjC;SACF;QACD,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;KACvB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,MAAc,EACd,SAAiB,EACjB,EAAE;IACF,OAAO,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC;QACnC,KAAK,EAAE;YACL,gBAAgB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;SACxC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,MAAc,EACd,SAAiB,EACjB,EAAE;IACF,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;QAC/B,IAAI,EAAE;YACJ,MAAM;YACN,SAAS;YACT,MAAM,EAAE,aAAa;SACtB;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,MAAc,EACd,MAAe,EACf,EAAE;IACF,OAAO,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;QACjC,KAAK,EAAE;YACL,MAAM;YACN,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B;QACD,OAAO,EAAE;YACP,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;iBAC5C;aACF;SACF;QACD,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;KACvB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,aAAqB,EACrB,EAAE;IACF,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;QAC/B,KAAK,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE;QAC5B,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;KAC9B,CAAC,CAAC;AACL,CAAC,CAAC"} \ No newline at end of file diff --git a/modules/missions/repositories/mission.repository.ts b/modules/missions/repositories/mission.repository.ts new file mode 100644 index 0000000..183ed2b --- /dev/null +++ b/modules/missions/repositories/mission.repository.ts @@ -0,0 +1,88 @@ +// src/modules/missions/repositories/mission.repository.ts +import { prisma } from "../../../db.config.js"; + +export const insertMission = async ( + storeId: number, + condition: string, + rewardPoint: number +) => { + const mission = await prisma.mission.create({ + data: { + storeId, + conditionText: condition, + rewardPoint, + }, + }); + + return { + id: mission.id, + storeId: mission.storeId, + condition: mission.conditionText, + rewardPoint: mission.rewardPoint, + }; +}; + +export const findMissionsByStore = async (storeId: number) => { + return prisma.mission.findMany({ + where: { storeId }, + include: { + store: { + select: { id: true, name: true }, + }, + }, + orderBy: { id: "asc" }, + }); +}; + +export const getUserMission = async ( + userId: number, + missionId: number +) => { + return prisma.userMission.findUnique({ + where: { + userId_missionId: { userId, missionId }, + }, + }); +}; + +export const insertUserMission = async ( + userId: number, + missionId: number +) => { + return prisma.userMission.create({ + data: { + userId, + missionId, + status: "IN_PROGRESS", + }, + }); +}; + +export const findUserMissions = async ( + userId: number, + status?: string +) => { + return prisma.userMission.findMany({ + where: { + userId, + ...(status ? { status } : {}), + }, + include: { + mission: { + include: { + store: { select: { id: true, name: true } }, + }, + }, + }, + orderBy: { id: "asc" }, + }); +}; + +export const completeUserMission = async ( + userMissionId: number +) => { + return prisma.userMission.update({ + where: { id: userMissionId }, + data: { status: "COMPLETED" }, + }); +}; diff --git a/modules/missions/services/mission.service.js b/modules/missions/services/mission.service.js new file mode 100644 index 0000000..1de70af --- /dev/null +++ b/modules/missions/services/mission.service.js @@ -0,0 +1,57 @@ +// src/modules/missions/services/mission.service.ts +import { insertMission, getUserMission, insertUserMission, findMissionsByStore, findUserMissions, completeUserMission, } from "../repositories/mission.repository.js"; +export const createMissionService = async (data) => { + return insertMission(data.storeId, data.condition, data.rewardPoint); +}; +export const listStoreMissionsService = async (storeId) => { + const missions = await findMissionsByStore(storeId); + return { + data: missions.map((m) => ({ + missionId: m.id, + content: m.conditionText, + reward: m.rewardPoint, + store: { + id: m.store.id, + name: m.store.name, + }, + })), + }; +}; +export const challengeMissionService = async (userId, missionId) => { + const exists = await getUserMission(userId, missionId); + if (exists) { + if (exists.status === "IN_PROGRESS") { + throw new Error("이미 도전 중인 미션입니다."); + } + if (exists.status === "COMPLETED") { + throw new Error("이미 완료한 미션입니다."); + } + } + const created = await insertUserMission(userId, missionId); + return { + userMissionId: created.id, + status: "IN_PROGRESS", + }; +}; +export const listMyMissionsService = async (userId, status) => { + const missions = await findUserMissions(userId, status); + return missions.map((um) => ({ + id: um.id, + status: um.status.toLowerCase(), + mission: { + id: um.mission.id, + content: um.mission.conditionText, + reward: um.mission.rewardPoint, + deadline: null, + store: { + id: um.mission.store.id, + name: um.mission.store.name, + }, + }, + })); +}; +export const completeMissionService = async (userMissionId) => { + await completeUserMission(userMissionId); + return { success: true }; +}; +//# sourceMappingURL=mission.service.js.map \ No newline at end of file diff --git a/modules/missions/services/mission.service.js.map b/modules/missions/services/mission.service.js.map new file mode 100644 index 0000000..a184383 --- /dev/null +++ b/modules/missions/services/mission.service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mission.service.js","sourceRoot":"","sources":["../../../../src/modules/missions/services/mission.service.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,OAAO,EACL,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,uCAAuC,CAAC;AAE/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,IAI1C,EAAE,EAAE;IACH,OAAO,aAAa,CAClB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,WAAW,CACjB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;IAChE,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAEpD,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzB,SAAS,EAAE,CAAC,CAAC,EAAE;YACf,OAAO,EAAE,CAAC,CAAC,aAAa;YACxB,MAAM,EAAE,CAAC,CAAC,WAAW;YACrB,KAAK,EAAE;gBACL,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;gBACd,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI;aACnB;SACF,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,MAAc,EACd,SAAiB,EACjB,EAAE;IACF,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEvD,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAE3D,OAAO;QACL,aAAa,EAAE,OAAO,CAAC,EAAE;QACzB,MAAM,EAAE,aAAa;KACtB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACxC,MAAc,EACd,MAAe,EACf,EAAE;IACF,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3B,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE;QAC/B,OAAO,EAAE;YACP,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE;YACjB,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa;YACjC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW;YAC9B,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE;gBACL,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACvB,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;aAC5B;SACF;KACF,CAAC,CAAC,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACzC,aAAqB,EACrB,EAAE;IACF,MAAM,mBAAmB,CAAC,aAAa,CAAC,CAAC;IACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC,CAAC"} \ No newline at end of file diff --git a/modules/missions/services/mission.service.ts b/modules/missions/services/mission.service.ts new file mode 100644 index 0000000..08619a5 --- /dev/null +++ b/modules/missions/services/mission.service.ts @@ -0,0 +1,91 @@ +// src/modules/missions/services/mission.service.ts +import { + insertMission, + getUserMission, + insertUserMission, + findMissionsByStore, + findUserMissions, + completeUserMission, +} from "../repositories/mission.repository.js"; +import { + MissionAlreadyInProgressError, + MissionAlreadyCompletedError, +} from "../../../common/errors/error.js"; + +export const createMissionService = async (data: { + storeId: number; + condition: string; + rewardPoint: number; +}) => { + return insertMission( + data.storeId, + data.condition, + data.rewardPoint + ); +}; + +export const listStoreMissionsService = async (storeId: number) => { + const missions = await findMissionsByStore(storeId); + + return missions.map((m) => ({ + missionId: m.id, + content: m.conditionText, + reward: m.rewardPoint, + store: { + id: m.store.id, + name: m.store.name, + }, + })); +}; + +export const challengeMissionService = async ( + userId: number, + missionId: number +) => { + const exists = await getUserMission(userId, missionId); + + if (exists) { + if (exists.status === "IN_PROGRESS") { + throw new MissionAlreadyInProgressError(); + } + if (exists.status === "COMPLETED") { + throw new MissionAlreadyCompletedError(); + } + } + + const created = await insertUserMission(userId, missionId); + + return { + userMissionId: created.id, + status: "IN_PROGRESS", + }; +}; + +export const listMyMissionsService = async ( + userId: number, + status?: string +) => { + const missions = await findUserMissions(userId, status); + + return missions.map((um) => ({ + id: um.id, + status: um.status.toLowerCase(), + mission: { + id: um.mission.id, + content: um.mission.conditionText, + reward: um.mission.rewardPoint, + deadline: null, + store: { + id: um.mission.store.id, + name: um.mission.store.name, + }, + }, + })); +}; + +export const completeMissionService = async ( + userMissionId: number +) => { + await completeUserMission(userMissionId); + return { success: true }; +}; \ No newline at end of file diff --git a/modules/reviews/controllers/review.controller.ts b/modules/reviews/controllers/review.controller.ts new file mode 100644 index 0000000..b275c69 --- /dev/null +++ b/modules/reviews/controllers/review.controller.ts @@ -0,0 +1,52 @@ +// src/modules/reviews/controllers/review.controller.ts +import { Request, Response, NextFunction } from "express"; +import { StatusCodes } from "http-status-codes"; +import { + listStoreReviews, + createReviewService, + listMyReviews, +} from "../services/review.service.js"; +import { success } from "../../../common/responses/response.js"; + +export const handleListStoreReviews = async ( + req: Request<{ storeId: string }, any, any, { cursor?: string }>, + res: Response, + next: NextFunction +) => { + try { + const storeId = Number(req.params.storeId); + const cursor = req.query.cursor ? Number(req.query.cursor) : 0; + const reviews = await listStoreReviews(storeId, cursor); + res.status(StatusCodes.OK).json(success(reviews)); + } catch (err) { + next(err); + } +}; + +export const handleMyReviews = async ( + req: Request<{ userId: string }>, + res: Response, + next: NextFunction +) => { + try { + const userId = Number(req.params.userId); + const reviews = await listMyReviews(userId); + res.status(StatusCodes.OK).json(success(reviews)); + } catch (err) { + next(err); + } +}; + +export const createReview = async ( + req: Request<{ storeId: string }>, + res: Response, + next: NextFunction +) => { + try { + const storeId = Number(req.params.storeId); + const review = await createReviewService(storeId, req.body); + res.status(StatusCodes.CREATED).json(success(review)); + } catch (err) { + next(err); + } +}; diff --git a/modules/reviews/dtos/review.dto.ts b/modules/reviews/dtos/review.dto.ts new file mode 100644 index 0000000..49f51c5 --- /dev/null +++ b/modules/reviews/dtos/review.dto.ts @@ -0,0 +1,25 @@ +// src/modules/reviews/dtos/review.dto.ts +export const previewReviewResponseDTO = (reviews: any[]) => { + const last = reviews[reviews.length - 1]; + + return { + data: reviews.map((r) => ({ + nickname: r.user.name, + rating: r.rating, + content: r.content, + createdAt: r.createdAt, + })), + pagination: { + cursor: last ? last.id : null, + }, + }; +}; + +export const myReviewResponseDTO = (reviews: any[]) => ({ + data: reviews.map((r) => ({ + storeName: r.store.name, + rating: r.rating, + content: r.content, + createdAt: r.createdAt, + })), +}); diff --git a/modules/reviews/repositories/review.repository.ts b/modules/reviews/repositories/review.repository.ts new file mode 100644 index 0000000..b1c84e5 --- /dev/null +++ b/modules/reviews/repositories/review.repository.ts @@ -0,0 +1,64 @@ +// src/modules/reviews/repositories/review.repository.ts +import { prisma } from "../../../db.config.js"; + +// 가게 리뷰 목록 (커서 기반 페이지네이션) +export const getStoreReviewsWithCursor = async ( + storeId: number, + cursor: number, + take = 5 +) => { + return prisma.userStoreReview.findMany({ + where: { + storeId, + id: { + gt: cursor, + }, + }, + orderBy: { + id: "asc", + }, + take, + select: { + id: true, + content: true, + rating: true, + createdAt: true, + user: { + select: { + name: true, + }, + }, + }, + }); +}; + +// 내가 작성한 리뷰 목록 +export const getMyReviews = async (userId: number) => { + return prisma.userStoreReview.findMany({ + where: { userId }, + orderBy: { createdAt: "desc" }, + select: { + id: true, + content: true, + rating: true, + createdAt: true, + store: { + select: { + name: true, + }, + }, + }, + }); +}; + +// 리뷰 생성 +export const createReview = async (data: { + storeId: number; + userId: number; + content: string; + rating: number; +}) => { + return prisma.userStoreReview.create({ + data, + }); +}; diff --git a/modules/reviews/review.route.ts b/modules/reviews/review.route.ts new file mode 100644 index 0000000..aac586a --- /dev/null +++ b/modules/reviews/review.route.ts @@ -0,0 +1,18 @@ +// src/modules/reviews/review.route.ts +import { Router } from "express"; +import { + handleListStoreReviews, + handleMyReviews, + createReview, +} from "./controllers/review.controller.js"; + +const router = Router(); + +// 기존 +router.get("/stores/:storeId/reviews", handleListStoreReviews); +router.post("/stores/:storeId/reviews", createReview); + +// 추가 +router.get("/users/:userId/reviews", handleMyReviews); + +export default router; diff --git a/modules/stores/controllers/store.controller.js b/modules/stores/controllers/store.controller.js new file mode 100644 index 0000000..2b16eff --- /dev/null +++ b/modules/stores/controllers/store.controller.js @@ -0,0 +1,6 @@ +import { createStoreService } from "../services/store.service.js"; +export const createStore = async (req, res) => { + const store = await createStoreService(req.body); + res.status(201).json({ success: true, data: store }); +}; +//# sourceMappingURL=store.controller.js.map \ No newline at end of file diff --git a/modules/stores/controllers/store.controller.js.map b/modules/stores/controllers/store.controller.js.map new file mode 100644 index 0000000..3f5eaf9 --- /dev/null +++ b/modules/stores/controllers/store.controller.js.map @@ -0,0 +1 @@ +{"version":3,"file":"store.controller.js","sourceRoot":"","sources":["../../../../src/modules/stores/controllers/store.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IAC/D,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACvD,CAAC,CAAC"} \ No newline at end of file diff --git a/modules/stores/controllers/store.controller.ts b/modules/stores/controllers/store.controller.ts new file mode 100644 index 0000000..387dbd7 --- /dev/null +++ b/modules/stores/controllers/store.controller.ts @@ -0,0 +1,9 @@ +// src/modules/stores/controllers/store.controller.ts +import { Request, Response } from "express"; +import { createStoreService } from "../services/store.service.js"; +import { success } from "../../../common/responses/response.js"; + +export const createStore = async (req: Request, res: Response) => { + const store = await createStoreService(req.body); + res.status(201).json(success(store)); +}; \ No newline at end of file diff --git a/modules/stores/repositories/store.repository.js b/modules/stores/repositories/store.repository.js new file mode 100644 index 0000000..0906519 --- /dev/null +++ b/modules/stores/repositories/store.repository.js @@ -0,0 +1,6 @@ +// src/modules/stores/repositories/store.repository.ts +import { prisma } from "../../../db.config.js"; +export const insertStore = async (data) => { + return prisma.store.create({ data }); +}; +//# sourceMappingURL=store.repository.js.map \ No newline at end of file diff --git a/modules/stores/repositories/store.repository.js.map b/modules/stores/repositories/store.repository.js.map new file mode 100644 index 0000000..3a1dc33 --- /dev/null +++ b/modules/stores/repositories/store.repository.js.map @@ -0,0 +1 @@ +{"version":3,"file":"store.repository.js","sourceRoot":"","sources":["../../../../src/modules/stores/repositories/store.repository.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,IAAS,EAAE,EAAE;IAC7C,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACvC,CAAC,CAAC"} \ No newline at end of file diff --git a/modules/stores/repositories/store.repository.ts b/modules/stores/repositories/store.repository.ts new file mode 100644 index 0000000..82cc826 --- /dev/null +++ b/modules/stores/repositories/store.repository.ts @@ -0,0 +1,6 @@ +// src/modules/stores/repositories/store.repository.ts +import { prisma } from "../../../db.config.js"; + +export const insertStore = async (data: any) => { + return prisma.store.create({ data }); +}; diff --git a/modules/stores/services/store.service.js b/modules/stores/services/store.service.js new file mode 100644 index 0000000..a6596c0 --- /dev/null +++ b/modules/stores/services/store.service.js @@ -0,0 +1,6 @@ +// src/modules/stores/services/store.service.ts +import { insertStore } from "../repositories/store.repository.js"; +export const createStoreService = async (data) => { + return insertStore(data); +}; +//# sourceMappingURL=store.service.js.map \ No newline at end of file diff --git a/modules/stores/services/store.service.js.map b/modules/stores/services/store.service.js.map new file mode 100644 index 0000000..e153c2e --- /dev/null +++ b/modules/stores/services/store.service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"store.service.js","sourceRoot":"","sources":["../../../../src/modules/stores/services/store.service.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,IAAS,EAAE,EAAE;IACpD,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC,CAAC"} \ No newline at end of file diff --git a/modules/stores/services/store.service.ts b/modules/stores/services/store.service.ts new file mode 100644 index 0000000..aa8499b --- /dev/null +++ b/modules/stores/services/store.service.ts @@ -0,0 +1,6 @@ +// src/modules/stores/services/store.service.ts +import { insertStore } from "../repositories/store.repository.js"; + +export const createStoreService = async (data: any) => { + return insertStore(data); +}; diff --git a/modules/users/controllers/user.controller.ts b/modules/users/controllers/user.controller.ts new file mode 100644 index 0000000..0471c6c --- /dev/null +++ b/modules/users/controllers/user.controller.ts @@ -0,0 +1,93 @@ +// src/modules/users/controllers/user.controller.ts +import { + Body, + Controller, + Get, + Middlewares, + Post, + Request, + Route, + Tags, +} from "tsoa"; + +import { + UserSignUpRequest, + UserSignUpResponse, +} from "../dtos/user.dto.js"; +import { userSignUp } from "../services/user.service.js"; +import { ApiResponse, success } from "../../../common/responses/response.js"; +import { authorizeUser } from "../../../common/middlewares/auth.middleware.js"; +import { Request as ExpressRequest } from "express"; + +@Route("users") +@Tags("Users") +export class UserController extends Controller { + + @Get("guest") + public async handleGuestPage(): Promise { + return ` +

게스트 페이지

+

이 페이지는 로그인이 필요 없습니다.

+
+ `; + } + + @Get("login") + public async handleLoginPage(): Promise { + return ` +

로그인 페이지

+

로그인이 필요한 페이지에서 튕겨나오면 여기로 옵니다.

+ `; + } + + @Get("mypage") + @Middlewares(authorizeUser()) + public async handleMypage( + @Request() req: ExpressRequest, + ): Promise { + return ` +

마이페이지

+

환영합니다, ${req.cookies.username}님!

+

이 페이지는 로그인한 사람만 볼 수 있습니다.

+ `; + } + + @Get("set-login") + public async handleSetLogin( + @Request() req: ExpressRequest, + ): Promise { + req.res!.cookie("username", "UMC10th", { maxAge: 3600000 }); + + return ` + 로그인 완료! + 마이페이지로 이동 + `; + } + + @Get("set-logout") + public async handleSetLogout( + @Request() req: ExpressRequest, + ): Promise { + req.res!.clearCookie("username"); + + return ` + 로그아웃 완료 + 메인으로 이동 + `; + } + + @Post("signup") + public async handleUserSignUp( + @Body() body: UserSignUpRequest, + ): Promise> { + + console.log("회원가입 요청"); + console.log("body:", body); + + const user = await userSignUp(body); + + return success(user); + } +} diff --git a/modules/users/dtos/user.dto.js.map b/modules/users/dtos/user.dto.js.map new file mode 100644 index 0000000..a1e8d50 --- /dev/null +++ b/modules/users/dtos/user.dto.js.map @@ -0,0 +1 @@ +{"version":3,"file":"user.dto.js","sourceRoot":"","sources":["../../../../src/modules/users/dtos/user.dto.ts"],"names":[],"mappings":"AAYA,iBAAiB;AACjB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAuB,EAAE,EAAE;IACpD,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEnC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;QAC3B,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,EAAE;QACvC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC;AACJ,CAAC,CAAC;AAUF,qBAAqB;AACrB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAuC,EACnB,EAAE;IACtB,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAC3B,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;QACtB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;QACpB,cAAc;KACf,CAAC;AACJ,CAAC,CAAC"} \ No newline at end of file diff --git a/modules/users/dtos/user.dto.ts b/modules/users/dtos/user.dto.ts new file mode 100644 index 0000000..cdb2429 --- /dev/null +++ b/modules/users/dtos/user.dto.ts @@ -0,0 +1,19 @@ +// user.dto.ts +import { setPreference } from "../repositories/user.repository.js"; + +// 요청 DTO +export interface UserSignUpRequest { + email: string; + name: string; + gender: string; + birth: Date; + address?: string; // ?가 붙으면 '없을 수도 있음(선택)'이라는 뜻이에요! + detailAddress?: string; + phoneNumber: string; + preferences: number[]; +} +//응답 DTO +export interface UserSignUpResponse { + userId: number; + preferences: string[]; +} diff --git a/modules/users/dtos/user.response.dto.js b/modules/users/dtos/user.response.dto.js new file mode 100644 index 0000000..ab653b1 --- /dev/null +++ b/modules/users/dtos/user.response.dto.js @@ -0,0 +1,9 @@ +// user.response.dto.ts +export const responseFromUser = ({ user, preferences, }) => { + return { + email: user.email, + name: user.name, + preferCategory: preferences.map((p) => p.name), + }; +}; +//# sourceMappingURL=user.response.dto.js.map \ No newline at end of file diff --git a/modules/users/dtos/user.response.dto.js.map b/modules/users/dtos/user.response.dto.js.map new file mode 100644 index 0000000..45d757a --- /dev/null +++ b/modules/users/dtos/user.response.dto.js.map @@ -0,0 +1 @@ +{"version":3,"file":"user.response.dto.js","sourceRoot":"","sources":["../../../../src/modules/users/dtos/user.response.dto.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,IAAI,EACJ,WAAW,GAIZ,EAAE,EAAE;IACH,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,cAAc,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;KAC/C,CAAC;AACJ,CAAC,CAAC"} \ No newline at end of file diff --git a/modules/users/dtos/user.response.dto.ts b/modules/users/dtos/user.response.dto.ts new file mode 100644 index 0000000..6d50f89 --- /dev/null +++ b/modules/users/dtos/user.response.dto.ts @@ -0,0 +1,14 @@ +// user.response.dto.ts +export const responseFromUser = ({ + user, + preferences, +}: { + user: any; + preferences: any[]; +}) => { + return { + email: user.email, + name: user.name, + preferCategory: preferences.map((p) => p.name), + }; +}; diff --git a/modules/users/repositories/user.repository.js b/modules/users/repositories/user.repository.js new file mode 100644 index 0000000..0e18f1a --- /dev/null +++ b/modules/users/repositories/user.repository.js @@ -0,0 +1,42 @@ +// user.repository.ts +import { prisma } from "../../../db.config.js"; +// 유저 생성 +export const addUser = async (data) => { + const exists = await prisma.user.findFirst({ + where: { email: data.email }, + }); + if (exists) + return null; + const created = await prisma.user.create({ + data, + }); + return created.id; +}; +// 유저 단건 조회 +export const getUser = async (userId) => { + return prisma.user.findFirstOrThrow({ + where: { id: userId }, + }); +}; +// 음식 카테고리 선호 설정 +export const setPreference = async (userId, foodCategoryId) => { + await prisma.userFavorCategory.create({ + data: { + userId, + foodCategoryId, + }, + }); +}; +//유저 선호 카테고리 조회 (JOIN → include) +export const getUserPreferencesByUserId = async (userId) => { + return prisma.userFavorCategory.findMany({ + where: { userId }, + include: { + foodCategory: true, + }, + orderBy: { + foodCategoryId: "asc", + }, + }); +}; +//# sourceMappingURL=user.repository.js.map \ No newline at end of file diff --git a/modules/users/repositories/user.repository.js.map b/modules/users/repositories/user.repository.js.map new file mode 100644 index 0000000..4201ccc --- /dev/null +++ b/modules/users/repositories/user.repository.js.map @@ -0,0 +1 @@ +{"version":3,"file":"user.repository.js","sourceRoot":"","sources":["../../../../src/modules/users/repositories/user.repository.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,QAAQ;AACR,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,IAAS,EAAE,EAAE;IACzC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QACzC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;KAC7B,CAAC,CAAC;IAEH,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACvC,IAAI;KACL,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,EAAE,CAAC;AACpB,CAAC,CAAC;AAEF,WAAW;AACX,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;IAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAClC,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;KACtB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,MAAc,EACd,cAAsB,EACtB,EAAE;IACF,MAAM,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC;QACpC,IAAI,EAAE;YACJ,MAAM;YACN,cAAc;SACf;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,gCAAgC;AAChC,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;IACjE,OAAO,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC;QACvC,KAAK,EAAE,EAAE,MAAM,EAAE;QACjB,OAAO,EAAE;YACP,YAAY,EAAE,IAAI;SACnB;QACD,OAAO,EAAE;YACP,cAAc,EAAE,KAAK;SACtB;KACF,CAAC,CAAC;AACL,CAAC,CAAC"} \ No newline at end of file diff --git a/modules/users/repositories/user.repository.ts b/modules/users/repositories/user.repository.ts new file mode 100644 index 0000000..07f58f4 --- /dev/null +++ b/modules/users/repositories/user.repository.ts @@ -0,0 +1,50 @@ +// user.repository.ts +import { prisma } from "../../../db.config.js"; + +// 유저 생성 +export const addUser = async (data: any) => { + const exists = await prisma.user.findFirst({ + where: { email: data.email }, + }); + + if (exists) return null; + + const created = await prisma.user.create({ + data, + }); + + return created.id; +}; + +// 유저 단건 조회 +export const getUser = async (userId: number) => { + return prisma.user.findFirstOrThrow({ + where: { id: userId }, + }); +}; + +// 음식 카테고리 선호 설정 +export const setPreference = async ( + userId: number, + foodCategoryId: number +) => { + await prisma.userFavorCategory.create({ + data: { + userId, + foodCategoryId, + }, + }); +}; + +//유저 선호 카테고리 조회 (JOIN → include) +export const getUserPreferencesByUserId = async (userId: number) => { + return prisma.userFavorCategory.findMany({ + where: { userId }, + include: { + foodCategory: true, + }, + orderBy: { + foodCategoryId: "asc", + }, + }); +}; diff --git a/modules/users/services/user.service.ts b/modules/users/services/user.service.ts new file mode 100644 index 0000000..42de14b --- /dev/null +++ b/modules/users/services/user.service.ts @@ -0,0 +1,42 @@ +// user.service.ts +import { UserSignUpRequest, UserSignUpResponse } from "../dtos/user.dto.js"; +import { + addUser, + getUser, + getUserPreferencesByUserId, + setPreference, +} from "../repositories/user.repository.js"; +import { DuplicateUserEmailError } from "../../../common/errors/error.js"; + +export const userSignUp = async ( + data: UserSignUpRequest +): Promise => { + const joinUserId = await addUser({ + email: data.email, + name: data.name, + gender: data.gender, + birth: new Date(data.birth), + address: data.address, + detailAddress: data.detailAddress, + phoneNumber: data.phoneNumber, + }); + + if (joinUserId === null) { + throw new DuplicateUserEmailError("이미 존재하는 이메일입니다.", data); + } + + for (const preference of data.preferences) { + await setPreference(joinUserId, preference); + } + + const user = await getUser(joinUserId); + const userId = user.id; + const preferences = ( + await getUserPreferencesByUserId(joinUserId) + ).map((obj: any) => obj.foodCategory.name); + + return { + userId, + preferences, + }; +}; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..81f23bb --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3234 @@ +{ + "name": "10th_node", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "10th_node", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@prisma/adapter-mariadb": "^7.8.0", + "@prisma/client": "^6.19.3", + "@types/cookie-parser": "^1.4.10", + "@types/morgan": "^1.9.10", + "bcrypt": "^6.0.0", + "cookie-parser": "^1.4.7", + "dotenv": "^17.4.2", + "express": "^5.2.1", + "morgan": "^1.10.1", + "prisma": "^6.19.3", + "tsoa": "^7.0.0-alpha.0" + }, + "devDependencies": { + "@types/bcrypt": "^6.0.0" + } + }, + "node_modules/@hapi/accept": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-6.0.3.tgz", + "integrity": "sha512-p72f9k56EuF0n3MwlBNThyVE5PXX40g+aQh+C/xbKrfzahM2Oispv3AXmOIU51t3j77zay1qrX7IIziZXspMlw==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/boom": "^10.0.1", + "@hapi/hoek": "^11.0.2" + } + }, + "node_modules/@hapi/ammo": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@hapi/ammo/-/ammo-6.0.1.tgz", + "integrity": "sha512-pmL+nPod4g58kXrMcsGLp05O2jF4P2Q3GiL8qYV7nKYEh3cGf+rV4P5Jyi2Uq0agGhVU63GtaSAfBEZOlrJn9w==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^11.0.2" + } + }, + "node_modules/@hapi/b64": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-6.0.1.tgz", + "integrity": "sha512-ZvjX4JQReUmBheeCq+S9YavcnMMHWqx3S0jHNXWIM1kQDxB9cyfSycpVvjfrKcIS8Mh5N3hmu/YKo4Iag9g2Kw==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^11.0.2" + } + }, + "node_modules/@hapi/boom": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-10.0.1.tgz", + "integrity": "sha512-ERcCZaEjdH3OgSJlyjVk8pHIFeus91CjKP3v+MpgBNp5IvGzP2l/bRiD78nqYcKPaZdbKkK5vDBVPd2ohHBlsA==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^11.0.2" + } + }, + "node_modules/@hapi/bounce": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hapi/bounce/-/bounce-3.0.2.tgz", + "integrity": "sha512-d0XmlTi3H9HFDHhQLjg4F4auL1EY3Wqj7j7/hGDhFFe6xAbnm3qiGrXeT93zZnPH8gH+SKAFYiRzu26xkXcH3g==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/boom": "^10.0.1", + "@hapi/hoek": "^11.0.2" + } + }, + "node_modules/@hapi/bourne": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-3.0.0.tgz", + "integrity": "sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==", + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/call": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@hapi/call/-/call-9.0.1.tgz", + "integrity": "sha512-uPojQRqEL1GRZR4xXPqcLMujQGaEpyVPRyBlD8Pp5rqgIwLhtveF9PkixiKru2THXvuN8mUrLeet5fqxKAAMGg==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/boom": "^10.0.1", + "@hapi/hoek": "^11.0.2" + } + }, + "node_modules/@hapi/catbox": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@hapi/catbox/-/catbox-12.1.1.tgz", + "integrity": "sha512-hDqYB1J+R0HtZg4iPH3LEnldoaBsar6bYp0EonBmNQ9t5CO+1CqgCul2ZtFveW1ReA5SQuze9GPSU7/aecERhw==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/boom": "^10.0.1", + "@hapi/hoek": "^11.0.2", + "@hapi/podium": "^5.0.0", + "@hapi/validate": "^2.0.1" + } + }, + "node_modules/@hapi/catbox-memory": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@hapi/catbox-memory/-/catbox-memory-6.0.2.tgz", + "integrity": "sha512-H1l4ugoFW/ZRkqeFrIo8p1rWN0PA4MDTfu4JmcoNDvnY975o29mqoZblqFTotxNHlEkMPpIiIBJTV+Mbi+aF0g==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/boom": "^10.0.1", + "@hapi/hoek": "^11.0.2" + } + }, + "node_modules/@hapi/content": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@hapi/content/-/content-6.0.2.tgz", + "integrity": "sha512-OKyCOTjNR1hftwSjk9ueyAQTw8AwapvzBrPIWMGn39vhR5PmqLdYFmLc35bsSBye7gSMnlkXfc679bUdMIcRyQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/boom": "^10.0.0" + } + }, + "node_modules/@hapi/cryptiles": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-6.0.3.tgz", + "integrity": "sha512-r6VKalpbMHz4ci3gFjFysBmhwCg70RpYZy6OkjEpdXzAYnYFX5XsW7n4YMJvuIYpnMwLxGUjK/cBhA7X3JDvXw==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/boom": "^10.0.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@hapi/file": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@hapi/file/-/file-3.0.0.tgz", + "integrity": "sha512-w+lKW+yRrLhJu620jT3y+5g2mHqnKfepreykvdOcl9/6up8GrQQn+l3FRTsjHTKbkbfQFkuksHpdv2EcpKcJ4Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/hapi": { + "version": "21.4.9", + "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-21.4.9.tgz", + "integrity": "sha512-YnecZOVx2AD08VvPl0ZaFS0MjEHqg+InGRmBRli731ct+VwI++dpu3BIYA1Z4SMr6HUAnpyvbQ1aq5woe3fBWg==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/accept": "^6.0.3", + "@hapi/ammo": "^6.0.1", + "@hapi/boom": "^10.0.1", + "@hapi/bounce": "^3.0.2", + "@hapi/call": "^9.0.1", + "@hapi/catbox": "^12.1.1", + "@hapi/catbox-memory": "^6.0.2", + "@hapi/heavy": "^8.0.1", + "@hapi/hoek": "^11.0.7", + "@hapi/mimos": "^7.0.1", + "@hapi/podium": "^5.0.2", + "@hapi/shot": "^6.0.2", + "@hapi/somever": "^4.1.1", + "@hapi/statehood": "^8.2.1", + "@hapi/subtext": "^8.1.3", + "@hapi/teamwork": "^6.0.1", + "@hapi/topo": "^6.0.2", + "@hapi/validate": "^2.0.1" + }, + "engines": { + "node": ">=14.15.0" + } + }, + "node_modules/@hapi/heavy": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@hapi/heavy/-/heavy-8.0.1.tgz", + "integrity": "sha512-gBD/NANosNCOp6RsYTsjo2vhr5eYA3BEuogk6cxY0QdhllkkTaJFYtTXv46xd6qhBVMbMMqcSdtqey+UQU3//w==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/boom": "^10.0.1", + "@hapi/hoek": "^11.0.2", + "@hapi/validate": "^2.0.1" + } + }, + "node_modules/@hapi/hoek": { + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-11.0.7.tgz", + "integrity": "sha512-HV5undWkKzcB4RZUusqOpcgxOaq6VOAH7zhhIr2g3G8NF/MlFO75SjOr2NfuSx0Mh40+1FqCkagKLJRykUWoFQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/iron": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-7.0.1.tgz", + "integrity": "sha512-tEZnrOujKpS6jLKliyWBl3A9PaE+ppuL/+gkbyPPDb/l2KSKQyH4lhMkVb+sBhwN+qaxxlig01JRqB8dk/mPxQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/b64": "^6.0.1", + "@hapi/boom": "^10.0.1", + "@hapi/bourne": "^3.0.0", + "@hapi/cryptiles": "^6.0.1", + "@hapi/hoek": "^11.0.2" + } + }, + "node_modules/@hapi/mimos": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@hapi/mimos/-/mimos-7.0.1.tgz", + "integrity": "sha512-b79V+BrG0gJ9zcRx1VGcCI6r6GEzzZUgiGEJVoq5gwzuB2Ig9Cax8dUuBauQCFKvl2YWSWyOc8mZ8HDaJOtkew==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^11.0.2", + "mime-db": "^1.52.0" + } + }, + "node_modules/@hapi/nigel": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@hapi/nigel/-/nigel-5.0.1.tgz", + "integrity": "sha512-uv3dtYuB4IsNaha+tigWmN8mQw/O9Qzl5U26Gm4ZcJVtDdB1AVJOwX3X5wOX+A07qzpEZnOMBAm8jjSqGsU6Nw==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^11.0.2", + "@hapi/vise": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@hapi/pez": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@hapi/pez/-/pez-6.1.1.tgz", + "integrity": "sha512-yg2OS1tC0S1sHXvhUtWsfRn6lrKl9jKtRhZ+EI0woOW/gqX5vM2PZ1459ypCvCYDRLJ9nIyueeEH5MJV1ZDqIg==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/b64": "^6.0.1", + "@hapi/boom": "^10.0.1", + "@hapi/content": "^6.0.1", + "@hapi/hoek": "^11.0.7", + "@hapi/nigel": "^5.0.1" + } + }, + "node_modules/@hapi/podium": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-5.0.2.tgz", + "integrity": "sha512-T7gf2JYHQQfEfewTQFbsaXoZxSvuXO/QBIGljucUQ/lmPnTTNAepoIKOakWNVWvo2fMEDjycu77r8k6dhreqHA==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^11.0.2", + "@hapi/teamwork": "^6.0.0", + "@hapi/validate": "^2.0.1" + } + }, + "node_modules/@hapi/shot": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@hapi/shot/-/shot-6.0.2.tgz", + "integrity": "sha512-WKK1ShfJTrL1oXC0skoIZQYzvLsyMDEF8lfcWuQBjpjCN29qivr9U36ld1z0nt6edvzv28etNMOqUF4klnHryw==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^11.0.2", + "@hapi/validate": "^2.0.1" + } + }, + "node_modules/@hapi/somever": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@hapi/somever/-/somever-4.1.1.tgz", + "integrity": "sha512-lt3QQiDDOVRatS0ionFDNrDIv4eXz58IibQaZQDOg4DqqdNme8oa0iPWcE0+hkq/KTeBCPtEOjDOBKBKwDumVg==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/bounce": "^3.0.1", + "@hapi/hoek": "^11.0.2" + } + }, + "node_modules/@hapi/statehood": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@hapi/statehood/-/statehood-8.2.1.tgz", + "integrity": "sha512-xf72TG/QINW26jUu+uL5H+crE1o8GplIgfPWwPZhnAGJzetIVAQEQYvzq+C0aEVHg5/lMMtQ+L9UryuSa5Yjkg==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/boom": "^10.0.1", + "@hapi/bounce": "^3.0.1", + "@hapi/bourne": "^3.0.0", + "@hapi/cryptiles": "^6.0.1", + "@hapi/hoek": "^11.0.2", + "@hapi/iron": "^7.0.1", + "@hapi/validate": "^2.0.1" + } + }, + "node_modules/@hapi/subtext": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@hapi/subtext/-/subtext-8.1.3.tgz", + "integrity": "sha512-WTpEZQjBP3UJ3gGunNl3w5Ao1EOJsuu2vttZ2KEcG+csSLxc0dI6VIkl2md2jDlHiQ2ARAoqdSUScy05A/NHtA==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/boom": "^10.0.1", + "@hapi/bourne": "^3.0.0", + "@hapi/content": "^6.0.2", + "@hapi/file": "^3.0.0", + "@hapi/hoek": "^11.0.7", + "@hapi/pez": "^6.1.1", + "@hapi/wreck": "^18.1.1" + } + }, + "node_modules/@hapi/teamwork": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-6.0.1.tgz", + "integrity": "sha512-52OXRslUfYwXAOG8k58f2h2ngXYQGP0x5RPOo+eWA/FtyLgHjGMrE3+e9LSXP/0q2YfHAK5wj9aA9DTy1K+kyQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@hapi/topo": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-6.0.2.tgz", + "integrity": "sha512-KR3rD5inZbGMrHmgPxsJ9dbi6zEK+C3ZwUwTa+eMwWLz7oijWUTWD2pMSNNYJAU6Qq+65NkxXjqHr/7LM2Xkqg==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^11.0.2" + } + }, + "node_modules/@hapi/validate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@hapi/validate/-/validate-2.0.1.tgz", + "integrity": "sha512-NZmXRnrSLK8MQ9y/CMqE9WSspgB9xA41/LlYR0k967aSZebWr4yNrpxIbov12ICwKy4APSlWXZga9jN5p6puPA==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^11.0.2", + "@hapi/topo": "^6.0.1" + } + }, + "node_modules/@hapi/vise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@hapi/vise/-/vise-5.0.1.tgz", + "integrity": "sha512-XZYWzzRtINQLedPYlIkSkUr7m5Ddwlu99V9elh8CSygXstfv3UnWIXT0QD+wmR0VAG34d2Vx3olqcEhRRoTu9A==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^11.0.2" + } + }, + "node_modules/@hapi/wreck": { + "version": "18.1.1", + "resolved": "https://registry.npmjs.org/@hapi/wreck/-/wreck-18.1.1.tgz", + "integrity": "sha512-UwTeGBfAnB/1mkw4gD6IQGI/bgMu7iGmqgT8K+xxye3z4ZHhCZlmS2wuHBJmENhBJSKqvoYzJ71ds3Xfq4gofQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/boom": "^10.0.1", + "@hapi/bourne": "^3.0.0", + "@hapi/hoek": "^11.0.2" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@prisma/adapter-mariadb": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@prisma/adapter-mariadb/-/adapter-mariadb-7.8.0.tgz", + "integrity": "sha512-mWsgcfbUjxB3qSzRlLs8E03vsKrqXzYK2zpx3e8u6wIgeHJM/sE46cuOGcYvHiZGmeQLCd3xL6YSSGM9QOLI6w==", + "license": "Apache-2.0", + "dependencies": { + "@prisma/driver-adapter-utils": "7.8.0", + "mariadb": "3.4.5" + } + }, + "node_modules/@prisma/client": { + "version": "6.19.3", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.19.3.tgz", + "integrity": "sha512-mKq3jQFhjvko5LTJFHGilsuQs+W+T3Gm451NzuTDGQxwCzwXHYnIu2zGkRoW+Exq3Rob7yp2MfzSrdIiZVhrBg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "peerDependencies": { + "prisma": "*", + "typescript": ">=5.1.0" + }, + "peerDependenciesMeta": { + "prisma": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/@prisma/config": { + "version": "6.19.3", + "resolved": "https://registry.npmjs.org/@prisma/config/-/config-6.19.3.tgz", + "integrity": "sha512-CBPT44BjlQxEt8kiMEauji2WHTDoVBOKl7UlewXmUgBPnr/oPRZC3psci5chJnYmH0ivEIog2OU9PGWoki3DLQ==", + "license": "Apache-2.0", + "dependencies": { + "c12": "3.1.0", + "deepmerge-ts": "7.1.5", + "effect": "3.21.0", + "empathic": "2.0.0" + } + }, + "node_modules/@prisma/debug": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-7.8.0.tgz", + "integrity": "sha512-p+QZReysDUqXC+mk17q9a+Y/qzh4c2KYliDK30buYUyfrGeTGSyfmc0AIrJRhZJrLHhRiJa9Au/J72h3C+szvA==", + "license": "Apache-2.0" + }, + "node_modules/@prisma/driver-adapter-utils": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@prisma/driver-adapter-utils/-/driver-adapter-utils-7.8.0.tgz", + "integrity": "sha512-/Q13o0ZT0rjc1Xk0Q9KhZYwuq2EW/vSbWUBKfgEKkaCuB/Sg6bqnjmTZqC5cD4d6y1vfFAEwBRzfzoSMIVJ55A==", + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "7.8.0" + } + }, + "node_modules/@prisma/engines": { + "version": "6.19.3", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.19.3.tgz", + "integrity": "sha512-RSYxtlYFl5pJ8ZePgMv0lZ9IzVCOdTPOegrs2qcbAEFrBI1G33h6wyC9kjQvo0DnYEhEVY0X4LsuFHXLKQk88g==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "6.19.3", + "@prisma/engines-version": "7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7", + "@prisma/fetch-engine": "6.19.3", + "@prisma/get-platform": "6.19.3" + } + }, + "node_modules/@prisma/engines-version": { + "version": "7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7.tgz", + "integrity": "sha512-03bgb1VD5gvuumNf+7fVGBzfpJPjmqV423l/WxsWk2cNQ42JD0/SsFBPhN6z8iAvdHs07/7ei77SKu7aZfq8bA==", + "license": "Apache-2.0" + }, + "node_modules/@prisma/engines/node_modules/@prisma/debug": { + "version": "6.19.3", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.19.3.tgz", + "integrity": "sha512-ljkJ+SgpXNktLG0Q/n4JGYCkKf0f8oYLyjImS2I8e2q2WCfdRRtWER062ZV/ixaNP2M2VKlWXVJiGzZaUgbKZw==", + "license": "Apache-2.0" + }, + "node_modules/@prisma/fetch-engine": { + "version": "6.19.3", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.19.3.tgz", + "integrity": "sha512-tKtl/qco9Nt7LU5iKhpultD8O4vMCZcU2CHjNTnRrL1QvSUr5W/GcyFPjNL87GtRrwBc7ubXXD9xy4EvLvt8JA==", + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "6.19.3", + "@prisma/engines-version": "7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7", + "@prisma/get-platform": "6.19.3" + } + }, + "node_modules/@prisma/fetch-engine/node_modules/@prisma/debug": { + "version": "6.19.3", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.19.3.tgz", + "integrity": "sha512-ljkJ+SgpXNktLG0Q/n4JGYCkKf0f8oYLyjImS2I8e2q2WCfdRRtWER062ZV/ixaNP2M2VKlWXVJiGzZaUgbKZw==", + "license": "Apache-2.0" + }, + "node_modules/@prisma/get-platform": { + "version": "6.19.3", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.19.3.tgz", + "integrity": "sha512-xFj1VcJ1N3MKooOQAGO0W5tsd0W2QzIvW7DD7c/8H14Zmp4jseeWAITm+w2LLoLrlhoHdPPh0NMZ8mfL6puoHA==", + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "6.19.3" + } + }, + "node_modules/@prisma/get-platform/node_modules/@prisma/debug": { + "version": "6.19.3", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.19.3.tgz", + "integrity": "sha512-ljkJ+SgpXNktLG0Q/n4JGYCkKf0f8oYLyjImS2I8e2q2WCfdRRtWER062ZV/ixaNP2M2VKlWXVJiGzZaUgbKZw==", + "license": "Apache-2.0" + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" + }, + "node_modules/@tsoa/cli": { + "version": "7.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/@tsoa/cli/-/cli-7.0.0-alpha.0.tgz", + "integrity": "sha512-fCBWv6F20qrpwFh5X+vaZs38Bh/5cVwKPhvG/uArR+crZgEowyNl76unLCmYdvycES9Y6g/TKFLagG8qojSNuQ==", + "license": "MIT", + "dependencies": { + "@tsoa/runtime": "^7.0.0-alpha.0", + "@types/multer": "^1.4.12", + "fs-extra": "^11.2.0", + "glob": "^10.3.10", + "handlebars": "^4.7.8", + "merge-anything": "^5.1.7", + "minimatch": "^9.0.1", + "ts-deepmerge": "^7.0.2", + "typescript": "^5.7.2", + "validator": "^13.12.0", + "yaml": "^2.6.1", + "yargs": "^17.7.1" + }, + "bin": { + "tsoa": "dist/cli.js" + }, + "engines": { + "node": ">=18.0.0", + "yarn": ">=1.9.4" + } + }, + "node_modules/@tsoa/runtime": { + "version": "7.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/@tsoa/runtime/-/runtime-7.0.0-alpha.0.tgz", + "integrity": "sha512-zlWYz2bLfaN6WtFoIbLBEAyVhKG4IQKJ9QPzeRFFKeAsh5zYN4/ocnd14XyWs4ehY9TdtTnma2drW89aYNSRYw==", + "license": "MIT", + "dependencies": { + "@hapi/boom": "^10.0.1", + "@hapi/hapi": "^21.3.12", + "@types/koa": "^2.15.0", + "@types/multer": "^1.4.12", + "express": "^4.21.2", + "reflect-metadata": "^0.2.2", + "validator": "^13.12.0" + }, + "engines": { + "node": ">=18.0.0", + "yarn": ">=1.9.4" + } + }, + "node_modules/@tsoa/runtime/node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@tsoa/runtime/node_modules/body-parser": { + "version": "1.20.5", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.5.tgz", + "integrity": "sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.15.1", + "raw-body": "~2.5.3", + "type-is": "~1.6.18", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/@tsoa/runtime/node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@tsoa/runtime/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/@tsoa/runtime/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/@tsoa/runtime/node_modules/express": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.2.tgz", + "integrity": "sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "~1.20.5", + "content-disposition": "~0.5.4", + "content-type": "~1.0.4", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "~0.1.12", + "proxy-addr": "~2.0.7", + "qs": "~6.15.1", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "~0.19.0", + "serve-static": "~1.16.2", + "setprototypeof": "1.2.0", + "statuses": "~2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/@tsoa/runtime/node_modules/finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/@tsoa/runtime/node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@tsoa/runtime/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@tsoa/runtime/node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@tsoa/runtime/node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@tsoa/runtime/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@tsoa/runtime/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@tsoa/runtime/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@tsoa/runtime/node_modules/path-to-regexp": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", + "license": "MIT" + }, + "node_modules/@tsoa/runtime/node_modules/raw-body": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/@tsoa/runtime/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/@tsoa/runtime/node_modules/send": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.4.1", + "range-parser": "~1.2.1", + "statuses": "~2.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/@tsoa/runtime/node_modules/serve-static": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "~0.19.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/@tsoa/runtime/node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@types/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/bcrypt": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@types/bcrypt/-/bcrypt-6.0.0.tgz", + "integrity": "sha512-/oJGukuH3D2+D+3H4JWLaAsJ/ji86dhRidzZ/Od7H/i8g+aCmvkeCc6Ni/f9uxGLSQVCRZkX2/lqEFG2BvWtlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/content-disposition": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.9.tgz", + "integrity": "sha512-8uYXI3Gw35MhiVYhG3s295oihrxRyytcRHjSjqnqZVDDy/xcGBRny7+Xj1Wgfhv5QzRtN2hB2dVRBUX9XW3UcQ==", + "license": "MIT" + }, + "node_modules/@types/cookie-parser": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/@types/cookie-parser/-/cookie-parser-1.4.10.tgz", + "integrity": "sha512-B4xqkqfZ8Wek+rCOeRxsjMS9OgvzebEzzLYw7NHYuvzb7IdxOkI0ZHGgeEBX4PUM7QGVvNSK60T3OvWj3YfBRg==", + "license": "MIT", + "peerDependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/cookies": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.9.2.tgz", + "integrity": "sha512-1AvkDdZM2dbyFybL4fxpuNCaWyv//0AwsuUk2DWeXyM1/5ZKm6W3z6mQi24RZ4l2ucY+bkSHzbDVpySqPGuV8A==", + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/express": "*", + "@types/keygrip": "*", + "@types/node": "*" + } + }, + "node_modules/@types/express": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.6.tgz", + "integrity": "sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==", + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^5.0.0", + "@types/serve-static": "^2" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.1.tgz", + "integrity": "sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "license": "MIT" + }, + "node_modules/@types/http-assert": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.6.tgz", + "integrity": "sha512-TTEwmtjgVbYAzZYWyeHPrrtWnfVkm8tQkP8P21uQifPgMRgjrow3XDEYqucuC8SKZJT7pUnhU/JymvjggxO9vw==", + "license": "MIT" + }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "license": "MIT" + }, + "node_modules/@types/keygrip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.6.tgz", + "integrity": "sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==", + "license": "MIT" + }, + "node_modules/@types/koa": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.15.0.tgz", + "integrity": "sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g==", + "license": "MIT", + "dependencies": { + "@types/accepts": "*", + "@types/content-disposition": "*", + "@types/cookies": "*", + "@types/http-assert": "*", + "@types/http-errors": "*", + "@types/keygrip": "*", + "@types/koa-compose": "*", + "@types/node": "*" + } + }, + "node_modules/@types/koa-compose": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.9.tgz", + "integrity": "sha512-BroAZ9FTvPiCy0Pi8tjD1OfJ7bgU1gQf0eR6e1Vm+JJATy9eKOG3hQMFtMciMawiSOVnLMdmUOC46s7HBhSTsA==", + "license": "MIT", + "dependencies": { + "@types/koa": "*" + } + }, + "node_modules/@types/morgan": { + "version": "1.9.10", + "resolved": "https://registry.npmjs.org/@types/morgan/-/morgan-1.9.10.tgz", + "integrity": "sha512-sS4A1zheMvsADRVfT0lYbJ4S9lmsey8Zo2F7cnbYjWHP67Q0AwMYuuzLlkIM2N8gAbb9cubhIVFwcIN2XyYCkA==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/multer": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.13.tgz", + "integrity": "sha512-bhhdtPw7JqCiEfC9Jimx5LqX9BDIPJEh2q/fQ4bqbBPtyEZYr3cvF22NwG0DmPZNYA0CAf2CnqDB4KIGGpJcaw==", + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/node": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.7.0.tgz", + "integrity": "sha512-z+pdZyxE+RTQE9AcboAZCb4otwcrvgHD+GlBpPgn0emDVt0ohrTMhAwlr2Wd9nZ+nihhYFxO2pThz3C5qSu2Eg==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.21.0" + } + }, + "node_modules/@types/qs": { + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==", + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==", + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*" + } + }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/bcrypt": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-6.0.0.tgz", + "integrity": "sha512-cU8v/EGSrnH+HnxV2z0J7/blxH8gq7Xh2JFT6Aroax7UohdmiJJlxApMxtKfuI7z68NvvVcmR78k2LbT6efhRg==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^8.3.0", + "node-gyp-build": "^4.8.4" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/body-parser": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", + "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.3", + "http-errors": "^2.0.0", + "iconv-lite": "^0.7.0", + "on-finished": "^2.4.1", + "qs": "^6.14.1", + "raw-body": "^3.0.1", + "type-is": "^2.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/brace-expansion": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/c12": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/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/c12/node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/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.npmjs.org/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", + "license": "MIT", + "dependencies": { + "consola": "^3.2.3" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/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.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/content-disposition": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", + "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-parser": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.7.tgz", + "integrity": "sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==", + "license": "MIT", + "dependencies": { + "cookie": "0.7.2", + "cookie-signature": "1.0.6" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/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/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deepmerge-ts": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/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.npmjs.org/defu/-/defu-6.1.7.tgz", + "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", + "license": "MIT" + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", + "license": "MIT" + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dotenv": { + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz", + "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "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/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/effect": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/effect/-/effect-3.21.0.tgz", + "integrity": "sha512-PPN80qRokCd1f015IANNhrwOnLO7GrrMQfk4/lnZRE/8j7UPWrNNjPV0uBrZutI/nHzernbW+J0hdqQysHiSnQ==", + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "fast-check": "^3.23.1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/empathic": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/empathic/-/empathic-2.0.0.tgz", + "integrity": "sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/exsolve": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", + "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==", + "license": "MIT" + }, + "node_modules/fast-check": { + "version": "3.23.2", + "resolved": "https://registry.npmjs.org/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/finalhandler": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/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/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fs-extra": { + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.5.tgz", + "integrity": "sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "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-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "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.npmjs.org/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/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "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/handlebars": { + "version": "4.7.9", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.9.tgz", + "integrity": "sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/iconv-lite": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/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/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "license": "MIT", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/mariadb": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/mariadb/-/mariadb-3.4.5.tgz", + "integrity": "sha512-gThTYkhIS5rRqkVr+Y0cIdzr+GRqJ9sA2Q34e0yzmyhMCwyApf3OKAC1jnF23aSlIOqJuyaUFUcj7O1qZslmmQ==", + "license": "LGPL-2.1-or-later", + "dependencies": { + "@types/geojson": "^7946.0.16", + "@types/node": "^24.0.13", + "denque": "^2.1.0", + "iconv-lite": "^0.6.3", + "lru-cache": "^10.4.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/mariadb/node_modules/@types/node": { + "version": "24.12.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.4.tgz", + "integrity": "sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/mariadb/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mariadb/node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/merge-anything": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/merge-anything/-/merge-anything-5.1.7.tgz", + "integrity": "sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==", + "license": "MIT", + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/morgan": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.1.tgz", + "integrity": "sha512-223dMRJtI/l25dJKWpgij2cMtywuG/WiUKXdvwfbhGKBhy1puASqXwFzmWZ7+K73vUPoR7SS2Qz2cI/g9MKw0A==", + "license": "MIT", + "dependencies": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.1.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/morgan/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/morgan/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/morgan/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/node-addon-api": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.7.0.tgz", + "integrity": "sha512-9MdFxmkKaOYVTV+XVRG8ArDwwQ77XIgIPyKASB1k3JPq3M8fGQQQE3YpMOrKm6g//Ktx8ivZr8xo1Qmtqub+GA==", + "license": "MIT", + "engines": { + "node": "^18 || ^20 || >= 21" + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", + "license": "MIT" + }, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/nypm": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.6.tgz", + "integrity": "sha512-vRyr0r4cbBapw07Xw8xrj9Teq3o7MUD35rSaTcanDbW+aK2XHDgJFiU6ZTj2GBw7Q12ysdsyFss+Vdz4hQ0Y6Q==", + "license": "MIT", + "dependencies": { + "citty": "^0.2.2", + "pathe": "^2.0.3", + "tinyexec": "^1.1.1" + }, + "bin": { + "nypm": "dist/cli.mjs" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/nypm/node_modules/citty": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.2.2.tgz", + "integrity": "sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==", + "license": "MIT" + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ohash": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-to-regexp": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", + "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/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.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "license": "MIT" + }, + "node_modules/pkg-types": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.1.tgz", + "integrity": "sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==", + "license": "MIT", + "dependencies": { + "confbox": "^0.2.4", + "exsolve": "^1.0.8", + "pathe": "^2.0.3" + } + }, + "node_modules/prisma": { + "version": "6.19.3", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-6.19.3.tgz", + "integrity": "sha512-++ZJ0ijLrDJF6hNB4t4uxg2br3fC4H9Yc9tcbjr2fcNFP3rh/SBNrAgjhsqBU4Ght8JPrVofG/ZkXfnSfnYsFg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/config": "6.19.3", + "@prisma/engines": "6.19.3" + }, + "bin": { + "prisma": "build/index.js" + }, + "engines": { + "node": ">=18.18" + }, + "peerDependencies": { + "typescript": ">=5.1.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/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/qs": { + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/rc9": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz", + "integrity": "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==", + "license": "MIT", + "dependencies": { + "defu": "^6.1.4", + "destr": "^2.0.3" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/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/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "license": "Apache-2.0" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serve-static": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/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.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/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": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tinyexec": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.2.tgz", + "integrity": "sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ts-deepmerge": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-deepmerge/-/ts-deepmerge-7.0.3.tgz", + "integrity": "sha512-Du/ZW2RfwV/D4cmA5rXafYjBQVuvu4qGiEEla4EmEHVHgRdx68Gftx7i66jn2bzHPwSVZY36Ae6OuDn9el4ZKA==", + "license": "ISC", + "engines": { + "node": ">=14.13.1" + } + }, + "node_modules/tsoa": { + "version": "7.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/tsoa/-/tsoa-7.0.0-alpha.0.tgz", + "integrity": "sha512-o5h2DD1IKa2GF728BHYDL2uSX57a44sX8BLFScR4KbD0xlOmgsSDECneJmouDxf9MJdjHHWc+I1S3sGK82B6kQ==", + "license": "MIT", + "dependencies": { + "@tsoa/cli": "^7.0.0-alpha.0", + "@tsoa/runtime": "^7.0.0-alpha.0" + }, + "bin": { + "tsoa": "dist/cli.js" + }, + "engines": { + "node": ">=18.0.0", + "yarn": ">=1.9.4" + } + }, + "node_modules/type-is": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", + "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==", + "license": "MIT", + "dependencies": { + "content-type": "^2.0.0", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/type-is/node_modules/content-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz", + "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/undici-types": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.21.0.tgz", + "integrity": "sha512-w9IMgQrz4O0YN1LtB7K5P63vhlIOvC7opSmouCJ+ZywlPAlO9gIkJ+otk6LvGpAs2wg4econaCz3TvQ9xPoyuQ==", + "license": "MIT" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/validator": { + "version": "13.15.35", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.35.tgz", + "integrity": "sha512-TQ5pAGhd5whStmqWvYF4OjQROlmv9SMFVt37qoCBdqRffuuklWYQlCNnEs2ZaIBD1kZRNnikiZOS1eqgkar0iw==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/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/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yaml": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", + "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..f7a1595 --- /dev/null +++ b/package.json @@ -0,0 +1,38 @@ +{ + "name": "10th_node", + "version": "1.0.0", + "type": "module", + "description": "본인의 브랜치에서만 작업하고, `main` 브랜치는 직접 수정하지 않습니다.", + "main": "index.js", + "scripts": { + "start": "tsoa spec-and-routes && tsx src/index.ts", + "dev": "tsoa spec-and-routes && nodemon --exec tsx src/index.ts" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/SWU-UMC/10th_Node.js.git" + }, + "keywords": [], + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/SWU-UMC/10th_Node.js/issues" + }, + "homepage": "https://github.com/SWU-UMC/10th_Node.js#readme", + "dependencies": { + "@prisma/adapter-mariadb": "^7.8.0", + "@prisma/client": "^6.19.3", + "@types/cookie-parser": "^1.4.10", + "@types/morgan": "^1.9.10", + "bcrypt": "^6.0.0", + "cookie-parser": "^1.4.7", + "dotenv": "^17.4.2", + "express": "^5.2.1", + "morgan": "^1.10.1", + "prisma": "^6.19.3", + "tsoa": "^7.0.0-alpha.0" + }, + "devDependencies": { + "@types/bcrypt": "^6.0.0" + } +} diff --git a/schema.prisma b/schema.prisma new file mode 100644 index 0000000..b7f9307 --- /dev/null +++ b/schema.prisma @@ -0,0 +1,93 @@ +generator client { + provider = "prisma-client.js" +} + +datasource db { + provider = "mysql" + url = env("DATABASE_URL") +} + +model User { + id Int @id @default(autoincrement()) + email String @unique(map: "email") @db.VarChar(255) + name String @db.VarChar(100) + gender String @db.VarChar(15) + birth DateTime @db.Date + address String @db.VarChar(255) + detailAddress String? @map("detail_address") @db.VarCh ar(255) + phoneNumber String @map("phone_number") @db.VarChar(15) + + userFavorCategories UserFavorCategory[] + storeReviews UserStoreReview[] + userMissions UserMission[] + + @@map("user") +} + +model FoodCategory { + id Int @id @default(autoincrement()) + name String @db.VarChar(100) + + userFavorCategories UserFavorCategory[] + + @@map("food_category") +} + +model UserFavorCategory { + id Int @id @default(autoincrement()) + user User @relation(fields: [userId], references: [id]) + userId Int @map("user_id") + foodCategory FoodCategory @relation(fields: [foodCategoryId], references: [id]) + foodCategoryId Int @map("food_category_id") + + @@index([foodCategoryId], map: "f_category_id") + @@index([userId], map: "user_id") + @@map("user_favor_category") +} + +model Store { + id Int @id @default(autoincrement()) + name String @db.VarChar(100) + + reviews UserStoreReview[] + missions Mission[] + + @@map("store") +} + +model UserStoreReview { + id Int @id @default(autoincrement()) + content String @db.Text + rating Float + createdAt DateTime @default(now()) + + store Store @relation(fields: [storeId], references: [id]) + storeId Int + user User @relation(fields: [userId], references: [id]) + userId Int +} + +model Mission { + id Int @id @default(autoincrement()) + storeId Int @map("store_id") + conditionText String @map("condition_text") + rewardPoint Int @map("reward_point") + + store Store @relation(fields: [storeId], references: [id]) + userMissions UserMission[] + + @@map("mission") +} + +model UserMission { + id Int @id @default(autoincrement()) + userId Int @map("user_id") + missionId Int @map("mission_id") + status String + + user User @relation(fields: [userId], references: [id]) + mission Mission @relation(fields: [missionId], references: [id]) + + @@unique([userId, missionId]) + @@map("user_mission") +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..c5ae0a2 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + /* 프로젝트 구조 설정 */ + "rootDir": "./src", // 소스 코드(.ts)가 모여있는 폴더예요. + "outDir": "./dist", // 컴파일된 결과물(.js)이 저장될 폴더예요. + "experimentalDecorators": true, + + /* 언어 및 모듈 설정 (4주차에서 배운 ESM 방식을 유지해요!) */ + "target": "ESNext", + "module": "NodeNext", // 최신 Node.js의 모듈 시스템(ESM)을 사용합니다. + "moduleResolution": "NodeNext", + "lib": ["ESNext"], // 최신 자바스크립트 표준 기능을 사용할 수 있게 해줘요. + + /* 엄격한 검사 옵션 (에러를 미리 잡는 핵심!) */ + "strict": true, + "noUncheckedIndexedAccess": true, + + /* 기타 추천 옵션 */ + "skipLibCheck": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "sourceMap": true + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] // 빌드 결과물(dist)도 검사에서 제외하는 게 좋아요! +} \ No newline at end of file diff --git a/tsoa.json b/tsoa.json new file mode 100644 index 0000000..356c81a --- /dev/null +++ b/tsoa.json @@ -0,0 +1,13 @@ +{ + "entryFile": "src/index.ts", + "noImplicitAdditionalProperties": "throw-on-extras", + "controllerPathGlobs": ["src/**/*.controller.ts"], + "spec": { + "outputDirectory": "dist", + "specVersion": 3 + }, + "routes": { + "routesDir": "src/generated" + } +} +