Compare commits
13 Commits
ac288bd948
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 1baf37ae41 | |||
| efa258fdde | |||
| cab2eaa22c | |||
| 49a74cf4df | |||
| e0a99cc455 | |||
| 1214b7e98a | |||
| 369b3bf133 | |||
| d15eab2421 | |||
| b71fb89832 | |||
| 788f1d24f7 | |||
| 48b52edd38 | |||
| 714b2d8bae | |||
| f51580e8ea |
18
.github/workflows/cron.yml
vendored
18
.github/workflows/cron.yml
vendored
@@ -1,7 +1,8 @@
|
||||
name: Daily Cron (Make New DailyStats Document)
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
- cron: "0 5 * * *"
|
||||
|
||||
jobs:
|
||||
cron:
|
||||
runs-on: ubuntu-24.04
|
||||
@@ -12,16 +13,7 @@ jobs:
|
||||
- name: Daily cron job | Create new dailyStats document.
|
||||
run: |
|
||||
curl --request POST \
|
||||
--url 'bot-stats.lucids-cove.duckdns.org/api/graphql' \
|
||||
--url 'https://bot-stats.lucids-cove.duckdns.org/api/graphql' \
|
||||
--header 'x-api-key: ${{ secrets.NEXT_PUBLIC_API_TOKEN }}' \
|
||||
--data '{
|
||||
"query": "mutation Cron {
|
||||
cronJob(mutationKey: ${{ secrets.GRAPHQL_MUTATION_KEY }}) {
|
||||
commandResponses
|
||||
createdAt
|
||||
linksDeleted
|
||||
timesTriggered
|
||||
updatedAt
|
||||
}
|
||||
}"
|
||||
}'
|
||||
--header 'Content-Type: application/json' \
|
||||
--data '{ "query": "mutation Cron { cronJob ( mutationKey: \"${{ secrets.GRAPHQL_MUTATION_KEY }}\" ) { commandResponses createdAt linksDeleted timesTriggered updatedAt } }" }' \
|
||||
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -40,4 +40,4 @@ yarn-error.log*
|
||||
*.tsbuildinfo
|
||||
next-env.d.ts
|
||||
|
||||
/generated/prisma
|
||||
/src/prisma/generated
|
||||
|
||||
45
package.json
45
package.json
@@ -12,47 +12,48 @@
|
||||
"prisma-update": "yarn prisma db push"
|
||||
},
|
||||
"dependencies": {
|
||||
"@chakra-ui/charts": "^3.30.0",
|
||||
"@chakra-ui/react": "^3.30.0",
|
||||
"@chakra-ui/charts": "^3.31.0",
|
||||
"@chakra-ui/react": "^3.31.0",
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@escape.tech/graphql-armor": "^3.1.7",
|
||||
"@prisma/client": "^6.19.0",
|
||||
"@prisma/extension-accelerate": "^2.0.2",
|
||||
"@escape.tech/graphql-armor": "^3.2.0",
|
||||
"@prisma/client": "^6.19.2",
|
||||
"@prisma/extension-accelerate": "^3.0.1",
|
||||
"@urql/next": "^2.0.0",
|
||||
"dotenv": "^17.2.3",
|
||||
"graphql": "^16.12.0",
|
||||
"graphql-scalars": "^1.25.0",
|
||||
"graphql-yoga": "^5.17.1",
|
||||
"next": "16.0.7",
|
||||
"graphql-yoga": "^5.18.0",
|
||||
"next": "16.1.5",
|
||||
"next-themes": "^0.4.6",
|
||||
"react": "19.2.1",
|
||||
"react-dom": "19.2.1",
|
||||
"react": "19.2.4",
|
||||
"react-dom": "19.2.4",
|
||||
"react-icons": "^5.5.0",
|
||||
"recharts": "^3.5.1",
|
||||
"recharts": "^3.7.0",
|
||||
"rxjs": "^7.8.2",
|
||||
"urql": "^5.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/eslintrc": "^3.3.3",
|
||||
"@eslint/js": "^9.39.1",
|
||||
"@eslint/js": "^9.39.2",
|
||||
"@iconify/react": "^6.0.2",
|
||||
"@types/node": "^24.10.1",
|
||||
"@types/react": "^19.2.7",
|
||||
"@types/node": "^25.0.10",
|
||||
"@types/react": "^19.2.10",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"@typescript-eslint/eslint-plugin": "^8.48.1",
|
||||
"@typescript-eslint/parser": "^8.48.1",
|
||||
"eslint": "^9.39.1",
|
||||
"eslint-config-next": "16.0.7",
|
||||
"@typescript-eslint/eslint-plugin": "^8.54.0",
|
||||
"@typescript-eslint/parser": "^8.54.0",
|
||||
"baseline-browser-mapping": "^2.9.18",
|
||||
"eslint": "^9.39.2",
|
||||
"eslint-config-next": "16.1.5",
|
||||
"eslint-config-prettier": "^10.1.8",
|
||||
"eslint-plugin-jsx-a11y": "^6.10.2",
|
||||
"eslint-plugin-prettier": "^5.5.4",
|
||||
"eslint-plugin-prettier": "^5.5.5",
|
||||
"eslint-plugin-react": "^7.37.5",
|
||||
"eslint-plugin-react-hooks": "^7.0.1",
|
||||
"prettier": "3.7.4",
|
||||
"prisma": "^6.19.0",
|
||||
"prettier": "3.8.1",
|
||||
"prisma": "^6.19.2",
|
||||
"tsx": "^4.21.0",
|
||||
"typescript": "^5.9.3",
|
||||
"typescript-eslint": "^8.48.1"
|
||||
"typescript-eslint": "^8.54.0"
|
||||
},
|
||||
"packageManager": "yarn@4.11.0"
|
||||
"packageManager": "yarn@4.12.0"
|
||||
}
|
||||
|
||||
57
src/app/CommandsListTable.tsx
Normal file
57
src/app/CommandsListTable.tsx
Normal file
@@ -0,0 +1,57 @@
|
||||
import { JSX } from "react";
|
||||
import { Checkmark, Heading, Table, VStack } from "@chakra-ui/react";
|
||||
import botCommands from "@/data/botCommands";
|
||||
|
||||
const CommandsListTable = (): JSX.Element => {
|
||||
return (
|
||||
<VStack gap={6} w={{ base: "90%", md: "100%" }}>
|
||||
<Heading as="h3" fontSize="3xl">
|
||||
{"Bot Commands"}
|
||||
</Heading>
|
||||
<Table.Root maxW="fit-content" interactive showColumnBorder>
|
||||
<Table.Caption>
|
||||
{"The bot will only respond to admins and moderators within groups."}
|
||||
</Table.Caption>
|
||||
<Table.Header>
|
||||
<Table.Row bg="cyan.emphasized">
|
||||
<Table.ColumnHeader> {"Command"}</Table.ColumnHeader>
|
||||
<Table.ColumnHeader> {"Description"}</Table.ColumnHeader>
|
||||
<Table.ColumnHeader> {"Private"}</Table.ColumnHeader>
|
||||
<Table.ColumnHeader> {"Group"}</Table.ColumnHeader>
|
||||
</Table.Row>
|
||||
</Table.Header>
|
||||
<Table.Body>
|
||||
{botCommands.map((commandObj, index) => {
|
||||
const { command, description, groups } = commandObj;
|
||||
return (
|
||||
<Table.Row
|
||||
key={`${index}-${command}`}
|
||||
bg="cyan.muted"
|
||||
_hover={{ bg: "purple.emphasized" }}
|
||||
>
|
||||
<Table.Cell>{command}</Table.Cell>
|
||||
<Table.Cell>{description.replaceAll("\\", "")}</Table.Cell>
|
||||
<Table.Cell>
|
||||
{groups ? (
|
||||
<Checkmark colorPalette="purple" checked />
|
||||
) : (
|
||||
<Checkmark colorPalette="purple" indeterminate />
|
||||
)}
|
||||
</Table.Cell>
|
||||
<Table.Cell>
|
||||
{commandObj.private ? (
|
||||
<Checkmark colorPalette="purple" checked />
|
||||
) : (
|
||||
<Checkmark colorPalette="purple" indeterminate />
|
||||
)}
|
||||
</Table.Cell>
|
||||
</Table.Row>
|
||||
);
|
||||
})}
|
||||
</Table.Body>
|
||||
</Table.Root>
|
||||
</VStack>
|
||||
);
|
||||
};
|
||||
|
||||
export default CommandsListTable;
|
||||
@@ -41,7 +41,7 @@ const StatsList = ({
|
||||
groups >= 0 ? (
|
||||
<SingleStatComponent
|
||||
loading={loading}
|
||||
title="Groups Bot Helped"
|
||||
title="Groups Helped"
|
||||
error={error}
|
||||
stat={groups}
|
||||
/>
|
||||
@@ -55,13 +55,13 @@ const StatsList = ({
|
||||
/>
|
||||
<SingleStatComponent
|
||||
loading={loading}
|
||||
title="Commands Responded To"
|
||||
title="Commands Responses"
|
||||
error={error}
|
||||
stat={commands}
|
||||
/>
|
||||
<SingleStatComponent
|
||||
loading={loading}
|
||||
title="Times Triggered"
|
||||
title="Triggers"
|
||||
error={error}
|
||||
stat={triggers}
|
||||
/>
|
||||
|
||||
@@ -13,7 +13,7 @@ const TimedTriggeredChart = ({
|
||||
return (
|
||||
<VStack gap={6} w="100%">
|
||||
<Heading as="h4" fontSize="2xl">{`Times Bot Was Triggered`}</Heading>
|
||||
<LineChartComponent data={lineChartData} label="Times Triggered" />
|
||||
<LineChartComponent data={lineChartData} label="Triggers" />
|
||||
</VStack>
|
||||
);
|
||||
};
|
||||
|
||||
37
src/app/api/bot/route.ts
Normal file
37
src/app/api/bot/route.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import { headers } from "next/headers";
|
||||
import botCommands from "@/data/botCommands";
|
||||
|
||||
const environment = process.env.NODE_ENV || "development";
|
||||
|
||||
const isValidApiKey = (apiKey: string): boolean => {
|
||||
const envApiKey =
|
||||
process.env.API_TOKEN || process.env.NEXT_PUBLIC_API_TOKEN || "";
|
||||
|
||||
return apiKey === envApiKey;
|
||||
};
|
||||
|
||||
export async function GET(/*request: Request*/) {
|
||||
const headersList = await headers();
|
||||
const apiKey = headersList.get("x-api-key");
|
||||
|
||||
if (environment === "production") {
|
||||
if (!apiKey || apiKey == null) {
|
||||
return new Response("No API Key provided", {
|
||||
status: 401,
|
||||
headers: headersList
|
||||
});
|
||||
}
|
||||
|
||||
if (apiKey !== null && !(await isValidApiKey(apiKey))) {
|
||||
return new Response("Invalid API Key", {
|
||||
status: 403,
|
||||
headers: headersList
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return Response.json(botCommands, {
|
||||
status: 200,
|
||||
headers: headersList
|
||||
});
|
||||
}
|
||||
@@ -34,9 +34,9 @@ export default function RootLayout({
|
||||
return [client, ssr];
|
||||
}, []);
|
||||
|
||||
const title = "Nazi Site Patrol Stats";
|
||||
const title = "Anti Nazi-Sites Bot Stats";
|
||||
const description =
|
||||
"A website to display various stats for the Nazi Site Patrol bot for Telegram. Developed and maintained by Werewolf Kid Creations.";
|
||||
"A website to display various stats for the Anti Nazi-Sites bot for Telegram. Developed and maintained by Werewolf Kid Creations.";
|
||||
const url = "https://bot-stats.werewolfkid.monster";
|
||||
const img = "/images/SPD-arrows.svg";
|
||||
const domain = "werewolfkid.monster";
|
||||
|
||||
@@ -23,6 +23,7 @@ import GetTotalGroupsQuery from "@/graphql/queries/getTotalGroups";
|
||||
import GetTotalStatsQuery from "@/graphql/queries/getTotalStats";
|
||||
import GetTodaysStatsQuery from "@/graphql/queries/getTodaysStats";
|
||||
import GetStatsRange from "@/graphql/queries/getStatsRange";
|
||||
import CommandsListTable from "./CommandsListTable";
|
||||
|
||||
export default function Home() {
|
||||
// * Total Groups * //
|
||||
@@ -93,7 +94,14 @@ export default function Home() {
|
||||
|
||||
return (
|
||||
<Fragment>
|
||||
<VStack bg="cyan.950" minH="100vh" h="100%" py="5vh" minW="fit-content">
|
||||
<VStack
|
||||
bg="cyan.950"
|
||||
minH="100dvh"
|
||||
h="100%"
|
||||
py="5dvh"
|
||||
minW="fit-content"
|
||||
textAlign="center"
|
||||
>
|
||||
<VStack w={{ base: "100%", md: "90%" }} gap={10} minW="fit-content">
|
||||
<VStack w="80%" gap={10}>
|
||||
<Icon h="7.5rem" color="whiteAlpha">
|
||||
@@ -114,8 +122,12 @@ export default function Home() {
|
||||
</svg>
|
||||
</Icon>
|
||||
<VStack gap={4} maxW="34rem">
|
||||
<Heading as="h1" fontSize="5xl">
|
||||
{"Anti Nazi Sites Bot Stats"}
|
||||
<Heading
|
||||
as="h1"
|
||||
fontSize="5xl"
|
||||
lineHeight={{ base: "3rem", md: "" }}
|
||||
>
|
||||
{"Anti Nazi-Sites Bot Stats"}
|
||||
</Heading>
|
||||
<Heading
|
||||
as="h2"
|
||||
@@ -124,7 +136,7 @@ export default function Home() {
|
||||
textAlign="center"
|
||||
>
|
||||
{
|
||||
"A telegram bot that removes links and embeds to sites that align with the Fascist Right political agenda."
|
||||
"A Telegram bot that deletes links and embeds to sites that align with the Fascist Right political agenda or are otherwise a safety/privacy risk."
|
||||
}
|
||||
</Heading>
|
||||
</VStack>
|
||||
@@ -141,6 +153,7 @@ export default function Home() {
|
||||
</Text>
|
||||
</VStack>
|
||||
</VStack>
|
||||
<CommandsListTable />
|
||||
<VStack gap={10} w="100%">
|
||||
{totalGroups ? (
|
||||
<StatsList
|
||||
@@ -183,7 +196,7 @@ export default function Home() {
|
||||
/>
|
||||
)}
|
||||
</VStack>
|
||||
<VStack w="95%" gap="5vh">
|
||||
<VStack w="95%" gap="5dvh">
|
||||
<VStack gap={1}>
|
||||
<Heading as="h1" fontSize="3xl">{`30 Day Stats`}</Heading>
|
||||
<Text textAlign="center" fontSize="sm" color="whiteAlpha.800">
|
||||
@@ -229,13 +242,21 @@ export default function Home() {
|
||||
rgb(147, 40, 142)
|
||||
)`}
|
||||
w="100%"
|
||||
py="5vh"
|
||||
py="5dvh"
|
||||
textAlign="center"
|
||||
>
|
||||
<VStack
|
||||
color="white"
|
||||
textShadow="0px 0px 5px black;"
|
||||
WebkitTextStroke="0.3px black;"
|
||||
textShadow={`
|
||||
2px 2px 0 #000,
|
||||
2px -2px 0 #000,
|
||||
-2px 2px 0 #000,
|
||||
-2px -2px 0 #000,
|
||||
2px 0px 0 #000,
|
||||
0px 2px 0 #000,
|
||||
-2px 0px 0 #000,
|
||||
0px -2px 0 #000
|
||||
`}
|
||||
gap={6}
|
||||
w="100%"
|
||||
>
|
||||
@@ -244,17 +265,19 @@ export default function Home() {
|
||||
minW="fit-content"
|
||||
w={{ base: "100%", sm: "auto" }}
|
||||
bg="blackAlpha.600"
|
||||
maxW={{ base: "", sm: "62vw" }}
|
||||
maxW={{ base: "", sm: "62dvw" }}
|
||||
px={2}
|
||||
>
|
||||
{"Down with fascism! Fuck MAGA! Fuck Trump! Fuck Nazis!"}
|
||||
{
|
||||
"Down with fascism! Fuck MAGA! Fuck Trump! Fuck Nazis! Abolish ICE!"
|
||||
}
|
||||
</Text>
|
||||
<Text
|
||||
fontSize="3xl"
|
||||
minW="fit-content"
|
||||
w={{ base: "100%", sm: "auto" }}
|
||||
bg="blackAlpha.600"
|
||||
maxW={{ base: "", sm: "62vw" }}
|
||||
maxW={{ base: "", sm: "62dvw" }}
|
||||
px={2}
|
||||
>
|
||||
{
|
||||
|
||||
@@ -11,7 +11,7 @@ import {
|
||||
import { LineChartArr } from "@/types/LineChartStats";
|
||||
|
||||
interface LineChartComponentProps {
|
||||
label: "Times Triggered" | "Links Deleted" | "Command Responses";
|
||||
label: "Triggers" | "Links Deleted" | "Command Responses";
|
||||
data: LineChartArr;
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ const LineChartComponent = ({
|
||||
});
|
||||
|
||||
return (
|
||||
<Chart.Root maxH="xs" chart={chart} maxW="100vw">
|
||||
<Chart.Root maxH="xs" chart={chart} maxW="100dvw">
|
||||
<LineChart data={chart.data}>
|
||||
<CartesianGrid stroke={chart.color("border")} vertical={false} />
|
||||
<XAxis
|
||||
|
||||
56
src/data/botCommands.ts
Normal file
56
src/data/botCommands.ts
Normal file
@@ -0,0 +1,56 @@
|
||||
// * Commands *
|
||||
|
||||
interface Commands {
|
||||
command: String;
|
||||
description: String;
|
||||
groups: boolean;
|
||||
private: boolean;
|
||||
}
|
||||
|
||||
const botInfo: Commands = {
|
||||
command: "/botInfo",
|
||||
description:
|
||||
"Lists information about the bot such as: creator, reason for my creation, purpose and goal, etc",
|
||||
groups: true,
|
||||
private: true
|
||||
};
|
||||
|
||||
const getGroupStats: Commands = {
|
||||
command: "/groupStats",
|
||||
description:
|
||||
"Displays the number of times the bot has deleted links in your group for the lifetime of the bot",
|
||||
groups: true,
|
||||
private: false
|
||||
};
|
||||
|
||||
const help: Commands = {
|
||||
command: "/help",
|
||||
description:
|
||||
"Lists information about how to setup the bot and the list of available commands",
|
||||
groups: true,
|
||||
private: true
|
||||
};
|
||||
|
||||
const registerGroup: Commands = {
|
||||
command: "/registerGroup",
|
||||
description: `Will add your group to the database, if your group doesn't exist already\\. This is used to calculate the "total groups" count on the bot stats website`,
|
||||
groups: true,
|
||||
private: true
|
||||
};
|
||||
|
||||
const botStatsSite: Commands = {
|
||||
command: "/botStats",
|
||||
description: "Provides the bot stats website link as an embed",
|
||||
groups: true,
|
||||
private: true
|
||||
};
|
||||
|
||||
const commands: Commands[] = [
|
||||
botInfo,
|
||||
getGroupStats,
|
||||
help,
|
||||
registerGroup,
|
||||
botStatsSite
|
||||
];
|
||||
|
||||
export default commands;
|
||||
@@ -243,7 +243,7 @@ export const resolvers = {
|
||||
increment: async (
|
||||
_parent: unknown,
|
||||
data: {
|
||||
link: boolean;
|
||||
link: number;
|
||||
command: boolean;
|
||||
trigger: boolean;
|
||||
mutationKey?: string;
|
||||
@@ -282,7 +282,7 @@ export const resolvers = {
|
||||
return await prisma.dailyStats.update({
|
||||
where: { createdAt: latestDailyStats.createdAt },
|
||||
data: {
|
||||
linksDeleted: { increment: link ? 1 : 0 },
|
||||
linksDeleted: { increment: link ? link : 0 },
|
||||
commandResponses: { increment: command ? 1 : 0 },
|
||||
timesTriggered: { increment: trigger ? 1 : 0 }
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ const typeDefs = /* GraphQL */ `
|
||||
}
|
||||
type Mutation {
|
||||
init(mutationKey: String): String!
|
||||
cronJob(mutationKey: String): TotalStats!
|
||||
cronJob(mutationKey: String): TotalStats
|
||||
addGroup(
|
||||
groupID: String!
|
||||
groupName: String!
|
||||
@@ -26,7 +26,7 @@ const typeDefs = /* GraphQL */ `
|
||||
mutationKey: String
|
||||
): Groups!
|
||||
increment(
|
||||
link: Boolean
|
||||
link: Int
|
||||
command: Boolean
|
||||
trigger: Boolean
|
||||
mutationKey: String
|
||||
|
||||
@@ -15,7 +15,7 @@ const lineChartArr = (dailyStatsArr: DailyStats): LineChartArr => {
|
||||
day,
|
||||
"Links Deleted": linksDeleted,
|
||||
"Command Responses": commandResponses,
|
||||
"Times Triggered": timesTriggered
|
||||
Triggers: timesTriggered
|
||||
};
|
||||
|
||||
lineChartArr.push(lineChartItem);
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
|
||||
/* !!! 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'
|
||||
export { Prisma }
|
||||
export * as $Enums from './enums'
|
||||
export * from './enums';
|
||||
/**
|
||||
* Model Groups
|
||||
*
|
||||
*/
|
||||
export type Groups = Prisma.GroupsModel
|
||||
/**
|
||||
* Model TotalStats
|
||||
*
|
||||
*/
|
||||
export type TotalStats = Prisma.TotalStatsModel
|
||||
/**
|
||||
* Model DailyStats
|
||||
*
|
||||
*/
|
||||
export type DailyStats = Prisma.DailyStatsModel
|
||||
@@ -1,61 +0,0 @@
|
||||
|
||||
/* !!! 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"
|
||||
import * as $Class from "./internal/class"
|
||||
import * as Prisma from "./internal/prismaNamespace"
|
||||
|
||||
export * as $Enums from './enums'
|
||||
export * from "./enums"
|
||||
/**
|
||||
* ## Prisma Client
|
||||
*
|
||||
* Type-safe database client for TypeScript
|
||||
* @example
|
||||
* ```
|
||||
* const prisma = new PrismaClient()
|
||||
* // Fetch zero or more Groups
|
||||
* const groups = await prisma.groups.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<LogOpts extends Prisma.LogLevel = never, OmitOpts extends Prisma.PrismaClientOptions["omit"] = Prisma.PrismaClientOptions["omit"], ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = $Class.PrismaClient<LogOpts, OmitOpts, ExtArgs>
|
||||
export { Prisma }
|
||||
|
||||
|
||||
// file annotations for bundling tools to include these files
|
||||
path.join(__dirname, "libquery_engine-debian-openssl-3.0.x.so.node")
|
||||
path.join(process.cwd(), "src/prisma/generated/libquery_engine-debian-openssl-3.0.x.so.node")
|
||||
|
||||
/**
|
||||
* Model Groups
|
||||
*
|
||||
*/
|
||||
export type Groups = Prisma.GroupsModel
|
||||
/**
|
||||
* Model TotalStats
|
||||
*
|
||||
*/
|
||||
export type TotalStats = Prisma.TotalStatsModel
|
||||
/**
|
||||
* Model DailyStats
|
||||
*
|
||||
*/
|
||||
export type DailyStats = Prisma.DailyStatsModel
|
||||
@@ -1,250 +0,0 @@
|
||||
|
||||
/* !!! 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"
|
||||
import type * as Prisma from "./internal/prismaNamespace"
|
||||
|
||||
|
||||
export type BigIntFilter<$PrismaModel = never> = {
|
||||
equals?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>
|
||||
in?: bigint[] | number[] | Prisma.ListBigIntFieldRefInput<$PrismaModel>
|
||||
notIn?: bigint[] | number[] | Prisma.ListBigIntFieldRefInput<$PrismaModel>
|
||||
lt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>
|
||||
lte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>
|
||||
gt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>
|
||||
gte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>
|
||||
not?: Prisma.NestedBigIntFilter<$PrismaModel> | bigint | number
|
||||
}
|
||||
|
||||
export type StringFilter<$PrismaModel = never> = {
|
||||
equals?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
||||
in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>
|
||||
notIn?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>
|
||||
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>
|
||||
mode?: Prisma.QueryMode
|
||||
not?: Prisma.NestedStringFilter<$PrismaModel> | string
|
||||
}
|
||||
|
||||
export type DateTimeFilter<$PrismaModel = never> = {
|
||||
equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
||||
in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>
|
||||
notIn?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>
|
||||
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 BigIntWithAggregatesFilter<$PrismaModel = never> = {
|
||||
equals?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>
|
||||
in?: bigint[] | number[] | Prisma.ListBigIntFieldRefInput<$PrismaModel>
|
||||
notIn?: bigint[] | number[] | Prisma.ListBigIntFieldRefInput<$PrismaModel>
|
||||
lt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>
|
||||
lte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>
|
||||
gt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>
|
||||
gte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>
|
||||
not?: Prisma.NestedBigIntWithAggregatesFilter<$PrismaModel> | bigint | number
|
||||
_count?: Prisma.NestedIntFilter<$PrismaModel>
|
||||
_avg?: Prisma.NestedFloatFilter<$PrismaModel>
|
||||
_sum?: Prisma.NestedBigIntFilter<$PrismaModel>
|
||||
_min?: Prisma.NestedBigIntFilter<$PrismaModel>
|
||||
_max?: Prisma.NestedBigIntFilter<$PrismaModel>
|
||||
}
|
||||
|
||||
export type StringWithAggregatesFilter<$PrismaModel = never> = {
|
||||
equals?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
||||
in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>
|
||||
notIn?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>
|
||||
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>
|
||||
mode?: Prisma.QueryMode
|
||||
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[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>
|
||||
notIn?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>
|
||||
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 IntFilter<$PrismaModel = never> = {
|
||||
equals?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
||||
in?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>
|
||||
notIn?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>
|
||||
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 IntWithAggregatesFilter<$PrismaModel = never> = {
|
||||
equals?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
||||
in?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>
|
||||
notIn?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>
|
||||
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 NestedBigIntFilter<$PrismaModel = never> = {
|
||||
equals?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>
|
||||
in?: bigint[] | number[] | Prisma.ListBigIntFieldRefInput<$PrismaModel>
|
||||
notIn?: bigint[] | number[] | Prisma.ListBigIntFieldRefInput<$PrismaModel>
|
||||
lt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>
|
||||
lte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>
|
||||
gt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>
|
||||
gte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>
|
||||
not?: Prisma.NestedBigIntFilter<$PrismaModel> | bigint | number
|
||||
}
|
||||
|
||||
export type NestedStringFilter<$PrismaModel = never> = {
|
||||
equals?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
||||
in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>
|
||||
notIn?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>
|
||||
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>
|
||||
not?: Prisma.NestedStringFilter<$PrismaModel> | string
|
||||
}
|
||||
|
||||
export type NestedDateTimeFilter<$PrismaModel = never> = {
|
||||
equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
||||
in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>
|
||||
notIn?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>
|
||||
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 NestedBigIntWithAggregatesFilter<$PrismaModel = never> = {
|
||||
equals?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>
|
||||
in?: bigint[] | number[] | Prisma.ListBigIntFieldRefInput<$PrismaModel>
|
||||
notIn?: bigint[] | number[] | Prisma.ListBigIntFieldRefInput<$PrismaModel>
|
||||
lt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>
|
||||
lte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>
|
||||
gt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>
|
||||
gte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel>
|
||||
not?: Prisma.NestedBigIntWithAggregatesFilter<$PrismaModel> | bigint | number
|
||||
_count?: Prisma.NestedIntFilter<$PrismaModel>
|
||||
_avg?: Prisma.NestedFloatFilter<$PrismaModel>
|
||||
_sum?: Prisma.NestedBigIntFilter<$PrismaModel>
|
||||
_min?: Prisma.NestedBigIntFilter<$PrismaModel>
|
||||
_max?: Prisma.NestedBigIntFilter<$PrismaModel>
|
||||
}
|
||||
|
||||
export type NestedIntFilter<$PrismaModel = never> = {
|
||||
equals?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
||||
in?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>
|
||||
notIn?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>
|
||||
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 NestedFloatFilter<$PrismaModel = never> = {
|
||||
equals?: number | Prisma.FloatFieldRefInput<$PrismaModel>
|
||||
in?: number[] | Prisma.ListFloatFieldRefInput<$PrismaModel>
|
||||
notIn?: number[] | Prisma.ListFloatFieldRefInput<$PrismaModel>
|
||||
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[] | Prisma.ListStringFieldRefInput<$PrismaModel>
|
||||
notIn?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>
|
||||
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>
|
||||
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[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>
|
||||
notIn?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>
|
||||
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 NestedIntWithAggregatesFilter<$PrismaModel = never> = {
|
||||
equals?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
||||
in?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>
|
||||
notIn?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>
|
||||
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>
|
||||
}
|
||||
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
|
||||
/* !!! 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 {}
|
||||
@@ -1,206 +0,0 @@
|
||||
|
||||
/* !!! 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"
|
||||
|
||||
|
||||
const config: runtime.GetPrismaClientConfig = {
|
||||
"generator": {
|
||||
"name": "client",
|
||||
"provider": {
|
||||
"fromEnvVar": null,
|
||||
"value": "prisma-client"
|
||||
},
|
||||
"output": {
|
||||
"value": "/home/lucid/work/cove-gitea/no-twitter-bot-stats/src/prisma/generated",
|
||||
"fromEnvVar": null
|
||||
},
|
||||
"config": {
|
||||
"engineType": "library"
|
||||
},
|
||||
"binaryTargets": [
|
||||
{
|
||||
"fromEnvVar": null,
|
||||
"value": "debian-openssl-3.0.x",
|
||||
"native": true
|
||||
}
|
||||
],
|
||||
"previewFeatures": [],
|
||||
"sourceFilePath": "/home/lucid/work/cove-gitea/no-twitter-bot-stats/src/prisma/schema.prisma",
|
||||
"isCustomOutput": true
|
||||
},
|
||||
"relativePath": "..",
|
||||
"clientVersion": "6.19.0",
|
||||
"engineVersion": "2ba551f319ab1df4bc874a89965d8b3641056773",
|
||||
"datasourceNames": [
|
||||
"db"
|
||||
],
|
||||
"activeProvider": "mongodb",
|
||||
"postinstall": false,
|
||||
"inlineDatasources": {
|
||||
"db": {
|
||||
"url": {
|
||||
"fromEnvVar": "DATABASE_URL",
|
||||
"value": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"inlineSchema": "// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\n// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?\n// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"generated\"\n}\n\ndatasource db {\n provider = \"mongodb\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel Groups {\n telegramID BigInt @id @map(\"_id\") @db.Long\n name String\n username String @default(\"\")\n linksDeleted BigInt @default(0) @db.Long\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now()) @updatedAt\n}\n\nmodel TotalStats {\n createdAt DateTime @id @default(now()) @map(\"_id\")\n updatedAt DateTime @default(now()) @updatedAt\n linksDeleted BigInt @default(0) @db.Long\n commandResponses BigInt @default(0) @db.Long\n timesTriggered BigInt @default(0) @db.Long\n}\n\nmodel DailyStats {\n createdAt DateTime @id @default(now()) @map(\"_id\")\n updatedAt DateTime @default(now()) @updatedAt\n linksDeleted Int @default(0) @db.Int\n commandResponses Int @default(0) @db.Int\n timesTriggered Int @default(0) @db.Int\n}\n",
|
||||
"inlineSchemaHash": "7ad3413e48bf8457ce655de4b457d4b5629952ca6a037b0fe084bc063b32d97d",
|
||||
"copyEngine": true,
|
||||
"runtimeDataModel": {
|
||||
"models": {},
|
||||
"enums": {},
|
||||
"types": {}
|
||||
},
|
||||
"dirname": ""
|
||||
}
|
||||
|
||||
config.runtimeDataModel = JSON.parse("{\"models\":{\"Groups\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"telegramID\",\"dbName\":\"_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":[\"Long\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"username\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"linksDeleted\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"BigInt\",\"nativeType\":[\"Long\",[]],\"default\":\"0\",\"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\":\"updatedAt\",\"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\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"TotalStats\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"createdAt\",\"dbName\":\"_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"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\":true},{\"name\":\"linksDeleted\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"BigInt\",\"nativeType\":[\"Long\",[]],\"default\":\"0\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"commandResponses\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"BigInt\",\"nativeType\":[\"Long\",[]],\"default\":\"0\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"timesTriggered\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"BigInt\",\"nativeType\":[\"Long\",[]],\"default\":\"0\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"DailyStats\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"createdAt\",\"dbName\":\"_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"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\":true},{\"name\":\"linksDeleted\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":[\"Int\",[]],\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"commandResponses\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":[\"Int\",[]],\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"timesTriggered\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":[\"Int\",[]],\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}")
|
||||
config.engineWasm = undefined
|
||||
config.compilerWasm = undefined
|
||||
|
||||
|
||||
|
||||
|
||||
export type LogOptions<ClientOptions extends Prisma.PrismaClientOptions> =
|
||||
'log' extends keyof ClientOptions ? ClientOptions['log'] extends Array<Prisma.LogLevel | Prisma.LogDefinition> ? Prisma.GetEvents<ClientOptions['log']> : never : never
|
||||
|
||||
export interface PrismaClientConstructor {
|
||||
/**
|
||||
* ## Prisma Client
|
||||
*
|
||||
* Type-safe database client for TypeScript
|
||||
* @example
|
||||
* ```
|
||||
* const prisma = new PrismaClient()
|
||||
* // Fetch zero or more Groups
|
||||
* const groups = await prisma.groups.findMany()
|
||||
* ```
|
||||
*
|
||||
* Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client).
|
||||
*/
|
||||
|
||||
new <
|
||||
Options extends Prisma.PrismaClientOptions = Prisma.PrismaClientOptions,
|
||||
LogOpts extends LogOptions<Options> = LogOptions<Options>,
|
||||
OmitOpts extends Prisma.PrismaClientOptions['omit'] = Options extends { omit: infer U } ? U : Prisma.PrismaClientOptions['omit'],
|
||||
ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs
|
||||
>(options?: Prisma.Subset<Options, Prisma.PrismaClientOptions> ): PrismaClient<LogOpts, OmitOpts, ExtArgs>
|
||||
}
|
||||
|
||||
/**
|
||||
* ## Prisma Client
|
||||
*
|
||||
* Type-safe database client for TypeScript
|
||||
* @example
|
||||
* ```
|
||||
* const prisma = new PrismaClient()
|
||||
* // Fetch zero or more Groups
|
||||
* const groups = await prisma.groups.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<ExtArgs>['other'] }
|
||||
|
||||
$on<V extends LogOpts>(eventType: V, callback: (event: V extends 'query' ? Prisma.QueryEvent : Prisma.LogEvent) => void): PrismaClient;
|
||||
|
||||
/**
|
||||
* Connect with the database
|
||||
*/
|
||||
$connect(): runtime.Types.Utils.JsPromise<void>;
|
||||
|
||||
/**
|
||||
* Disconnect from the database
|
||||
*/
|
||||
$disconnect(): runtime.Types.Utils.JsPromise<void>;
|
||||
|
||||
/**
|
||||
* Allows the running of a sequence of read/write operations that are guaranteed to either succeed or fail as a whole.
|
||||
* @example
|
||||
* ```
|
||||
* const [george, bob, alice] = await prisma.$transaction([
|
||||
* prisma.user.create({ data: { name: 'George' } }),
|
||||
* prisma.user.create({ data: { name: 'Bob' } }),
|
||||
* prisma.user.create({ data: { name: 'Alice' } }),
|
||||
* ])
|
||||
* ```
|
||||
*
|
||||
* Read more in our [docs](https://www.prisma.io/docs/concepts/components/prisma-client/transactions).
|
||||
*/
|
||||
$transaction<P extends Prisma.PrismaPromise<any>[]>(arg: [...P]): runtime.Types.Utils.JsPromise<runtime.Types.Utils.UnwrapTuple<P>>
|
||||
|
||||
$transaction<R>(fn: (prisma: Omit<PrismaClient, runtime.ITXClientDenyList>) => runtime.Types.Utils.JsPromise<R>, options?: { maxWait?: number, timeout?: number }): runtime.Types.Utils.JsPromise<R>
|
||||
|
||||
/**
|
||||
* Executes a raw MongoDB command and returns the result of it.
|
||||
* @example
|
||||
* ```
|
||||
* const user = await prisma.$runCommandRaw({
|
||||
* aggregate: 'User',
|
||||
* pipeline: [{ $match: { name: 'Bob' } }, { $project: { email: true, _id: false } }],
|
||||
* explain: false,
|
||||
* })
|
||||
* ```
|
||||
*
|
||||
* Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access).
|
||||
*/
|
||||
$runCommandRaw(command: Prisma.InputJsonObject): Prisma.PrismaPromise<Prisma.JsonObject>
|
||||
|
||||
$extends: runtime.Types.Extensions.ExtendsHook<"extends", Prisma.TypeMapCb<OmitOpts>, ExtArgs, runtime.Types.Utils.Call<Prisma.TypeMapCb<OmitOpts>, {
|
||||
extArgs: ExtArgs
|
||||
}>>
|
||||
|
||||
/**
|
||||
* `prisma.groups`: Exposes CRUD operations for the **Groups** model.
|
||||
* Example usage:
|
||||
* ```ts
|
||||
* // Fetch zero or more Groups
|
||||
* const groups = await prisma.groups.findMany()
|
||||
* ```
|
||||
*/
|
||||
get groups(): Prisma.GroupsDelegate<ExtArgs, { omit: OmitOpts }>;
|
||||
|
||||
/**
|
||||
* `prisma.totalStats`: Exposes CRUD operations for the **TotalStats** model.
|
||||
* Example usage:
|
||||
* ```ts
|
||||
* // Fetch zero or more TotalStats
|
||||
* const totalStats = await prisma.totalStats.findMany()
|
||||
* ```
|
||||
*/
|
||||
get totalStats(): Prisma.TotalStatsDelegate<ExtArgs, { omit: OmitOpts }>;
|
||||
|
||||
/**
|
||||
* `prisma.dailyStats`: Exposes CRUD operations for the **DailyStats** model.
|
||||
* Example usage:
|
||||
* ```ts
|
||||
* // Fetch zero or more DailyStats
|
||||
* const dailyStats = await prisma.dailyStats.findMany()
|
||||
* ```
|
||||
*/
|
||||
get dailyStats(): Prisma.DailyStatsDelegate<ExtArgs, { omit: OmitOpts }>;
|
||||
}
|
||||
|
||||
export function getPrismaClientClass(dirname: string): PrismaClientConstructor {
|
||||
config.dirname = dirname
|
||||
return runtime.getPrismaClient(config) as unknown as PrismaClientConstructor
|
||||
}
|
||||
@@ -1,930 +0,0 @@
|
||||
|
||||
/* !!! 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"
|
||||
import { type PrismaClient } from "./class"
|
||||
|
||||
export type * from '../models'
|
||||
|
||||
export type DMMF = typeof runtime.DMMF
|
||||
|
||||
export type PrismaPromise<T> = runtime.Types.Public.PrismaPromise<T>
|
||||
|
||||
/**
|
||||
* 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<T> = runtime.Metric<T>
|
||||
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<T, F extends runtime.Operation> = runtime.Types.Public.Args<T, F>
|
||||
export type Payload<T, F extends runtime.Operation = never> = runtime.Types.Public.Payload<T, F>
|
||||
export type Result<T, A, F extends runtime.Operation> = runtime.Types.Public.Result<T, A, F>
|
||||
export type Exact<A, W> = runtime.Types.Public.Exact<A, W>
|
||||
|
||||
export type PrismaVersion = {
|
||||
client: string
|
||||
engine: string
|
||||
}
|
||||
|
||||
/**
|
||||
* Prisma Client JS version: 6.19.0
|
||||
* Query Engine version: 2ba551f319ab1df4bc874a89965d8b3641056773
|
||||
*/
|
||||
export const prismaVersion: PrismaVersion = {
|
||||
client: "6.19.0",
|
||||
engine: "2ba551f319ab1df4bc874a89965d8b3641056773"
|
||||
}
|
||||
|
||||
/**
|
||||
* 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<T, K extends keyof T> = {
|
||||
[P in K]: T[P];
|
||||
};
|
||||
|
||||
export type Enumerable<T> = T | Array<T>;
|
||||
|
||||
/**
|
||||
* Subset
|
||||
* @desc From `T` pick properties that exist in `U`. Simple version of Intersection
|
||||
*/
|
||||
export type Subset<T, U> = {
|
||||
[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<T, U> = {
|
||||
[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<T, U, K> = {
|
||||
[key in keyof T]: key extends keyof U ? T[key] : never
|
||||
} &
|
||||
K
|
||||
|
||||
type Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: 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, U> =
|
||||
T extends object ?
|
||||
U extends object ?
|
||||
(Without<T, U> & U) | (Without<U, T> & T)
|
||||
: U : T
|
||||
|
||||
|
||||
/**
|
||||
* Is T a Record?
|
||||
*/
|
||||
type IsObject<T extends any> = T extends Array<any>
|
||||
? 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 unknown> = T extends Array<infer U> ? U : T
|
||||
|
||||
/**
|
||||
* From ts-toolbelt
|
||||
*/
|
||||
|
||||
type __Either<O extends object, K extends Key> = Omit<O, K> &
|
||||
{
|
||||
// Merge all but K
|
||||
[P in K]: Prisma__Pick<O, P & keyof O> // With K possibilities
|
||||
}[K]
|
||||
|
||||
type EitherStrict<O extends object, K extends Key> = Strict<__Either<O, K>>
|
||||
|
||||
type EitherLoose<O extends object, K extends Key> = ComputeRaw<__Either<O, K>>
|
||||
|
||||
type _Either<
|
||||
O extends object,
|
||||
K extends Key,
|
||||
strict extends Boolean
|
||||
> = {
|
||||
1: EitherStrict<O, K>
|
||||
0: EitherLoose<O, K>
|
||||
}[strict]
|
||||
|
||||
export type Either<
|
||||
O extends object,
|
||||
K extends Key,
|
||||
strict extends Boolean = 1
|
||||
> = O extends unknown ? _Either<O, K, strict> : never
|
||||
|
||||
export type Union = any
|
||||
|
||||
export type PatchUndefined<O extends object, O1 extends object> = {
|
||||
[K in keyof O]: O[K] extends undefined ? At<O1, K> : O[K]
|
||||
} & {}
|
||||
|
||||
/** Helper Types for "Merge" **/
|
||||
export type IntersectOf<U extends Union> = (
|
||||
U extends unknown ? (k: U) => void : never
|
||||
) extends (k: infer I) => void
|
||||
? I
|
||||
: never
|
||||
|
||||
export type Overwrite<O extends object, O1 extends object> = {
|
||||
[K in keyof O]: K extends keyof O1 ? O1[K] : O[K];
|
||||
} & {};
|
||||
|
||||
type _Merge<U extends object> = IntersectOf<Overwrite<U, {
|
||||
[K in keyof U]-?: At<U, K>;
|
||||
}>>;
|
||||
|
||||
type Key = string | number | symbol;
|
||||
type AtStrict<O extends object, K extends Key> = O[K & keyof O];
|
||||
type AtLoose<O extends object, K extends Key> = O extends unknown ? AtStrict<O, K> : never;
|
||||
export type At<O extends object, K extends Key, strict extends Boolean = 1> = {
|
||||
1: AtStrict<O, K>;
|
||||
0: AtLoose<O, K>;
|
||||
}[strict];
|
||||
|
||||
export type ComputeRaw<A extends any> = A extends Function ? A : {
|
||||
[K in keyof A]: A[K];
|
||||
} & {};
|
||||
|
||||
export type OptionalFlat<O> = {
|
||||
[K in keyof O]?: O[K];
|
||||
} & {};
|
||||
|
||||
type _Record<K extends keyof any, T> = {
|
||||
[P in K]: T;
|
||||
};
|
||||
|
||||
// cause typescript not to expand types and preserve names
|
||||
type NoExpand<T> = T extends unknown ? T : never;
|
||||
|
||||
// this type assumes the passed object is entirely optional
|
||||
export type AtLeast<O extends object, K extends string> = 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, _U = U> = U extends unknown ? U & OptionalFlat<_Record<Exclude<Keys<_U>, keyof U>, never>> : never;
|
||||
|
||||
export type Strict<U extends object> = ComputeRaw<_Strict<U>>;
|
||||
/** End Helper Types for "Merge" **/
|
||||
|
||||
export type Merge<U extends object> = ComputeRaw<_Merge<Strict<U>>>;
|
||||
|
||||
export type Boolean = True | False
|
||||
|
||||
export type True = 1
|
||||
|
||||
export type False = 0
|
||||
|
||||
export type Not<B extends Boolean> = {
|
||||
0: 1
|
||||
1: 0
|
||||
}[B]
|
||||
|
||||
export type Extends<A1 extends any, A2 extends any> = [A1] extends [never]
|
||||
? 0 // anything `never` is false
|
||||
: A1 extends A2
|
||||
? 1
|
||||
: 0
|
||||
|
||||
export type Has<U extends Union, U1 extends Union> = Not<
|
||||
Extends<Exclude<U1, U>, U1>
|
||||
>
|
||||
|
||||
export type Or<B1 extends Boolean, B2 extends Boolean> = {
|
||||
0: {
|
||||
0: 0
|
||||
1: 1
|
||||
}
|
||||
1: {
|
||||
0: 1
|
||||
1: 1
|
||||
}
|
||||
}[B1][B2]
|
||||
|
||||
export type Keys<U extends Union> = U extends unknown ? keyof U : never
|
||||
|
||||
export type GetScalarType<T, O> = O extends object ? {
|
||||
[P in keyof T]: P extends keyof O
|
||||
? O[P]
|
||||
: never
|
||||
} : never
|
||||
|
||||
type FieldPaths<
|
||||
T,
|
||||
U = Omit<T, '_avg' | '_sum' | '_count' | '_min' | '_max'>
|
||||
> = IsObject<T> extends True ? U : T
|
||||
|
||||
export type GetHavingFields<T> = {
|
||||
[K in keyof T]: Or<
|
||||
Or<Extends<'OR', K>, 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<UnEnumerate<TK> extends object ? Merge<UnEnumerate<TK>> : never>
|
||||
: never
|
||||
: {} extends FieldPaths<T[K]>
|
||||
? never
|
||||
: K
|
||||
}[keyof T]
|
||||
|
||||
/**
|
||||
* Convert tuple to union
|
||||
*/
|
||||
type _TupleToUnion<T> = T extends (infer E)[] ? E : never
|
||||
type TupleToUnion<K extends readonly any[]> = _TupleToUnion<K>
|
||||
export type MaybeTupleToUnion<T> = T extends any[] ? TupleToUnion<T> : T
|
||||
|
||||
/**
|
||||
* Like `Pick`, but additionally can also accept an array of keys
|
||||
*/
|
||||
export type PickEnumerable<T, K extends Enumerable<keyof T> | keyof T> = Prisma__Pick<T, MaybeTupleToUnion<K>>
|
||||
|
||||
/**
|
||||
* Exclude all keys with underscores
|
||||
*/
|
||||
export type ExcludeUnderscoreKeys<T extends string> = T extends `_${string}` ? never : T
|
||||
|
||||
|
||||
export type FieldRef<Model, FieldType> = runtime.FieldRef<Model, FieldType>
|
||||
|
||||
type FieldRefInputType<Model, FieldType> = Model extends never ? never : FieldRef<Model, FieldType>
|
||||
|
||||
|
||||
export const ModelName = {
|
||||
Groups: 'Groups',
|
||||
TotalStats: 'TotalStats',
|
||||
DailyStats: 'DailyStats'
|
||||
} as const
|
||||
|
||||
export type ModelName = (typeof ModelName)[keyof typeof ModelName]
|
||||
|
||||
|
||||
|
||||
export interface TypeMapCb<GlobalOmitOptions = {}> extends runtime.Types.Utils.Fn<{extArgs: runtime.Types.Extensions.InternalArgs }, runtime.Types.Utils.Record<string, any>> {
|
||||
returns: TypeMap<this['params']['extArgs'], GlobalOmitOptions>
|
||||
}
|
||||
|
||||
export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> = {
|
||||
globalOmitOptions: {
|
||||
omit: GlobalOmitOptions
|
||||
}
|
||||
meta: {
|
||||
modelProps: "groups" | "totalStats" | "dailyStats"
|
||||
txIsolationLevel: never
|
||||
}
|
||||
model: {
|
||||
Groups: {
|
||||
payload: Prisma.$GroupsPayload<ExtArgs>
|
||||
fields: Prisma.GroupsFieldRefs
|
||||
operations: {
|
||||
findUnique: {
|
||||
args: Prisma.GroupsFindUniqueArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$GroupsPayload> | null
|
||||
}
|
||||
findUniqueOrThrow: {
|
||||
args: Prisma.GroupsFindUniqueOrThrowArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$GroupsPayload>
|
||||
}
|
||||
findFirst: {
|
||||
args: Prisma.GroupsFindFirstArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$GroupsPayload> | null
|
||||
}
|
||||
findFirstOrThrow: {
|
||||
args: Prisma.GroupsFindFirstOrThrowArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$GroupsPayload>
|
||||
}
|
||||
findMany: {
|
||||
args: Prisma.GroupsFindManyArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$GroupsPayload>[]
|
||||
}
|
||||
create: {
|
||||
args: Prisma.GroupsCreateArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$GroupsPayload>
|
||||
}
|
||||
createMany: {
|
||||
args: Prisma.GroupsCreateManyArgs<ExtArgs>
|
||||
result: BatchPayload
|
||||
}
|
||||
delete: {
|
||||
args: Prisma.GroupsDeleteArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$GroupsPayload>
|
||||
}
|
||||
update: {
|
||||
args: Prisma.GroupsUpdateArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$GroupsPayload>
|
||||
}
|
||||
deleteMany: {
|
||||
args: Prisma.GroupsDeleteManyArgs<ExtArgs>
|
||||
result: BatchPayload
|
||||
}
|
||||
updateMany: {
|
||||
args: Prisma.GroupsUpdateManyArgs<ExtArgs>
|
||||
result: BatchPayload
|
||||
}
|
||||
upsert: {
|
||||
args: Prisma.GroupsUpsertArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$GroupsPayload>
|
||||
}
|
||||
aggregate: {
|
||||
args: Prisma.GroupsAggregateArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.Optional<Prisma.AggregateGroups>
|
||||
}
|
||||
groupBy: {
|
||||
args: Prisma.GroupsGroupByArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.Optional<Prisma.GroupsGroupByOutputType>[]
|
||||
}
|
||||
findRaw: {
|
||||
args: Prisma.GroupsFindRawArgs<ExtArgs>
|
||||
result: Prisma.JsonObject
|
||||
}
|
||||
aggregateRaw: {
|
||||
args: Prisma.GroupsAggregateRawArgs<ExtArgs>
|
||||
result: Prisma.JsonObject
|
||||
}
|
||||
count: {
|
||||
args: Prisma.GroupsCountArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.Optional<Prisma.GroupsCountAggregateOutputType> | number
|
||||
}
|
||||
}
|
||||
}
|
||||
TotalStats: {
|
||||
payload: Prisma.$TotalStatsPayload<ExtArgs>
|
||||
fields: Prisma.TotalStatsFieldRefs
|
||||
operations: {
|
||||
findUnique: {
|
||||
args: Prisma.TotalStatsFindUniqueArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$TotalStatsPayload> | null
|
||||
}
|
||||
findUniqueOrThrow: {
|
||||
args: Prisma.TotalStatsFindUniqueOrThrowArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$TotalStatsPayload>
|
||||
}
|
||||
findFirst: {
|
||||
args: Prisma.TotalStatsFindFirstArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$TotalStatsPayload> | null
|
||||
}
|
||||
findFirstOrThrow: {
|
||||
args: Prisma.TotalStatsFindFirstOrThrowArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$TotalStatsPayload>
|
||||
}
|
||||
findMany: {
|
||||
args: Prisma.TotalStatsFindManyArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$TotalStatsPayload>[]
|
||||
}
|
||||
create: {
|
||||
args: Prisma.TotalStatsCreateArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$TotalStatsPayload>
|
||||
}
|
||||
createMany: {
|
||||
args: Prisma.TotalStatsCreateManyArgs<ExtArgs>
|
||||
result: BatchPayload
|
||||
}
|
||||
delete: {
|
||||
args: Prisma.TotalStatsDeleteArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$TotalStatsPayload>
|
||||
}
|
||||
update: {
|
||||
args: Prisma.TotalStatsUpdateArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$TotalStatsPayload>
|
||||
}
|
||||
deleteMany: {
|
||||
args: Prisma.TotalStatsDeleteManyArgs<ExtArgs>
|
||||
result: BatchPayload
|
||||
}
|
||||
updateMany: {
|
||||
args: Prisma.TotalStatsUpdateManyArgs<ExtArgs>
|
||||
result: BatchPayload
|
||||
}
|
||||
upsert: {
|
||||
args: Prisma.TotalStatsUpsertArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$TotalStatsPayload>
|
||||
}
|
||||
aggregate: {
|
||||
args: Prisma.TotalStatsAggregateArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.Optional<Prisma.AggregateTotalStats>
|
||||
}
|
||||
groupBy: {
|
||||
args: Prisma.TotalStatsGroupByArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.Optional<Prisma.TotalStatsGroupByOutputType>[]
|
||||
}
|
||||
findRaw: {
|
||||
args: Prisma.TotalStatsFindRawArgs<ExtArgs>
|
||||
result: Prisma.JsonObject
|
||||
}
|
||||
aggregateRaw: {
|
||||
args: Prisma.TotalStatsAggregateRawArgs<ExtArgs>
|
||||
result: Prisma.JsonObject
|
||||
}
|
||||
count: {
|
||||
args: Prisma.TotalStatsCountArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.Optional<Prisma.TotalStatsCountAggregateOutputType> | number
|
||||
}
|
||||
}
|
||||
}
|
||||
DailyStats: {
|
||||
payload: Prisma.$DailyStatsPayload<ExtArgs>
|
||||
fields: Prisma.DailyStatsFieldRefs
|
||||
operations: {
|
||||
findUnique: {
|
||||
args: Prisma.DailyStatsFindUniqueArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$DailyStatsPayload> | null
|
||||
}
|
||||
findUniqueOrThrow: {
|
||||
args: Prisma.DailyStatsFindUniqueOrThrowArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$DailyStatsPayload>
|
||||
}
|
||||
findFirst: {
|
||||
args: Prisma.DailyStatsFindFirstArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$DailyStatsPayload> | null
|
||||
}
|
||||
findFirstOrThrow: {
|
||||
args: Prisma.DailyStatsFindFirstOrThrowArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$DailyStatsPayload>
|
||||
}
|
||||
findMany: {
|
||||
args: Prisma.DailyStatsFindManyArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$DailyStatsPayload>[]
|
||||
}
|
||||
create: {
|
||||
args: Prisma.DailyStatsCreateArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$DailyStatsPayload>
|
||||
}
|
||||
createMany: {
|
||||
args: Prisma.DailyStatsCreateManyArgs<ExtArgs>
|
||||
result: BatchPayload
|
||||
}
|
||||
delete: {
|
||||
args: Prisma.DailyStatsDeleteArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$DailyStatsPayload>
|
||||
}
|
||||
update: {
|
||||
args: Prisma.DailyStatsUpdateArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$DailyStatsPayload>
|
||||
}
|
||||
deleteMany: {
|
||||
args: Prisma.DailyStatsDeleteManyArgs<ExtArgs>
|
||||
result: BatchPayload
|
||||
}
|
||||
updateMany: {
|
||||
args: Prisma.DailyStatsUpdateManyArgs<ExtArgs>
|
||||
result: BatchPayload
|
||||
}
|
||||
upsert: {
|
||||
args: Prisma.DailyStatsUpsertArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$DailyStatsPayload>
|
||||
}
|
||||
aggregate: {
|
||||
args: Prisma.DailyStatsAggregateArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.Optional<Prisma.AggregateDailyStats>
|
||||
}
|
||||
groupBy: {
|
||||
args: Prisma.DailyStatsGroupByArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.Optional<Prisma.DailyStatsGroupByOutputType>[]
|
||||
}
|
||||
findRaw: {
|
||||
args: Prisma.DailyStatsFindRawArgs<ExtArgs>
|
||||
result: Prisma.JsonObject
|
||||
}
|
||||
aggregateRaw: {
|
||||
args: Prisma.DailyStatsAggregateRawArgs<ExtArgs>
|
||||
result: Prisma.JsonObject
|
||||
}
|
||||
count: {
|
||||
args: Prisma.DailyStatsCountArgs<ExtArgs>
|
||||
result: runtime.Types.Utils.Optional<Prisma.DailyStatsCountAggregateOutputType> | number
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} & {
|
||||
other: {
|
||||
payload: any
|
||||
operations: {
|
||||
$runCommandRaw: {
|
||||
args: Prisma.InputJsonObject,
|
||||
result: JsonObject
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Enums
|
||||
*/
|
||||
|
||||
export const GroupsScalarFieldEnum = {
|
||||
telegramID: 'telegramID',
|
||||
name: 'name',
|
||||
username: 'username',
|
||||
linksDeleted: 'linksDeleted',
|
||||
createdAt: 'createdAt',
|
||||
updatedAt: 'updatedAt'
|
||||
} as const
|
||||
|
||||
export type GroupsScalarFieldEnum = (typeof GroupsScalarFieldEnum)[keyof typeof GroupsScalarFieldEnum]
|
||||
|
||||
|
||||
export const TotalStatsScalarFieldEnum = {
|
||||
createdAt: 'createdAt',
|
||||
updatedAt: 'updatedAt',
|
||||
linksDeleted: 'linksDeleted',
|
||||
commandResponses: 'commandResponses',
|
||||
timesTriggered: 'timesTriggered'
|
||||
} as const
|
||||
|
||||
export type TotalStatsScalarFieldEnum = (typeof TotalStatsScalarFieldEnum)[keyof typeof TotalStatsScalarFieldEnum]
|
||||
|
||||
|
||||
export const DailyStatsScalarFieldEnum = {
|
||||
createdAt: 'createdAt',
|
||||
updatedAt: 'updatedAt',
|
||||
linksDeleted: 'linksDeleted',
|
||||
commandResponses: 'commandResponses',
|
||||
timesTriggered: 'timesTriggered'
|
||||
} as const
|
||||
|
||||
export type DailyStatsScalarFieldEnum = (typeof DailyStatsScalarFieldEnum)[keyof typeof DailyStatsScalarFieldEnum]
|
||||
|
||||
|
||||
export const SortOrder = {
|
||||
asc: 'asc',
|
||||
desc: 'desc'
|
||||
} as const
|
||||
|
||||
export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]
|
||||
|
||||
|
||||
export const QueryMode = {
|
||||
default: 'default',
|
||||
insensitive: 'insensitive'
|
||||
} as const
|
||||
|
||||
export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode]
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Field references
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Reference to a field of type 'BigInt'
|
||||
*/
|
||||
export type BigIntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'BigInt'>
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Reference to a field of type 'BigInt[]'
|
||||
*/
|
||||
export type ListBigIntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'BigInt[]'>
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Reference to a field of type 'String'
|
||||
*/
|
||||
export type StringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String'>
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Reference to a field of type 'String[]'
|
||||
*/
|
||||
export type ListStringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String[]'>
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Reference to a field of type 'DateTime'
|
||||
*/
|
||||
export type DateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DateTime'>
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Reference to a field of type 'DateTime[]'
|
||||
*/
|
||||
export type ListDateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DateTime[]'>
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Reference to a field of type 'Int'
|
||||
*/
|
||||
export type IntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int'>
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Reference to a field of type 'Int[]'
|
||||
*/
|
||||
export type ListIntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int[]'>
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Reference to a field of type 'Float'
|
||||
*/
|
||||
export type FloatFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Float'>
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Reference to a field of type 'Float[]'
|
||||
*/
|
||||
export type ListFloatFieldRefInput<$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
|
||||
}
|
||||
/**
|
||||
* 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 = {
|
||||
groups?: Prisma.GroupsOmit
|
||||
totalStats?: Prisma.TotalStatsOmit
|
||||
dailyStats?: Prisma.DailyStatsOmit
|
||||
}
|
||||
|
||||
/* Types for Logging */
|
||||
export type LogLevel = 'info' | 'query' | 'warn' | 'error'
|
||||
export type LogDefinition = {
|
||||
level: LogLevel
|
||||
emit: 'stdout' | 'event'
|
||||
}
|
||||
|
||||
export type CheckIsLogLevel<T> = T extends LogLevel ? T : never;
|
||||
|
||||
export type GetLogType<T> = CheckIsLogLevel<
|
||||
T extends LogDefinition ? T['level'] : T
|
||||
>;
|
||||
|
||||
export type GetEvents<T extends any[]> = T extends Array<LogLevel | LogDefinition>
|
||||
? GetLogType<T[number]>
|
||||
: 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<DefaultPrismaClient, runtime.ITXClientDenyList>
|
||||
|
||||
@@ -1,111 +0,0 @@
|
||||
|
||||
/* !!! 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'
|
||||
export type * from './prismaNamespace'
|
||||
|
||||
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 = {
|
||||
Groups: 'Groups',
|
||||
TotalStats: 'TotalStats',
|
||||
DailyStats: 'DailyStats'
|
||||
} as const
|
||||
|
||||
export type ModelName = (typeof ModelName)[keyof typeof ModelName]
|
||||
|
||||
/*
|
||||
* Enums
|
||||
*/
|
||||
|
||||
export const GroupsScalarFieldEnum = {
|
||||
telegramID: 'telegramID',
|
||||
name: 'name',
|
||||
username: 'username',
|
||||
linksDeleted: 'linksDeleted',
|
||||
createdAt: 'createdAt',
|
||||
updatedAt: 'updatedAt'
|
||||
} as const
|
||||
|
||||
export type GroupsScalarFieldEnum = (typeof GroupsScalarFieldEnum)[keyof typeof GroupsScalarFieldEnum]
|
||||
|
||||
|
||||
export const TotalStatsScalarFieldEnum = {
|
||||
createdAt: 'createdAt',
|
||||
updatedAt: 'updatedAt',
|
||||
linksDeleted: 'linksDeleted',
|
||||
commandResponses: 'commandResponses',
|
||||
timesTriggered: 'timesTriggered'
|
||||
} as const
|
||||
|
||||
export type TotalStatsScalarFieldEnum = (typeof TotalStatsScalarFieldEnum)[keyof typeof TotalStatsScalarFieldEnum]
|
||||
|
||||
|
||||
export const DailyStatsScalarFieldEnum = {
|
||||
createdAt: 'createdAt',
|
||||
updatedAt: 'updatedAt',
|
||||
linksDeleted: 'linksDeleted',
|
||||
commandResponses: 'commandResponses',
|
||||
timesTriggered: 'timesTriggered'
|
||||
} as const
|
||||
|
||||
export type DailyStatsScalarFieldEnum = (typeof DailyStatsScalarFieldEnum)[keyof typeof DailyStatsScalarFieldEnum]
|
||||
|
||||
|
||||
export const SortOrder = {
|
||||
asc: 'asc',
|
||||
desc: 'desc'
|
||||
} as const
|
||||
|
||||
export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]
|
||||
|
||||
|
||||
export const QueryMode = {
|
||||
default: 'default',
|
||||
insensitive: 'insensitive'
|
||||
} as const
|
||||
|
||||
export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode]
|
||||
|
||||
Binary file not shown.
@@ -1,14 +0,0 @@
|
||||
|
||||
/* !!! 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/Groups'
|
||||
export type * from './models/TotalStats'
|
||||
export type * from './models/DailyStats'
|
||||
export type * from './commonInputTypes'
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
2
src/types/LineChartStats.d.ts
vendored
2
src/types/LineChartStats.d.ts
vendored
@@ -2,7 +2,7 @@ export interface LineChartItem {
|
||||
day: number;
|
||||
"Links Deleted": number;
|
||||
"Command Responses": number;
|
||||
"Times Triggered": number;
|
||||
Triggers: number;
|
||||
}
|
||||
|
||||
export type LineChartArr = LineChartItem[];
|
||||
|
||||
Reference in New Issue
Block a user