@gelabs/ovr 0.3.0 → 0.4.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/dist/{chunk-HGWPA7FU.js → chunk-DJMUW5T2.js} +33 -0
- package/dist/{chunk-IS3THKTE.js → chunk-WUNTHINH.js} +11 -2
- package/dist/core-i18n.d.ts +2 -2
- package/dist/core-i18n.js +1 -1
- package/dist/data-mock-store.js +71 -7
- package/dist/data-prisma-store.js +69 -9
- package/dist/data.d.ts +12 -1
- package/dist/generated/client/edge.js +6 -4
- package/dist/generated/client/index-browser.js +3 -1
- package/dist/generated/client/index.d.ts +97 -39
- package/dist/generated/client/index.js +6 -4
- package/dist/generated/client/package.json +1 -1
- package/dist/generated/client/schema.prisma +2 -0
- package/dist/generated/client/wasm.js +6 -4
- package/dist/index.d.ts +1 -1
- package/dist/{types-BOgdk0Jw.d.ts → types-B8MopM4b.d.ts} +33 -0
- package/dist/types.d.ts +14 -3
- package/dist/types.js +1 -1
- package/dist/ui-components-admin/accounts-manager.js +1 -1
- package/dist/ui-components-admin/admin-nav.js +5 -3
- package/dist/ui-components-admin/logs-viewer.js +1 -1
- package/dist/ui-components-admin/roles-manager.js +1 -1
- package/dist/ui-components-admin/violations-manager.d.ts +32 -0
- package/dist/ui-components-admin/violations-manager.js +385 -0
- package/dist/ui-components-shared/site-header.js +1 -1
- package/dist/ui-config.d.ts +1 -1
- package/dist/ui-server.d.ts +1 -1
- package/dist/ui-server.js +1 -1
- package/package.json +5 -5
- package/prisma/migrations/20260622050000_violation_catalog_management/migration.sql +5 -0
- package/prisma/schema.prisma +2 -0
|
@@ -98,6 +98,7 @@ var baseCopy = {
|
|
|
98
98
|
accounts: "Accounts",
|
|
99
99
|
roles: "Roles",
|
|
100
100
|
officers: "Officers",
|
|
101
|
+
violations: "Violations",
|
|
101
102
|
logs: "Activity log",
|
|
102
103
|
more: "More",
|
|
103
104
|
signOut: "Sign out",
|
|
@@ -195,6 +196,38 @@ var baseCopy = {
|
|
|
195
196
|
empty: "No officers yet \u2014 add the first one.",
|
|
196
197
|
actions: "Actions"
|
|
197
198
|
},
|
|
199
|
+
violationsPage: {
|
|
200
|
+
title: "Violation catalog",
|
|
201
|
+
subtitle: "The ordinance / violation schedule enforcers issue against. Archived entries are hidden from the Issue-Ticket form but kept for old tickets.",
|
|
202
|
+
newViolation: "New violation",
|
|
203
|
+
code: "Code",
|
|
204
|
+
codePlaceholder: "e.g. ORD 2021-05 S.4",
|
|
205
|
+
titleLabel: "Title",
|
|
206
|
+
titlePlaceholder: "e.g. No helmet (driver)",
|
|
207
|
+
category: "Category",
|
|
208
|
+
categoryTraffic: "Traffic",
|
|
209
|
+
categoryOrdinance: "Ordinance",
|
|
210
|
+
fine: "Basic fine (\u20B1)",
|
|
211
|
+
finePlaceholder: "e.g. 500",
|
|
212
|
+
legalText: "Legal basis (optional)",
|
|
213
|
+
legalTextPlaceholder: "e.g. Sec. 4, Municipal Ordinance No. 2021-05",
|
|
214
|
+
status: "Status",
|
|
215
|
+
active: "Active",
|
|
216
|
+
archived: "Archived",
|
|
217
|
+
edit: "Edit",
|
|
218
|
+
editTitle: "Edit violation",
|
|
219
|
+
create: "Add violation",
|
|
220
|
+
creating: "Adding\u2026",
|
|
221
|
+
save: "Save",
|
|
222
|
+
saving: "Saving\u2026",
|
|
223
|
+
cancel: "Cancel",
|
|
224
|
+
archive: "Archive",
|
|
225
|
+
restore: "Restore",
|
|
226
|
+
archiveConfirmTitle: "Archive this violation?",
|
|
227
|
+
archiveConfirmBody: "It will be hidden from the Issue-Ticket form. Already-issued tickets keep their copy, and you can restore it anytime.",
|
|
228
|
+
empty: "No violations yet \u2014 add the first one.",
|
|
229
|
+
actions: "Actions"
|
|
230
|
+
},
|
|
198
231
|
notifications: {
|
|
199
232
|
title: "Notifications",
|
|
200
233
|
subtitle: "Tickets that need attention \u2014 overdue and outstanding.",
|
|
@@ -6,6 +6,7 @@ var PERMISSION_CATALOG = [
|
|
|
6
6
|
{ key: "accounts:manage", label: "Manage accounts", description: "Create and manage user accounts." },
|
|
7
7
|
{ key: "roles:manage", label: "Manage roles", description: "Create roles and set their permissions." },
|
|
8
8
|
{ key: "officers:manage", label: "Manage officers", description: "Add, edit, and remove apprehending officers." },
|
|
9
|
+
{ key: "violations:manage", label: "Manage violations", description: "Add, edit, and archive the violation / ordinance catalog." },
|
|
9
10
|
{ key: "logs:view", label: "View activity logs", description: "Browse the audit trail of account actions." },
|
|
10
11
|
{ key: "notifications:view", label: "View notifications", description: "See the alert bell for overdue / pending tickets." }
|
|
11
12
|
];
|
|
@@ -22,6 +23,7 @@ var SYSTEM_ROLES = [
|
|
|
22
23
|
"accounts:manage",
|
|
23
24
|
"roles:manage",
|
|
24
25
|
"officers:manage",
|
|
26
|
+
"violations:manage",
|
|
25
27
|
"logs:view",
|
|
26
28
|
"notifications:view"
|
|
27
29
|
]
|
|
@@ -35,6 +37,7 @@ var SYSTEM_ROLES = [
|
|
|
35
37
|
"tickets:view",
|
|
36
38
|
"tickets:create",
|
|
37
39
|
"officers:manage",
|
|
40
|
+
"violations:manage",
|
|
38
41
|
"logs:view",
|
|
39
42
|
"notifications:view"
|
|
40
43
|
]
|
|
@@ -66,7 +69,10 @@ var ACTIVITY_ACTIONS = [
|
|
|
66
69
|
"role.delete",
|
|
67
70
|
"officer.create",
|
|
68
71
|
"officer.update",
|
|
69
|
-
"officer.delete"
|
|
72
|
+
"officer.delete",
|
|
73
|
+
"violation.create",
|
|
74
|
+
"violation.update",
|
|
75
|
+
"violation.delete"
|
|
70
76
|
];
|
|
71
77
|
var ACTIVITY_ACTION_LABELS = {
|
|
72
78
|
"auth.login": "Signed in",
|
|
@@ -83,7 +89,10 @@ var ACTIVITY_ACTION_LABELS = {
|
|
|
83
89
|
"role.delete": "Deleted role",
|
|
84
90
|
"officer.create": "Added officer",
|
|
85
91
|
"officer.update": "Updated officer",
|
|
86
|
-
"officer.delete": "Removed officer"
|
|
92
|
+
"officer.delete": "Removed officer",
|
|
93
|
+
"violation.create": "Added violation",
|
|
94
|
+
"violation.update": "Updated violation",
|
|
95
|
+
"violation.delete": "Archived violation"
|
|
87
96
|
};
|
|
88
97
|
|
|
89
98
|
export { ACTIVITY_ACTIONS, ACTIVITY_ACTION_LABELS, ALL_PERMISSIONS, DEFAULT_ROLE_NAME, PERMISSION_CATALOG, SUPER_ADMIN_LOCKED_PERMISSIONS, SYSTEM_ROLES, hasPermission };
|
package/dist/core-i18n.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { C as CopyOverrides, D as Dictionary } from './types-
|
|
2
|
-
export { b as baseCopy } from './types-
|
|
1
|
+
import { C as CopyOverrides, D as Dictionary } from './types-B8MopM4b.js';
|
|
2
|
+
export { b as baseCopy } from './types-B8MopM4b.js';
|
|
3
3
|
import { M as MunicipalityConfig } from './schema-CdsFQxIg.js';
|
|
4
4
|
import 'zod';
|
|
5
5
|
|
package/dist/core-i18n.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { baseCopy, mergeCopy } from './chunk-
|
|
1
|
+
export { baseCopy, mergeCopy } from './chunk-DJMUW5T2.js';
|
package/dist/data-mock-store.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SUPER_ADMIN_LOCKED_PERMISSIONS, ALL_PERMISSIONS } from './chunk-
|
|
1
|
+
import { SUPER_ADMIN_LOCKED_PERMISSIONS, ALL_PERMISSIONS } from './chunk-WUNTHINH.js';
|
|
2
2
|
import { round2, computeCharges, makePaymentRef, fullName, addDays, makeBillNo, makeOrderOfPaymentNo, makeOvrTicketNo, enrich } from './chunk-BI4EGLPG.js';
|
|
3
3
|
import 'server-only';
|
|
4
4
|
import { promises } from 'fs';
|
|
@@ -6,7 +6,7 @@ import { randomUUID } from 'crypto';
|
|
|
6
6
|
import os from 'os';
|
|
7
7
|
import path from 'path';
|
|
8
8
|
|
|
9
|
-
var SEED_VERSION =
|
|
9
|
+
var SEED_VERSION = 6;
|
|
10
10
|
var norm = (s) => s.trim().toLowerCase();
|
|
11
11
|
function slugRole(label) {
|
|
12
12
|
return label.trim().toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
@@ -27,7 +27,11 @@ function createMockStore(rules, seed) {
|
|
|
27
27
|
users: structuredClone(USERS),
|
|
28
28
|
roles: structuredClone(ROLES),
|
|
29
29
|
activities: [],
|
|
30
|
-
officers: structuredClone(OFFICERS)
|
|
30
|
+
officers: structuredClone(OFFICERS),
|
|
31
|
+
catalog: structuredClone(CATALOG).map((c) => ({
|
|
32
|
+
...c,
|
|
33
|
+
active: c.active ?? true
|
|
34
|
+
}))
|
|
31
35
|
};
|
|
32
36
|
}
|
|
33
37
|
async function writeStore(data) {
|
|
@@ -37,7 +41,7 @@ function createMockStore(rules, seed) {
|
|
|
37
41
|
try {
|
|
38
42
|
const raw = await promises.readFile(STORE_PATH, "utf8");
|
|
39
43
|
const data = JSON.parse(raw);
|
|
40
|
-
if (!data || data.version !== SEED_VERSION || !Array.isArray(data.tickets) || !Array.isArray(data.users) || !Array.isArray(data.roles) || !Array.isArray(data.activities) || !Array.isArray(data.officers) || typeof data.counter !== "number") {
|
|
44
|
+
if (!data || data.version !== SEED_VERSION || !Array.isArray(data.tickets) || !Array.isArray(data.users) || !Array.isArray(data.roles) || !Array.isArray(data.activities) || !Array.isArray(data.officers) || !Array.isArray(data.catalog) || typeof data.counter !== "number") {
|
|
41
45
|
const fresh = seeded();
|
|
42
46
|
await writeStore(fresh);
|
|
43
47
|
return fresh;
|
|
@@ -51,9 +55,69 @@ function createMockStore(rules, seed) {
|
|
|
51
55
|
}
|
|
52
56
|
const store = {
|
|
53
57
|
async listViolationCatalog(category) {
|
|
54
|
-
const
|
|
58
|
+
const data = await readStore();
|
|
59
|
+
const items = data.catalog.filter(
|
|
60
|
+
(c) => c.active !== false && (!category || c.category === category)
|
|
61
|
+
);
|
|
55
62
|
return structuredClone(items);
|
|
56
63
|
},
|
|
64
|
+
// ── Violation catalog management (GE-031) ──────────────────────────────
|
|
65
|
+
async listAllViolations() {
|
|
66
|
+
const data = await readStore();
|
|
67
|
+
return structuredClone(data.catalog).sort(
|
|
68
|
+
(a, b) => a.category === b.category ? a.code.localeCompare(b.code) : a.category.localeCompare(b.category)
|
|
69
|
+
);
|
|
70
|
+
},
|
|
71
|
+
async createViolation(input) {
|
|
72
|
+
const data = await readStore();
|
|
73
|
+
const code = input.code.trim();
|
|
74
|
+
if (!code) throw new Error("Violation code is required.");
|
|
75
|
+
const title = input.title.trim();
|
|
76
|
+
if (!title) throw new Error("Title is required.");
|
|
77
|
+
if (!(input.basicFine >= 0)) throw new Error("Basic fine must be \u2265 0.");
|
|
78
|
+
if (data.catalog.some((c) => norm(c.code) === norm(code))) {
|
|
79
|
+
throw new Error(`A violation with code "${code}" already exists.`);
|
|
80
|
+
}
|
|
81
|
+
const item = {
|
|
82
|
+
code,
|
|
83
|
+
title,
|
|
84
|
+
category: input.category,
|
|
85
|
+
basicFine: round2(input.basicFine),
|
|
86
|
+
legalText: input.legalText?.trim() || void 0,
|
|
87
|
+
active: true
|
|
88
|
+
};
|
|
89
|
+
data.catalog.push(item);
|
|
90
|
+
await writeStore(data);
|
|
91
|
+
return structuredClone(item);
|
|
92
|
+
},
|
|
93
|
+
async updateViolation(code, patch) {
|
|
94
|
+
const data = await readStore();
|
|
95
|
+
const c = data.catalog.find((x) => x.code === code);
|
|
96
|
+
if (!c) throw new Error("Violation not found.");
|
|
97
|
+
if (patch.title !== void 0) {
|
|
98
|
+
const title = patch.title.trim();
|
|
99
|
+
if (!title) throw new Error("Title is required.");
|
|
100
|
+
c.title = title;
|
|
101
|
+
}
|
|
102
|
+
if (patch.category !== void 0) c.category = patch.category;
|
|
103
|
+
if (patch.basicFine !== void 0) {
|
|
104
|
+
if (!(patch.basicFine >= 0)) throw new Error("Basic fine must be \u2265 0.");
|
|
105
|
+
c.basicFine = round2(patch.basicFine);
|
|
106
|
+
}
|
|
107
|
+
if (patch.legalText !== void 0) {
|
|
108
|
+
c.legalText = patch.legalText?.trim() || void 0;
|
|
109
|
+
}
|
|
110
|
+
if (patch.active !== void 0) c.active = patch.active;
|
|
111
|
+
await writeStore(data);
|
|
112
|
+
return structuredClone(c);
|
|
113
|
+
},
|
|
114
|
+
async deleteViolation(code) {
|
|
115
|
+
const data = await readStore();
|
|
116
|
+
const c = data.catalog.find((x) => x.code === code);
|
|
117
|
+
if (!c) throw new Error("Violation not found.");
|
|
118
|
+
c.active = false;
|
|
119
|
+
await writeStore(data);
|
|
120
|
+
},
|
|
57
121
|
async listOfficers() {
|
|
58
122
|
const data = await readStore();
|
|
59
123
|
return structuredClone(data.officers);
|
|
@@ -125,7 +189,7 @@ function createMockStore(rules, seed) {
|
|
|
125
189
|
const seq = store2.counter;
|
|
126
190
|
const officer = store2.officers.find((o) => o.id === input.officerId) ?? store2.officers[0];
|
|
127
191
|
const violations = input.violations.map((v) => {
|
|
128
|
-
const c =
|
|
192
|
+
const c = store2.catalog.find((x) => x.code === v.catalogCode);
|
|
129
193
|
if (!c) throw new Error(`Unknown violation code: ${v.catalogCode}`);
|
|
130
194
|
return {
|
|
131
195
|
catalogCode: c.code,
|
|
@@ -186,7 +250,7 @@ function createMockStore(rules, seed) {
|
|
|
186
250
|
const created = new Date(input.createdAt);
|
|
187
251
|
const officer = data.officers.find((o) => o.id === input.officerId) ?? data.officers[0];
|
|
188
252
|
const violations = input.violations.map((v) => {
|
|
189
|
-
const c =
|
|
253
|
+
const c = data.catalog.find((x) => x.code === v.catalogCode);
|
|
190
254
|
if (!c) throw new Error(`Unknown violation code: ${v.catalogCode}`);
|
|
191
255
|
return {
|
|
192
256
|
catalogCode: c.code,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { prisma } from './chunk-MKALJTAU.js';
|
|
2
|
-
import { SUPER_ADMIN_LOCKED_PERMISSIONS, ALL_PERMISSIONS } from './chunk-
|
|
2
|
+
import { SUPER_ADMIN_LOCKED_PERMISSIONS, ALL_PERMISSIONS } from './chunk-WUNTHINH.js';
|
|
3
3
|
import { round2, computeCharges, makePaymentRef, fullName, addDays, makeBillNo, makeOrderOfPaymentNo, makeOvrTicketNo, enrich } from './chunk-BI4EGLPG.js';
|
|
4
4
|
import 'server-only';
|
|
5
5
|
|
|
@@ -25,6 +25,16 @@ function toOfficer(o) {
|
|
|
25
25
|
office: o.office
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
|
+
function toViolation(c) {
|
|
29
|
+
return {
|
|
30
|
+
code: c.code,
|
|
31
|
+
title: c.title,
|
|
32
|
+
category: c.category,
|
|
33
|
+
basicFine: c.basicFine.toNumber(),
|
|
34
|
+
legalText: c.legalText ?? void 0,
|
|
35
|
+
active: c.active
|
|
36
|
+
};
|
|
37
|
+
}
|
|
28
38
|
function toUserAccount(u) {
|
|
29
39
|
return {
|
|
30
40
|
id: u.id,
|
|
@@ -95,16 +105,66 @@ function createPrismaStore(rules) {
|
|
|
95
105
|
const store = {
|
|
96
106
|
async listViolationCatalog(category) {
|
|
97
107
|
const items = await prisma.violationCatalog.findMany({
|
|
98
|
-
where: category ? { category } :
|
|
108
|
+
where: { active: true, ...category ? { category } : {} },
|
|
99
109
|
orderBy: [{ category: "asc" }, { code: "asc" }]
|
|
100
110
|
});
|
|
101
|
-
return items.map(
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
})
|
|
111
|
+
return items.map(toViolation);
|
|
112
|
+
},
|
|
113
|
+
// ── Violation catalog management (GE-031) ──────────────────────────────
|
|
114
|
+
async listAllViolations() {
|
|
115
|
+
const items = await prisma.violationCatalog.findMany({
|
|
116
|
+
orderBy: [{ category: "asc" }, { code: "asc" }]
|
|
117
|
+
});
|
|
118
|
+
return items.map(toViolation);
|
|
119
|
+
},
|
|
120
|
+
async createViolation(input) {
|
|
121
|
+
const code = input.code.trim();
|
|
122
|
+
if (!code) throw new Error("Violation code is required.");
|
|
123
|
+
const title = input.title.trim();
|
|
124
|
+
if (!title) throw new Error("Title is required.");
|
|
125
|
+
if (!(input.basicFine >= 0)) throw new Error("Basic fine must be \u2265 0.");
|
|
126
|
+
const existing = await prisma.violationCatalog.findUnique({
|
|
127
|
+
where: { code }
|
|
128
|
+
});
|
|
129
|
+
if (existing) {
|
|
130
|
+
throw new Error(`A violation with code "${code}" already exists.`);
|
|
131
|
+
}
|
|
132
|
+
const c = await prisma.violationCatalog.create({
|
|
133
|
+
data: {
|
|
134
|
+
code,
|
|
135
|
+
title,
|
|
136
|
+
category: input.category,
|
|
137
|
+
basicFine: round2(input.basicFine),
|
|
138
|
+
legalText: input.legalText?.trim() || null,
|
|
139
|
+
active: true
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
return toViolation(c);
|
|
143
|
+
},
|
|
144
|
+
async updateViolation(code, patch) {
|
|
145
|
+
const data = {};
|
|
146
|
+
if (patch.title !== void 0) {
|
|
147
|
+
const title = patch.title.trim();
|
|
148
|
+
if (!title) throw new Error("Title is required.");
|
|
149
|
+
data.title = title;
|
|
150
|
+
}
|
|
151
|
+
if (patch.category !== void 0) data.category = patch.category;
|
|
152
|
+
if (patch.basicFine !== void 0) {
|
|
153
|
+
if (!(patch.basicFine >= 0)) throw new Error("Basic fine must be \u2265 0.");
|
|
154
|
+
data.basicFine = round2(patch.basicFine);
|
|
155
|
+
}
|
|
156
|
+
if (patch.legalText !== void 0) {
|
|
157
|
+
data.legalText = patch.legalText?.trim() || null;
|
|
158
|
+
}
|
|
159
|
+
if (patch.active !== void 0) data.active = patch.active;
|
|
160
|
+
const c = await prisma.violationCatalog.update({ where: { code }, data });
|
|
161
|
+
return toViolation(c);
|
|
162
|
+
},
|
|
163
|
+
async deleteViolation(code) {
|
|
164
|
+
await prisma.violationCatalog.update({
|
|
165
|
+
where: { code },
|
|
166
|
+
data: { active: false }
|
|
167
|
+
});
|
|
108
168
|
},
|
|
109
169
|
async listOfficers() {
|
|
110
170
|
const officers = await prisma.officer.findMany({
|
package/dist/data.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ViolationCatalogItem, Officer, TicketRecord, UserAccount, RoleDef, ViolationCategory, NewOfficerInput, Violator, Ticket, TicketStatus, PaymentMethod, NewUserInput, Permission, NewRoleInput, NewActivityInput, ActivityFilter, ActivityLog } from './types.js';
|
|
1
|
+
import { ViolationCatalogItem, Officer, TicketRecord, UserAccount, RoleDef, ViolationCategory, NewViolationInput, NewOfficerInput, Violator, Ticket, TicketStatus, PaymentMethod, NewUserInput, Permission, NewRoleInput, NewActivityInput, ActivityFilter, ActivityLog } from './types.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* The data-access contract. UI code depends ONLY on this interface — never on a
|
|
@@ -44,7 +44,18 @@ interface TicketStats {
|
|
|
44
44
|
issuedToday: number;
|
|
45
45
|
}
|
|
46
46
|
interface DataStore {
|
|
47
|
+
/** ACTIVE catalog entries only (what enforcers may issue against). */
|
|
47
48
|
listViolationCatalog(category?: ViolationCategory): Promise<ViolationCatalogItem[]>;
|
|
49
|
+
/** ALL catalog entries incl. archived — for the admin Violations manager. */
|
|
50
|
+
listAllViolations(): Promise<ViolationCatalogItem[]>;
|
|
51
|
+
/** Add a catalog entry (code is the id; must be unique). */
|
|
52
|
+
createViolation(input: NewViolationInput): Promise<ViolationCatalogItem>;
|
|
53
|
+
/** Edit an entry's title/category/fine/legalText, or (un)archive it. */
|
|
54
|
+
updateViolation(code: string, patch: Partial<Omit<NewViolationInput, "code">> & {
|
|
55
|
+
active?: boolean;
|
|
56
|
+
}): Promise<ViolationCatalogItem>;
|
|
57
|
+
/** Archive an entry (soft-delete: active=false) so old tickets stay resolvable. */
|
|
58
|
+
deleteViolation(code: string): Promise<void>;
|
|
48
59
|
listOfficers(): Promise<Officer[]>;
|
|
49
60
|
getOfficer(id: string): Promise<Officer | null>;
|
|
50
61
|
/** Add an apprehending officer (id is slugified from the name; must be unique). */
|
|
@@ -108,7 +108,9 @@ exports.Prisma.ViolationCatalogScalarFieldEnum = {
|
|
|
108
108
|
category: 'category',
|
|
109
109
|
basicFine: 'basicFine',
|
|
110
110
|
legalText: 'legalText',
|
|
111
|
-
|
|
111
|
+
active: 'active',
|
|
112
|
+
createdAt: 'createdAt',
|
|
113
|
+
updatedAt: 'updatedAt'
|
|
112
114
|
};
|
|
113
115
|
|
|
114
116
|
exports.Prisma.TicketScalarFieldEnum = {
|
|
@@ -280,13 +282,13 @@ const config = {
|
|
|
280
282
|
}
|
|
281
283
|
}
|
|
282
284
|
},
|
|
283
|
-
"inlineSchema": "// e-OVR data model — the real backend behind the `DataStore` interface.\n// Mirrors `lib/types.ts`: one canonical Ticket record, normalized into\n// ticket + violations (1:N) + payment (1:1), with officers, a violation\n// catalog, and admin users. Money is Decimal(12,2); the store converts\n// Prisma.Decimal -> number at the boundary (Decimal is not serializable\n// across the RSC -> Client boundary).\n\ngenerator client {\n provider = \"prisma-client-js\"\n // Custom in-package output (pnpm-deterministic): the generated client is a real\n // file inside this package, imported via \"./generated/client\". Do NOT rely on a\n // hoisted node_modules/.prisma. The default @prisma/client (.prisma/client) is\n // intentionally NEVER generated after this move — ALL PrismaClient/Prisma imports\n // must go through @gelabs/ovr-data/generated/client.\n output = \"../src/generated/client\"\n // \"native\" for host dev (macOS); the musl/OpenSSL-3 target runs inside the\n // node:22-alpine Docker image.\n binaryTargets = [\"native\", \"linux-musl-openssl-3.0.x\"]\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\nenum ViolationCategory {\n TRAFFIC\n ORDINANCE\n}\n\nenum PaymentMethod {\n GCASH\n MAYA\n LANDBANK\n OVER_THE_COUNTER\n}\n\n/**\n * Persisted, explicit payment state (not the displayed status).\n */\nenum PaymentStatus {\n UNPAID\n PAID\n CONTESTED\n}\n\nmodel Officer {\n id String @id // slug, e.g. \"off-novelo\"\n name String // \"NOVELO, RAYMUNDO V.\"\n badgeNo String?\n office String // e.g. \"POSO\"\n\n tickets Ticket[]\n user User?\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel ViolationCatalog {\n code String @id // e.g. \"A25 S1-9 S-2021\"\n title String\n category ViolationCategory\n basicFine Decimal @db.Decimal(12, 2)\n legalText String?\n\n createdAt DateTime @default(now())\n}\n\nmodel Ticket {\n // system-generated identifiers\n ovrTicketNo String @id // \"IBA-2026-000123\"\n orderOfPaymentNo String @unique // \"IBA-2026-000123-01\"\n billNo String @unique // \"M-2026-06-03-POSO-A176-000123\"\n\n // violator snapshot (immutable facts — flat columns, not a relation)\n violatorFirstName String\n violatorMiddleName String?\n violatorLastName String\n violatorStreet String\n violatorBarangay String?\n violatorCityMunicipality String\n violatorProvince String\n violatorLicenseNumber String\n violatorPlateNumber String?\n violatorContactNo String?\n\n // enforcer-entered\n apprehendedAt DateTime\n placeOfViolation String?\n remarks String?\n issuedBy String?\n\n // GE-011: the enforcer ACCOUNT who apprehended (+ snapshot name for display).\n // Soft reference to User.id — intentionally NOT a hard FK so the attribution\n // survives if the account is later renamed or removed.\n apprehendingEnforcerId String?\n apprehendingEnforcerName String?\n\n officerId String\n officer Officer @relation(fields: [officerId], references: [id])\n\n // system-generated on confirm\n assessedAt DateTime\n dueDate DateTime\n basicFinesTotal Decimal @db.Decimal(12, 2)\n paymentStatus PaymentStatus @default(UNPAID)\n\n createdAt DateTime @default(now())\n\n violations TicketViolation[]\n payment Payment?\n\n // back filters used by listTickets (name / plate / status / recency)\n @@index([violatorLastName])\n @@index([violatorPlateNumber])\n @@index([paymentStatus])\n @@index([createdAt])\n}\n\nmodel TicketViolation {\n id String @id @default(cuid())\n ticketOvrNo String\n ticket Ticket @relation(fields: [ticketOvrNo], references: [ovrTicketNo], onDelete: Cascade)\n\n // Soft reference to ViolationCatalog.code — intentionally NOT a hard FK so the\n // snapshot (title/basicFine) survives any later catalog edit or removal.\n catalogCode String\n title String\n basicFine Decimal @db.Decimal(12, 2)\n details String?\n\n @@index([ticketOvrNo])\n}\n\nmodel Payment {\n id String @id @default(cuid())\n ticketOvrNo String @unique // one payment per ticket\n ticket Ticket @relation(fields: [ticketOvrNo], references: [ovrTicketNo], onDelete: Cascade)\n\n method PaymentMethod\n amount Decimal @db.Decimal(12, 2)\n referenceNo String @unique\n paidAt DateTime\n}\n\n// A role + its permission set (GE-013, custom roles). Permission keys come from\n// the SDK catalog (@gelabs/ovr-types PERMISSION_CATALOG); the mapping is data.\nmodel Role {\n name String @id // \"SUPER_ADMIN\" / \"ENFORCER\" / custom slug e.g. \"cashier\"\n label String // display name shown in the UI\n isSystem Boolean @default(false) // system roles can't be renamed or deleted\n permissions String[] // granted Permission keys\n\n users User[]\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel User {\n id String @id @default(cuid())\n username String @unique\n passwordHash String\n\n // Role is DATA now (see model Role): a string FK so custom roles are allowed.\n role String @default(\"ENFORCER\")\n roleRef Role @relation(fields: [role], references: [name])\n\n active Boolean @default(true)\n\n // Links a login to an enforcer (so issued tickets can attribute the officer).\n officerId String? @unique\n officer Officer? @relation(fields: [officerId], references: [id])\n\n createdAt DateTime @default(now())\n}\n\n// Audit trail (GE-022): who did what, when. Append-only. Actor is a SOFT\n// reference (snapshot username) so entries survive account deletion.\nmodel ActivityLog {\n id String @id @default(cuid())\n actorId String?\n actorUsername String?\n action String // e.g. \"auth.login\", \"account.create\", \"role.update\"\n summary String // human-readable one-liner\n targetType String? // \"account\" | \"role\" | \"ticket\" | …\n targetId String?\n\n createdAt DateTime @default(now())\n\n @@index([action])\n @@index([actorId])\n @@index([createdAt])\n}\n",
|
|
284
|
-
"inlineSchemaHash": "
|
|
285
|
+
"inlineSchema": "// e-OVR data model — the real backend behind the `DataStore` interface.\n// Mirrors `lib/types.ts`: one canonical Ticket record, normalized into\n// ticket + violations (1:N) + payment (1:1), with officers, a violation\n// catalog, and admin users. Money is Decimal(12,2); the store converts\n// Prisma.Decimal -> number at the boundary (Decimal is not serializable\n// across the RSC -> Client boundary).\n\ngenerator client {\n provider = \"prisma-client-js\"\n // Custom in-package output (pnpm-deterministic): the generated client is a real\n // file inside this package, imported via \"./generated/client\". Do NOT rely on a\n // hoisted node_modules/.prisma. The default @prisma/client (.prisma/client) is\n // intentionally NEVER generated after this move — ALL PrismaClient/Prisma imports\n // must go through @gelabs/ovr-data/generated/client.\n output = \"../src/generated/client\"\n // \"native\" for host dev (macOS); the musl/OpenSSL-3 target runs inside the\n // node:22-alpine Docker image.\n binaryTargets = [\"native\", \"linux-musl-openssl-3.0.x\"]\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\nenum ViolationCategory {\n TRAFFIC\n ORDINANCE\n}\n\nenum PaymentMethod {\n GCASH\n MAYA\n LANDBANK\n OVER_THE_COUNTER\n}\n\n/**\n * Persisted, explicit payment state (not the displayed status).\n */\nenum PaymentStatus {\n UNPAID\n PAID\n CONTESTED\n}\n\nmodel Officer {\n id String @id // slug, e.g. \"off-novelo\"\n name String // \"NOVELO, RAYMUNDO V.\"\n badgeNo String?\n office String // e.g. \"POSO\"\n\n tickets Ticket[]\n user User?\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel ViolationCatalog {\n code String @id // e.g. \"A25 S1-9 S-2021\"\n title String\n category ViolationCategory\n basicFine Decimal @db.Decimal(12, 2)\n legalText String?\n active Boolean @default(true) // GE-031: false = archived (hidden from issuance)\n\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now()) @updatedAt\n}\n\nmodel Ticket {\n // system-generated identifiers\n ovrTicketNo String @id // \"IBA-2026-000123\"\n orderOfPaymentNo String @unique // \"IBA-2026-000123-01\"\n billNo String @unique // \"M-2026-06-03-POSO-A176-000123\"\n\n // violator snapshot (immutable facts — flat columns, not a relation)\n violatorFirstName String\n violatorMiddleName String?\n violatorLastName String\n violatorStreet String\n violatorBarangay String?\n violatorCityMunicipality String\n violatorProvince String\n violatorLicenseNumber String\n violatorPlateNumber String?\n violatorContactNo String?\n\n // enforcer-entered\n apprehendedAt DateTime\n placeOfViolation String?\n remarks String?\n issuedBy String?\n\n // GE-011: the enforcer ACCOUNT who apprehended (+ snapshot name for display).\n // Soft reference to User.id — intentionally NOT a hard FK so the attribution\n // survives if the account is later renamed or removed.\n apprehendingEnforcerId String?\n apprehendingEnforcerName String?\n\n officerId String\n officer Officer @relation(fields: [officerId], references: [id])\n\n // system-generated on confirm\n assessedAt DateTime\n dueDate DateTime\n basicFinesTotal Decimal @db.Decimal(12, 2)\n paymentStatus PaymentStatus @default(UNPAID)\n\n createdAt DateTime @default(now())\n\n violations TicketViolation[]\n payment Payment?\n\n // back filters used by listTickets (name / plate / status / recency)\n @@index([violatorLastName])\n @@index([violatorPlateNumber])\n @@index([paymentStatus])\n @@index([createdAt])\n}\n\nmodel TicketViolation {\n id String @id @default(cuid())\n ticketOvrNo String\n ticket Ticket @relation(fields: [ticketOvrNo], references: [ovrTicketNo], onDelete: Cascade)\n\n // Soft reference to ViolationCatalog.code — intentionally NOT a hard FK so the\n // snapshot (title/basicFine) survives any later catalog edit or removal.\n catalogCode String\n title String\n basicFine Decimal @db.Decimal(12, 2)\n details String?\n\n @@index([ticketOvrNo])\n}\n\nmodel Payment {\n id String @id @default(cuid())\n ticketOvrNo String @unique // one payment per ticket\n ticket Ticket @relation(fields: [ticketOvrNo], references: [ovrTicketNo], onDelete: Cascade)\n\n method PaymentMethod\n amount Decimal @db.Decimal(12, 2)\n referenceNo String @unique\n paidAt DateTime\n}\n\n// A role + its permission set (GE-013, custom roles). Permission keys come from\n// the SDK catalog (@gelabs/ovr-types PERMISSION_CATALOG); the mapping is data.\nmodel Role {\n name String @id // \"SUPER_ADMIN\" / \"ENFORCER\" / custom slug e.g. \"cashier\"\n label String // display name shown in the UI\n isSystem Boolean @default(false) // system roles can't be renamed or deleted\n permissions String[] // granted Permission keys\n\n users User[]\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel User {\n id String @id @default(cuid())\n username String @unique\n passwordHash String\n\n // Role is DATA now (see model Role): a string FK so custom roles are allowed.\n role String @default(\"ENFORCER\")\n roleRef Role @relation(fields: [role], references: [name])\n\n active Boolean @default(true)\n\n // Links a login to an enforcer (so issued tickets can attribute the officer).\n officerId String? @unique\n officer Officer? @relation(fields: [officerId], references: [id])\n\n createdAt DateTime @default(now())\n}\n\n// Audit trail (GE-022): who did what, when. Append-only. Actor is a SOFT\n// reference (snapshot username) so entries survive account deletion.\nmodel ActivityLog {\n id String @id @default(cuid())\n actorId String?\n actorUsername String?\n action String // e.g. \"auth.login\", \"account.create\", \"role.update\"\n summary String // human-readable one-liner\n targetType String? // \"account\" | \"role\" | \"ticket\" | …\n targetId String?\n\n createdAt DateTime @default(now())\n\n @@index([action])\n @@index([actorId])\n @@index([createdAt])\n}\n",
|
|
286
|
+
"inlineSchemaHash": "b1a244b0a6fa1efd29dbbc7bf66343a6833465472fdb389d5be80139b87b560a",
|
|
285
287
|
"copyEngine": true
|
|
286
288
|
}
|
|
287
289
|
config.dirname = '/'
|
|
288
290
|
|
|
289
|
-
config.runtimeDataModel = JSON.parse("{\"models\":{\"Officer\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"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\":\"badgeNo\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"office\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"tickets\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Ticket\",\"nativeType\":null,\"relationName\":\"OfficerToTicket\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"OfficerToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"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\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"ViolationCatalog\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"code\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"category\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"ViolationCategory\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"basicFine\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Decimal\",\"nativeType\":[\"Decimal\",[\"12\",\"2\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"legalText\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Ticket\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"ovrTicketNo\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"orderOfPaymentNo\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"billNo\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"violatorFirstName\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"violatorMiddleName\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"violatorLastName\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"violatorStreet\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"violatorBarangay\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"violatorCityMunicipality\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"violatorProvince\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"violatorLicenseNumber\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"violatorPlateNumber\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"violatorContactNo\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"apprehendedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"placeOfViolation\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"remarks\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"issuedBy\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"apprehendingEnforcerId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"apprehendingEnforcerName\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"officerId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"officer\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Officer\",\"nativeType\":null,\"relationName\":\"OfficerToTicket\",\"relationFromFields\":[\"officerId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"assessedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"dueDate\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"basicFinesTotal\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Decimal\",\"nativeType\":[\"Decimal\",[\"12\",\"2\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"paymentStatus\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"PaymentStatus\",\"nativeType\":null,\"default\":\"UNPAID\",\"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\":\"violations\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"TicketViolation\",\"nativeType\":null,\"relationName\":\"TicketToTicketViolation\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"payment\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Payment\",\"nativeType\":null,\"relationName\":\"PaymentToTicket\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"TicketViolation\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"cuid\",\"args\":[1]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ticketOvrNo\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ticket\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Ticket\",\"nativeType\":null,\"relationName\":\"TicketToTicketViolation\",\"relationFromFields\":[\"ticketOvrNo\"],\"relationToFields\":[\"ovrTicketNo\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"catalogCode\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"basicFine\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Decimal\",\"nativeType\":[\"Decimal\",[\"12\",\"2\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"details\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Payment\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"cuid\",\"args\":[1]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ticketOvrNo\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ticket\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Ticket\",\"nativeType\":null,\"relationName\":\"PaymentToTicket\",\"relationFromFields\":[\"ticketOvrNo\"],\"relationToFields\":[\"ovrTicketNo\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"method\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"PaymentMethod\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"amount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Decimal\",\"nativeType\":[\"Decimal\",[\"12\",\"2\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"referenceNo\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"paidAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Role\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"label\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"isSystem\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"permissions\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"users\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"RoleToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"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\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"User\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"cuid\",\"args\":[1]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"username\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"passwordHash\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"role\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"ENFORCER\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"roleRef\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Role\",\"nativeType\":null,\"relationName\":\"RoleToUser\",\"relationFromFields\":[\"role\"],\"relationToFields\":[\"name\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"active\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":true,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"officerId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"officer\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Officer\",\"nativeType\":null,\"relationName\":\"OfficerToUser\",\"relationFromFields\":[\"officerId\"],\"relationToFields\":[\"id\"],\"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}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"ActivityLog\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"cuid\",\"args\":[1]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"actorId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"actorUsername\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"action\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"summary\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"targetType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"targetId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{\"ViolationCategory\":{\"values\":[{\"name\":\"TRAFFIC\",\"dbName\":null},{\"name\":\"ORDINANCE\",\"dbName\":null}],\"dbName\":null},\"PaymentMethod\":{\"values\":[{\"name\":\"GCASH\",\"dbName\":null},{\"name\":\"MAYA\",\"dbName\":null},{\"name\":\"LANDBANK\",\"dbName\":null},{\"name\":\"OVER_THE_COUNTER\",\"dbName\":null}],\"dbName\":null},\"PaymentStatus\":{\"values\":[{\"name\":\"UNPAID\",\"dbName\":null},{\"name\":\"PAID\",\"dbName\":null},{\"name\":\"CONTESTED\",\"dbName\":null}],\"dbName\":null,\"documentation\":\"* Persisted, explicit payment state (not the displayed status).\"}},\"types\":{}}")
|
|
291
|
+
config.runtimeDataModel = JSON.parse("{\"models\":{\"Officer\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"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\":\"badgeNo\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"office\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"tickets\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Ticket\",\"nativeType\":null,\"relationName\":\"OfficerToTicket\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"OfficerToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"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\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"ViolationCatalog\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"code\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"category\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"ViolationCategory\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"basicFine\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Decimal\",\"nativeType\":[\"Decimal\",[\"12\",\"2\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"legalText\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"active\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":true,\"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},\"Ticket\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"ovrTicketNo\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"orderOfPaymentNo\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"billNo\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"violatorFirstName\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"violatorMiddleName\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"violatorLastName\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"violatorStreet\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"violatorBarangay\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"violatorCityMunicipality\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"violatorProvince\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"violatorLicenseNumber\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"violatorPlateNumber\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"violatorContactNo\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"apprehendedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"placeOfViolation\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"remarks\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"issuedBy\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"apprehendingEnforcerId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"apprehendingEnforcerName\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"officerId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"officer\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Officer\",\"nativeType\":null,\"relationName\":\"OfficerToTicket\",\"relationFromFields\":[\"officerId\"],\"relationToFields\":[\"id\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"assessedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"dueDate\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"basicFinesTotal\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Decimal\",\"nativeType\":[\"Decimal\",[\"12\",\"2\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"paymentStatus\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"PaymentStatus\",\"nativeType\":null,\"default\":\"UNPAID\",\"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\":\"violations\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"TicketViolation\",\"nativeType\":null,\"relationName\":\"TicketToTicketViolation\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"payment\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Payment\",\"nativeType\":null,\"relationName\":\"PaymentToTicket\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"TicketViolation\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"cuid\",\"args\":[1]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ticketOvrNo\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ticket\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Ticket\",\"nativeType\":null,\"relationName\":\"TicketToTicketViolation\",\"relationFromFields\":[\"ticketOvrNo\"],\"relationToFields\":[\"ovrTicketNo\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"catalogCode\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"basicFine\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Decimal\",\"nativeType\":[\"Decimal\",[\"12\",\"2\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"details\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Payment\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"cuid\",\"args\":[1]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ticketOvrNo\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ticket\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Ticket\",\"nativeType\":null,\"relationName\":\"PaymentToTicket\",\"relationFromFields\":[\"ticketOvrNo\"],\"relationToFields\":[\"ovrTicketNo\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"method\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"PaymentMethod\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"amount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Decimal\",\"nativeType\":[\"Decimal\",[\"12\",\"2\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"referenceNo\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"paidAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Role\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"label\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"isSystem\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"permissions\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"users\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"RoleToUser\",\"relationFromFields\":[],\"relationToFields\":[],\"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\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"User\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"cuid\",\"args\":[1]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"username\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"passwordHash\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"role\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"ENFORCER\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"roleRef\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Role\",\"nativeType\":null,\"relationName\":\"RoleToUser\",\"relationFromFields\":[\"role\"],\"relationToFields\":[\"name\"],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"active\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":true,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"officerId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":true,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"officer\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Officer\",\"nativeType\":null,\"relationName\":\"OfficerToUser\",\"relationFromFields\":[\"officerId\"],\"relationToFields\":[\"id\"],\"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}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"ActivityLog\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"cuid\",\"args\":[1]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"actorId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"actorUsername\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"action\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"summary\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"targetType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"targetId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{\"ViolationCategory\":{\"values\":[{\"name\":\"TRAFFIC\",\"dbName\":null},{\"name\":\"ORDINANCE\",\"dbName\":null}],\"dbName\":null},\"PaymentMethod\":{\"values\":[{\"name\":\"GCASH\",\"dbName\":null},{\"name\":\"MAYA\",\"dbName\":null},{\"name\":\"LANDBANK\",\"dbName\":null},{\"name\":\"OVER_THE_COUNTER\",\"dbName\":null}],\"dbName\":null},\"PaymentStatus\":{\"values\":[{\"name\":\"UNPAID\",\"dbName\":null},{\"name\":\"PAID\",\"dbName\":null},{\"name\":\"CONTESTED\",\"dbName\":null}],\"dbName\":null,\"documentation\":\"* Persisted, explicit payment state (not the displayed status).\"}},\"types\":{}}")
|
|
290
292
|
defineDmmfProperty(exports.Prisma, config.runtimeDataModel)
|
|
291
293
|
config.engineWasm = undefined
|
|
292
294
|
config.compilerWasm = undefined
|
|
@@ -136,7 +136,9 @@ exports.Prisma.ViolationCatalogScalarFieldEnum = {
|
|
|
136
136
|
category: 'category',
|
|
137
137
|
basicFine: 'basicFine',
|
|
138
138
|
legalText: 'legalText',
|
|
139
|
-
|
|
139
|
+
active: 'active',
|
|
140
|
+
createdAt: 'createdAt',
|
|
141
|
+
updatedAt: 'updatedAt'
|
|
140
142
|
};
|
|
141
143
|
|
|
142
144
|
exports.Prisma.TicketScalarFieldEnum = {
|