pacatui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +153 -0
- package/generated/prisma/browser.ts +59 -0
- package/generated/prisma/client.ts +81 -0
- package/generated/prisma/commonInputTypes.ts +402 -0
- package/generated/prisma/enums.ts +15 -0
- package/generated/prisma/internal/class.ts +260 -0
- package/generated/prisma/internal/prismaNamespace.ts +1362 -0
- package/generated/prisma/internal/prismaNamespaceBrowser.ts +190 -0
- package/generated/prisma/models/Customer.ts +1489 -0
- package/generated/prisma/models/Invoice.ts +1837 -0
- package/generated/prisma/models/Project.ts +1981 -0
- package/generated/prisma/models/Setting.ts +1086 -0
- package/generated/prisma/models/Tag.ts +1288 -0
- package/generated/prisma/models/Task.ts +1669 -0
- package/generated/prisma/models/TaskTag.ts +1340 -0
- package/generated/prisma/models/TimeEntry.ts +1602 -0
- package/generated/prisma/models.ts +19 -0
- package/package.json +71 -0
- package/prisma/migrations/20260115051911_init/migration.sql +71 -0
- package/prisma/migrations/20260115062427_add_time_tracking/migration.sql +20 -0
- package/prisma/migrations/20260117233250_add_customers_invoices/migration.sql +81 -0
- package/prisma/migrations/migration_lock.toml +3 -0
- package/prisma/schema.prisma +162 -0
- package/src/App.tsx +1492 -0
- package/src/components/CreateInvoiceModal.tsx +222 -0
- package/src/components/CustomerModal.tsx +158 -0
- package/src/components/CustomerSelectModal.tsx +142 -0
- package/src/components/Dashboard.tsx +242 -0
- package/src/components/DateTimePicker.tsx +335 -0
- package/src/components/EditTimeEntryModal.tsx +293 -0
- package/src/components/Header.tsx +65 -0
- package/src/components/HelpView.tsx +109 -0
- package/src/components/InputModal.tsx +79 -0
- package/src/components/InvoicesView.tsx +297 -0
- package/src/components/Modal.tsx +38 -0
- package/src/components/ProjectList.tsx +114 -0
- package/src/components/ProjectModal.tsx +116 -0
- package/src/components/SettingsView.tsx +145 -0
- package/src/components/SplashScreen.tsx +25 -0
- package/src/components/StatusBar.tsx +93 -0
- package/src/components/TaskList.tsx +143 -0
- package/src/components/Timer.tsx +95 -0
- package/src/components/TimerModals.tsx +120 -0
- package/src/components/TimesheetView.tsx +218 -0
- package/src/components/index.ts +17 -0
- package/src/db.ts +629 -0
- package/src/hooks/usePaste.ts +69 -0
- package/src/index.tsx +75 -0
- package/src/stripe.ts +163 -0
- package/src/types.ts +361 -0
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
|
|
2
|
+
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
// biome-ignore-all lint: generated file
|
|
5
|
+
// @ts-nocheck
|
|
6
|
+
/*
|
|
7
|
+
* WARNING: This is an internal file that is subject to change!
|
|
8
|
+
*
|
|
9
|
+
* 🛑 Under no circumstances should you import this file directly! 🛑
|
|
10
|
+
*
|
|
11
|
+
* Please import the `PrismaClient` class from the `client.ts` file instead.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import * as runtime from "@prisma/client/runtime/client"
|
|
15
|
+
import type * as Prisma from "./prismaNamespace.ts"
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
const config: runtime.GetPrismaClientConfig = {
|
|
19
|
+
"previewFeatures": [],
|
|
20
|
+
"clientVersion": "7.2.0",
|
|
21
|
+
"engineVersion": "0c8ef2ce45c83248ab3df073180d5eda9e8be7a3",
|
|
22
|
+
"activeProvider": "sqlite",
|
|
23
|
+
"inlineSchema": "// Paca - Task Manager Database Schema\n// Learn more: https://pris.ly/d/prisma-schema\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"../generated/prisma\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n}\n\n// Customers for invoicing\nmodel Customer {\n id String @id @default(uuid())\n name String\n email String @unique\n stripeCustomerId String? // Stripe customer ID once created\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n projects Project[]\n invoices Invoice[]\n\n @@index([email])\n}\n\n// Projects are the core organizational unit\nmodel Project {\n id String @id @default(uuid())\n name String\n description String?\n color String @default(\"#3b82f6\") // Default blue color\n hourlyRate Float? // Hourly rate for billing/tracking\n archived Boolean @default(false)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n tasks Task[]\n timeEntries TimeEntry[]\n customerId String?\n customer Customer? @relation(fields: [customerId], references: [id], onDelete: SetNull)\n invoices Invoice[]\n\n // Future: GitHub integration fields\n // githubRepoId String?\n // githubProjectId String?\n // syncEnabled Boolean @default(false)\n\n @@index([archived])\n @@index([createdAt])\n @@index([customerId])\n}\n\n// Time tracking entries\nmodel TimeEntry {\n id String @id @default(uuid())\n startTime DateTime\n endTime DateTime?\n description String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n projectId String\n project Project @relation(fields: [projectId], references: [id], onDelete: Cascade)\n invoiceId String?\n invoice Invoice? @relation(fields: [invoiceId], references: [id], onDelete: SetNull)\n\n @@index([projectId])\n @@index([startTime])\n @@index([invoiceId])\n}\n\n// Invoices for time entries\nmodel Invoice {\n id String @id @default(uuid())\n stripeInvoiceId String? // Stripe invoice ID once created\n status String @default(\"draft\") // draft, sent, paid\n totalHours Float\n totalAmount Float\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n projectId String\n project Project @relation(fields: [projectId], references: [id])\n customerId String\n customer Customer @relation(fields: [customerId], references: [id])\n timeEntries TimeEntry[]\n\n @@index([projectId])\n @@index([customerId])\n @@index([status])\n}\n\n// Tasks belong to projects\nmodel Task {\n id String @id @default(uuid())\n title String\n description String?\n status String @default(\"todo\") // todo, in_progress, done\n priority String @default(\"medium\") // low, medium, high, urgent\n dueDate DateTime?\n completedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n projectId String\n project Project @relation(fields: [projectId], references: [id], onDelete: Cascade)\n tags TaskTag[]\n\n // Future: GitHub integration fields\n // githubIssueId String?\n // githubIssueNumber Int?\n // syncEnabled Boolean @default(false)\n\n @@index([projectId])\n @@index([status])\n @@index([priority])\n @@index([dueDate])\n}\n\n// Tags for categorizing tasks\nmodel Tag {\n id String @id @default(uuid())\n name String @unique\n color String @default(\"#6b7280\") // Default gray\n createdAt DateTime @default(now())\n\n // Relations\n tasks TaskTag[]\n}\n\n// Many-to-many relation between tasks and tags\nmodel TaskTag {\n taskId String\n tagId String\n task Task @relation(fields: [taskId], references: [id], onDelete: Cascade)\n tag Tag @relation(fields: [tagId], references: [id], onDelete: Cascade)\n\n @@id([taskId, tagId])\n}\n\n// App settings/preferences\nmodel Setting {\n key String @id\n value String\n updatedAt DateTime @updatedAt\n}\n\n// Future: User model for cloud sync\n// model User {\n// id String @id @default(uuid())\n// email String @unique\n// name String?\n// createdAt DateTime @default(now())\n// lastSyncAt DateTime?\n// }\n",
|
|
24
|
+
"runtimeDataModel": {
|
|
25
|
+
"models": {},
|
|
26
|
+
"enums": {},
|
|
27
|
+
"types": {}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
config.runtimeDataModel = JSON.parse("{\"models\":{\"Customer\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"stripeCustomerId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"projects\",\"kind\":\"object\",\"type\":\"Project\",\"relationName\":\"CustomerToProject\"},{\"name\":\"invoices\",\"kind\":\"object\",\"type\":\"Invoice\",\"relationName\":\"CustomerToInvoice\"}],\"dbName\":null},\"Project\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"color\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hourlyRate\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"archived\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"tasks\",\"kind\":\"object\",\"type\":\"Task\",\"relationName\":\"ProjectToTask\"},{\"name\":\"timeEntries\",\"kind\":\"object\",\"type\":\"TimeEntry\",\"relationName\":\"ProjectToTimeEntry\"},{\"name\":\"customerId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customer\",\"kind\":\"object\",\"type\":\"Customer\",\"relationName\":\"CustomerToProject\"},{\"name\":\"invoices\",\"kind\":\"object\",\"type\":\"Invoice\",\"relationName\":\"InvoiceToProject\"}],\"dbName\":null},\"TimeEntry\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"startTime\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"endTime\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"projectId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"project\",\"kind\":\"object\",\"type\":\"Project\",\"relationName\":\"ProjectToTimeEntry\"},{\"name\":\"invoiceId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"invoice\",\"kind\":\"object\",\"type\":\"Invoice\",\"relationName\":\"InvoiceToTimeEntry\"}],\"dbName\":null},\"Invoice\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"stripeInvoiceId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"totalHours\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"totalAmount\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"projectId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"project\",\"kind\":\"object\",\"type\":\"Project\",\"relationName\":\"InvoiceToProject\"},{\"name\":\"customerId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customer\",\"kind\":\"object\",\"type\":\"Customer\",\"relationName\":\"CustomerToInvoice\"},{\"name\":\"timeEntries\",\"kind\":\"object\",\"type\":\"TimeEntry\",\"relationName\":\"InvoiceToTimeEntry\"}],\"dbName\":null},\"Task\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"priority\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dueDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"completedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"projectId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"project\",\"kind\":\"object\",\"type\":\"Project\",\"relationName\":\"ProjectToTask\"},{\"name\":\"tags\",\"kind\":\"object\",\"type\":\"TaskTag\",\"relationName\":\"TaskToTaskTag\"}],\"dbName\":null},\"Tag\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"color\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"tasks\",\"kind\":\"object\",\"type\":\"TaskTag\",\"relationName\":\"TagToTaskTag\"}],\"dbName\":null},\"TaskTag\":{\"fields\":[{\"name\":\"taskId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"tagId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"task\",\"kind\":\"object\",\"type\":\"Task\",\"relationName\":\"TaskToTaskTag\"},{\"name\":\"tag\",\"kind\":\"object\",\"type\":\"Tag\",\"relationName\":\"TagToTaskTag\"}],\"dbName\":null},\"Setting\":{\"fields\":[{\"name\":\"key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}")
|
|
32
|
+
|
|
33
|
+
async function decodeBase64AsWasm(wasmBase64: string): Promise<WebAssembly.Module> {
|
|
34
|
+
const { Buffer } = await import('node:buffer')
|
|
35
|
+
const wasmArray = Buffer.from(wasmBase64, 'base64')
|
|
36
|
+
return new WebAssembly.Module(wasmArray)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
config.compilerWasm = {
|
|
40
|
+
getRuntime: async () => await import("@prisma/client/runtime/query_compiler_bg.sqlite.mjs"),
|
|
41
|
+
|
|
42
|
+
getQueryCompilerWasmModule: async () => {
|
|
43
|
+
const { wasm } = await import("@prisma/client/runtime/query_compiler_bg.sqlite.wasm-base64.mjs")
|
|
44
|
+
return await decodeBase64AsWasm(wasm)
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
export type LogOptions<ClientOptions extends Prisma.PrismaClientOptions> =
|
|
51
|
+
'log' extends keyof ClientOptions ? ClientOptions['log'] extends Array<Prisma.LogLevel | Prisma.LogDefinition> ? Prisma.GetEvents<ClientOptions['log']> : never : never
|
|
52
|
+
|
|
53
|
+
export interface PrismaClientConstructor {
|
|
54
|
+
/**
|
|
55
|
+
* ## Prisma Client
|
|
56
|
+
*
|
|
57
|
+
* Type-safe database client for TypeScript
|
|
58
|
+
* @example
|
|
59
|
+
* ```
|
|
60
|
+
* const prisma = new PrismaClient()
|
|
61
|
+
* // Fetch zero or more Customers
|
|
62
|
+
* const customers = await prisma.customer.findMany()
|
|
63
|
+
* ```
|
|
64
|
+
*
|
|
65
|
+
* Read more in our [docs](https://pris.ly/d/client).
|
|
66
|
+
*/
|
|
67
|
+
|
|
68
|
+
new <
|
|
69
|
+
Options extends Prisma.PrismaClientOptions = Prisma.PrismaClientOptions,
|
|
70
|
+
LogOpts extends LogOptions<Options> = LogOptions<Options>,
|
|
71
|
+
OmitOpts extends Prisma.PrismaClientOptions['omit'] = Options extends { omit: infer U } ? U : Prisma.PrismaClientOptions['omit'],
|
|
72
|
+
ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs
|
|
73
|
+
>(options: Prisma.Subset<Options, Prisma.PrismaClientOptions> ): PrismaClient<LogOpts, OmitOpts, ExtArgs>
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* ## Prisma Client
|
|
78
|
+
*
|
|
79
|
+
* Type-safe database client for TypeScript
|
|
80
|
+
* @example
|
|
81
|
+
* ```
|
|
82
|
+
* const prisma = new PrismaClient()
|
|
83
|
+
* // Fetch zero or more Customers
|
|
84
|
+
* const customers = await prisma.customer.findMany()
|
|
85
|
+
* ```
|
|
86
|
+
*
|
|
87
|
+
* Read more in our [docs](https://pris.ly/d/client).
|
|
88
|
+
*/
|
|
89
|
+
|
|
90
|
+
export interface PrismaClient<
|
|
91
|
+
in LogOpts extends Prisma.LogLevel = never,
|
|
92
|
+
in out OmitOpts extends Prisma.PrismaClientOptions['omit'] = undefined,
|
|
93
|
+
in out ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs
|
|
94
|
+
> {
|
|
95
|
+
[K: symbol]: { types: Prisma.TypeMap<ExtArgs>['other'] }
|
|
96
|
+
|
|
97
|
+
$on<V extends LogOpts>(eventType: V, callback: (event: V extends 'query' ? Prisma.QueryEvent : Prisma.LogEvent) => void): PrismaClient;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Connect with the database
|
|
101
|
+
*/
|
|
102
|
+
$connect(): runtime.Types.Utils.JsPromise<void>;
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Disconnect from the database
|
|
106
|
+
*/
|
|
107
|
+
$disconnect(): runtime.Types.Utils.JsPromise<void>;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Executes a prepared raw query and returns the number of affected rows.
|
|
111
|
+
* @example
|
|
112
|
+
* ```
|
|
113
|
+
* const result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`
|
|
114
|
+
* ```
|
|
115
|
+
*
|
|
116
|
+
* Read more in our [docs](https://pris.ly/d/raw-queries).
|
|
117
|
+
*/
|
|
118
|
+
$executeRaw<T = unknown>(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise<number>;
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Executes a raw query and returns the number of affected rows.
|
|
122
|
+
* Susceptible to SQL injections, see documentation.
|
|
123
|
+
* @example
|
|
124
|
+
* ```
|
|
125
|
+
* const result = await prisma.$executeRawUnsafe('UPDATE User SET cool = $1 WHERE email = $2 ;', true, 'user@email.com')
|
|
126
|
+
* ```
|
|
127
|
+
*
|
|
128
|
+
* Read more in our [docs](https://pris.ly/d/raw-queries).
|
|
129
|
+
*/
|
|
130
|
+
$executeRawUnsafe<T = unknown>(query: string, ...values: any[]): Prisma.PrismaPromise<number>;
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Performs a prepared raw query and returns the `SELECT` data.
|
|
134
|
+
* @example
|
|
135
|
+
* ```
|
|
136
|
+
* const result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`
|
|
137
|
+
* ```
|
|
138
|
+
*
|
|
139
|
+
* Read more in our [docs](https://pris.ly/d/raw-queries).
|
|
140
|
+
*/
|
|
141
|
+
$queryRaw<T = unknown>(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise<T>;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Performs a raw query and returns the `SELECT` data.
|
|
145
|
+
* Susceptible to SQL injections, see documentation.
|
|
146
|
+
* @example
|
|
147
|
+
* ```
|
|
148
|
+
* const result = await prisma.$queryRawUnsafe('SELECT * FROM User WHERE id = $1 OR email = $2;', 1, 'user@email.com')
|
|
149
|
+
* ```
|
|
150
|
+
*
|
|
151
|
+
* Read more in our [docs](https://pris.ly/d/raw-queries).
|
|
152
|
+
*/
|
|
153
|
+
$queryRawUnsafe<T = unknown>(query: string, ...values: any[]): Prisma.PrismaPromise<T>;
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Allows the running of a sequence of read/write operations that are guaranteed to either succeed or fail as a whole.
|
|
158
|
+
* @example
|
|
159
|
+
* ```
|
|
160
|
+
* const [george, bob, alice] = await prisma.$transaction([
|
|
161
|
+
* prisma.user.create({ data: { name: 'George' } }),
|
|
162
|
+
* prisma.user.create({ data: { name: 'Bob' } }),
|
|
163
|
+
* prisma.user.create({ data: { name: 'Alice' } }),
|
|
164
|
+
* ])
|
|
165
|
+
* ```
|
|
166
|
+
*
|
|
167
|
+
* Read more in our [docs](https://www.prisma.io/docs/concepts/components/prisma-client/transactions).
|
|
168
|
+
*/
|
|
169
|
+
$transaction<P extends Prisma.PrismaPromise<any>[]>(arg: [...P], options?: { isolationLevel?: Prisma.TransactionIsolationLevel }): runtime.Types.Utils.JsPromise<runtime.Types.Utils.UnwrapTuple<P>>
|
|
170
|
+
|
|
171
|
+
$transaction<R>(fn: (prisma: Omit<PrismaClient, runtime.ITXClientDenyList>) => runtime.Types.Utils.JsPromise<R>, options?: { maxWait?: number, timeout?: number, isolationLevel?: Prisma.TransactionIsolationLevel }): runtime.Types.Utils.JsPromise<R>
|
|
172
|
+
|
|
173
|
+
$extends: runtime.Types.Extensions.ExtendsHook<"extends", Prisma.TypeMapCb<OmitOpts>, ExtArgs, runtime.Types.Utils.Call<Prisma.TypeMapCb<OmitOpts>, {
|
|
174
|
+
extArgs: ExtArgs
|
|
175
|
+
}>>
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* `prisma.customer`: Exposes CRUD operations for the **Customer** model.
|
|
179
|
+
* Example usage:
|
|
180
|
+
* ```ts
|
|
181
|
+
* // Fetch zero or more Customers
|
|
182
|
+
* const customers = await prisma.customer.findMany()
|
|
183
|
+
* ```
|
|
184
|
+
*/
|
|
185
|
+
get customer(): Prisma.CustomerDelegate<ExtArgs, { omit: OmitOpts }>;
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* `prisma.project`: Exposes CRUD operations for the **Project** model.
|
|
189
|
+
* Example usage:
|
|
190
|
+
* ```ts
|
|
191
|
+
* // Fetch zero or more Projects
|
|
192
|
+
* const projects = await prisma.project.findMany()
|
|
193
|
+
* ```
|
|
194
|
+
*/
|
|
195
|
+
get project(): Prisma.ProjectDelegate<ExtArgs, { omit: OmitOpts }>;
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* `prisma.timeEntry`: Exposes CRUD operations for the **TimeEntry** model.
|
|
199
|
+
* Example usage:
|
|
200
|
+
* ```ts
|
|
201
|
+
* // Fetch zero or more TimeEntries
|
|
202
|
+
* const timeEntries = await prisma.timeEntry.findMany()
|
|
203
|
+
* ```
|
|
204
|
+
*/
|
|
205
|
+
get timeEntry(): Prisma.TimeEntryDelegate<ExtArgs, { omit: OmitOpts }>;
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* `prisma.invoice`: Exposes CRUD operations for the **Invoice** model.
|
|
209
|
+
* Example usage:
|
|
210
|
+
* ```ts
|
|
211
|
+
* // Fetch zero or more Invoices
|
|
212
|
+
* const invoices = await prisma.invoice.findMany()
|
|
213
|
+
* ```
|
|
214
|
+
*/
|
|
215
|
+
get invoice(): Prisma.InvoiceDelegate<ExtArgs, { omit: OmitOpts }>;
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* `prisma.task`: Exposes CRUD operations for the **Task** model.
|
|
219
|
+
* Example usage:
|
|
220
|
+
* ```ts
|
|
221
|
+
* // Fetch zero or more Tasks
|
|
222
|
+
* const tasks = await prisma.task.findMany()
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
get task(): Prisma.TaskDelegate<ExtArgs, { omit: OmitOpts }>;
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* `prisma.tag`: Exposes CRUD operations for the **Tag** model.
|
|
229
|
+
* Example usage:
|
|
230
|
+
* ```ts
|
|
231
|
+
* // Fetch zero or more Tags
|
|
232
|
+
* const tags = await prisma.tag.findMany()
|
|
233
|
+
* ```
|
|
234
|
+
*/
|
|
235
|
+
get tag(): Prisma.TagDelegate<ExtArgs, { omit: OmitOpts }>;
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* `prisma.taskTag`: Exposes CRUD operations for the **TaskTag** model.
|
|
239
|
+
* Example usage:
|
|
240
|
+
* ```ts
|
|
241
|
+
* // Fetch zero or more TaskTags
|
|
242
|
+
* const taskTags = await prisma.taskTag.findMany()
|
|
243
|
+
* ```
|
|
244
|
+
*/
|
|
245
|
+
get taskTag(): Prisma.TaskTagDelegate<ExtArgs, { omit: OmitOpts }>;
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* `prisma.setting`: Exposes CRUD operations for the **Setting** model.
|
|
249
|
+
* Example usage:
|
|
250
|
+
* ```ts
|
|
251
|
+
* // Fetch zero or more Settings
|
|
252
|
+
* const settings = await prisma.setting.findMany()
|
|
253
|
+
* ```
|
|
254
|
+
*/
|
|
255
|
+
get setting(): Prisma.SettingDelegate<ExtArgs, { omit: OmitOpts }>;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
export function getPrismaClientClass(): PrismaClientConstructor {
|
|
259
|
+
return runtime.getPrismaClient(config) as unknown as PrismaClientConstructor
|
|
260
|
+
}
|