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,190 @@
|
|
|
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
|
+
* All exports from this file are wrapped under a `Prisma` namespace object in the browser.ts file.
|
|
12
|
+
* While this enables partial backward compatibility, it is not part of the stable public API.
|
|
13
|
+
*
|
|
14
|
+
* If you are looking for your Models, Enums, and Input Types, please import them from the respective
|
|
15
|
+
* model files in the `model` directory!
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import * as runtime from "@prisma/client/runtime/index-browser"
|
|
19
|
+
|
|
20
|
+
export type * from '../models.ts'
|
|
21
|
+
export type * from './prismaNamespace.ts'
|
|
22
|
+
|
|
23
|
+
export const Decimal = runtime.Decimal
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
export const NullTypes = {
|
|
27
|
+
DbNull: runtime.NullTypes.DbNull as (new (secret: never) => typeof runtime.DbNull),
|
|
28
|
+
JsonNull: runtime.NullTypes.JsonNull as (new (secret: never) => typeof runtime.JsonNull),
|
|
29
|
+
AnyNull: runtime.NullTypes.AnyNull as (new (secret: never) => typeof runtime.AnyNull),
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Helper for filtering JSON entries that have `null` on the database (empty on the db)
|
|
33
|
+
*
|
|
34
|
+
* @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
|
|
35
|
+
*/
|
|
36
|
+
export const DbNull = runtime.DbNull
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Helper for filtering JSON entries that have JSON `null` values (not empty on the db)
|
|
40
|
+
*
|
|
41
|
+
* @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
|
|
42
|
+
*/
|
|
43
|
+
export const JsonNull = runtime.JsonNull
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Helper for filtering JSON entries that are `Prisma.DbNull` or `Prisma.JsonNull`
|
|
47
|
+
*
|
|
48
|
+
* @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
|
|
49
|
+
*/
|
|
50
|
+
export const AnyNull = runtime.AnyNull
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
export const ModelName = {
|
|
54
|
+
Customer: 'Customer',
|
|
55
|
+
Project: 'Project',
|
|
56
|
+
TimeEntry: 'TimeEntry',
|
|
57
|
+
Invoice: 'Invoice',
|
|
58
|
+
Task: 'Task',
|
|
59
|
+
Tag: 'Tag',
|
|
60
|
+
TaskTag: 'TaskTag',
|
|
61
|
+
Setting: 'Setting'
|
|
62
|
+
} as const
|
|
63
|
+
|
|
64
|
+
export type ModelName = (typeof ModelName)[keyof typeof ModelName]
|
|
65
|
+
|
|
66
|
+
/*
|
|
67
|
+
* Enums
|
|
68
|
+
*/
|
|
69
|
+
|
|
70
|
+
export const TransactionIsolationLevel = {
|
|
71
|
+
Serializable: 'Serializable'
|
|
72
|
+
} as const
|
|
73
|
+
|
|
74
|
+
export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel]
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
export const CustomerScalarFieldEnum = {
|
|
78
|
+
id: 'id',
|
|
79
|
+
name: 'name',
|
|
80
|
+
email: 'email',
|
|
81
|
+
stripeCustomerId: 'stripeCustomerId',
|
|
82
|
+
createdAt: 'createdAt',
|
|
83
|
+
updatedAt: 'updatedAt'
|
|
84
|
+
} as const
|
|
85
|
+
|
|
86
|
+
export type CustomerScalarFieldEnum = (typeof CustomerScalarFieldEnum)[keyof typeof CustomerScalarFieldEnum]
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
export const ProjectScalarFieldEnum = {
|
|
90
|
+
id: 'id',
|
|
91
|
+
name: 'name',
|
|
92
|
+
description: 'description',
|
|
93
|
+
color: 'color',
|
|
94
|
+
hourlyRate: 'hourlyRate',
|
|
95
|
+
archived: 'archived',
|
|
96
|
+
createdAt: 'createdAt',
|
|
97
|
+
updatedAt: 'updatedAt',
|
|
98
|
+
customerId: 'customerId'
|
|
99
|
+
} as const
|
|
100
|
+
|
|
101
|
+
export type ProjectScalarFieldEnum = (typeof ProjectScalarFieldEnum)[keyof typeof ProjectScalarFieldEnum]
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
export const TimeEntryScalarFieldEnum = {
|
|
105
|
+
id: 'id',
|
|
106
|
+
startTime: 'startTime',
|
|
107
|
+
endTime: 'endTime',
|
|
108
|
+
description: 'description',
|
|
109
|
+
createdAt: 'createdAt',
|
|
110
|
+
updatedAt: 'updatedAt',
|
|
111
|
+
projectId: 'projectId',
|
|
112
|
+
invoiceId: 'invoiceId'
|
|
113
|
+
} as const
|
|
114
|
+
|
|
115
|
+
export type TimeEntryScalarFieldEnum = (typeof TimeEntryScalarFieldEnum)[keyof typeof TimeEntryScalarFieldEnum]
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
export const InvoiceScalarFieldEnum = {
|
|
119
|
+
id: 'id',
|
|
120
|
+
stripeInvoiceId: 'stripeInvoiceId',
|
|
121
|
+
status: 'status',
|
|
122
|
+
totalHours: 'totalHours',
|
|
123
|
+
totalAmount: 'totalAmount',
|
|
124
|
+
createdAt: 'createdAt',
|
|
125
|
+
updatedAt: 'updatedAt',
|
|
126
|
+
projectId: 'projectId',
|
|
127
|
+
customerId: 'customerId'
|
|
128
|
+
} as const
|
|
129
|
+
|
|
130
|
+
export type InvoiceScalarFieldEnum = (typeof InvoiceScalarFieldEnum)[keyof typeof InvoiceScalarFieldEnum]
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
export const TaskScalarFieldEnum = {
|
|
134
|
+
id: 'id',
|
|
135
|
+
title: 'title',
|
|
136
|
+
description: 'description',
|
|
137
|
+
status: 'status',
|
|
138
|
+
priority: 'priority',
|
|
139
|
+
dueDate: 'dueDate',
|
|
140
|
+
completedAt: 'completedAt',
|
|
141
|
+
createdAt: 'createdAt',
|
|
142
|
+
updatedAt: 'updatedAt',
|
|
143
|
+
projectId: 'projectId'
|
|
144
|
+
} as const
|
|
145
|
+
|
|
146
|
+
export type TaskScalarFieldEnum = (typeof TaskScalarFieldEnum)[keyof typeof TaskScalarFieldEnum]
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
export const TagScalarFieldEnum = {
|
|
150
|
+
id: 'id',
|
|
151
|
+
name: 'name',
|
|
152
|
+
color: 'color',
|
|
153
|
+
createdAt: 'createdAt'
|
|
154
|
+
} as const
|
|
155
|
+
|
|
156
|
+
export type TagScalarFieldEnum = (typeof TagScalarFieldEnum)[keyof typeof TagScalarFieldEnum]
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
export const TaskTagScalarFieldEnum = {
|
|
160
|
+
taskId: 'taskId',
|
|
161
|
+
tagId: 'tagId'
|
|
162
|
+
} as const
|
|
163
|
+
|
|
164
|
+
export type TaskTagScalarFieldEnum = (typeof TaskTagScalarFieldEnum)[keyof typeof TaskTagScalarFieldEnum]
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
export const SettingScalarFieldEnum = {
|
|
168
|
+
key: 'key',
|
|
169
|
+
value: 'value',
|
|
170
|
+
updatedAt: 'updatedAt'
|
|
171
|
+
} as const
|
|
172
|
+
|
|
173
|
+
export type SettingScalarFieldEnum = (typeof SettingScalarFieldEnum)[keyof typeof SettingScalarFieldEnum]
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
export const SortOrder = {
|
|
177
|
+
asc: 'asc',
|
|
178
|
+
desc: 'desc'
|
|
179
|
+
} as const
|
|
180
|
+
|
|
181
|
+
export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
export const NullsOrder = {
|
|
185
|
+
first: 'first',
|
|
186
|
+
last: 'last'
|
|
187
|
+
} as const
|
|
188
|
+
|
|
189
|
+
export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder]
|
|
190
|
+
|