create-fullstack-scaffold 0.4.24 → 0.5.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.
Files changed (146) hide show
  1. package/dist/cli/index.js +439 -15
  2. package/dist/cli/index.js.map +1 -1
  3. package/package.json +10 -13
  4. package/template/eslint-rules/__tests__/no-merged-api-type-export.test.ts +96 -0
  5. package/template/eslint-rules/no-cross-module-service-import.js +4 -0
  6. package/template/eslint-rules/no-merged-api-type-export.js +190 -0
  7. package/template/eslint.config.js +3 -0
  8. package/template/package.json +9 -6
  9. package/template/scripts/sync-agent-hooks.mjs +189 -0
  10. package/template/src/admin/components/__tests__/StatsCard.test.tsx +2 -2
  11. package/template/src/admin/pages/ContentPage.tsx +1 -1
  12. package/template/src/admin/pages/DisputesPage.tsx +1 -1
  13. package/template/src/admin/pages/OrdersPage.tsx +1 -1
  14. package/template/src/admin/pages/TicketsPage.tsx +1 -1
  15. package/template/src/admin/pages/__tests__/ContentPage.test.tsx +5 -1
  16. package/template/src/admin/pages/__tests__/DashboardPage.test.tsx +62 -8
  17. package/template/src/admin/pages/__tests__/DisputesPage.test.tsx +8 -1
  18. package/template/src/admin/pages/__tests__/OrdersPage.test.tsx +4 -2
  19. package/template/src/admin/pages/__tests__/RegisterPage.test.tsx +40 -43
  20. package/template/src/admin/pages/__tests__/SettingsPage.test.tsx +83 -21
  21. package/template/src/admin/pages/__tests__/TicketsPage.test.tsx +3 -1
  22. package/template/src/admin/services/apiClient.ts +2 -3
  23. package/template/src/cli/modules/content/index.ts +3 -3
  24. package/template/src/cli/modules/dispute/index.ts +3 -3
  25. package/template/src/cli/modules/ticket/index.ts +3 -3
  26. package/template/src/cli/modules/todo/index.ts +1 -1
  27. package/template/src/cli/rpc/client.ts +3 -4
  28. package/template/src/cli/rpc/index.ts +1 -1
  29. package/template/src/client/App.tsx +3 -39
  30. package/template/src/client/AppRoutes.tsx +53 -0
  31. package/template/src/client/entry-server.tsx +75 -0
  32. package/template/src/client/main.tsx +3 -1
  33. package/template/src/client/pages/SearchPage.tsx +1 -1
  34. package/template/src/client/services/apiClient.ts +12 -4
  35. package/template/src/client/stores/__tests__/todoStore.test.ts +12 -3
  36. package/template/src/client/stores/entry-stores.ts +36 -0
  37. package/template/src/client/stores/notificationStore.ts +4 -4
  38. package/template/src/client/stores/todoStore.ts +2 -2
  39. package/template/src/merchant/pages/DisputesPage.tsx +3 -3
  40. package/template/src/merchant/pages/OrdersPage.tsx +1 -1
  41. package/template/src/merchant/pages/ProductsPage.tsx +1 -1
  42. package/template/src/merchant/pages/SettingsPage.tsx +1 -1
  43. package/template/src/server/__tests__/integration/isr-full-flow.test.ts +251 -0
  44. package/template/src/server/__tests__/integration/todos-api.test.ts +7 -4
  45. package/template/src/server/app.ts +6 -4
  46. package/template/src/server/core/__tests__/isr-cache.test.ts +96 -92
  47. package/template/src/server/core/__tests__/isr-invalidation.test.ts +29 -4
  48. package/template/src/server/core/__tests__/isr-registry.test.ts +215 -0
  49. package/template/src/server/core/__tests__/isr-renderer.test.ts +121 -0
  50. package/template/src/server/core/isr-cache.ts +6 -12
  51. package/template/src/server/core/isr-invalidation.ts +6 -12
  52. package/template/src/server/core/isr-registry.ts +104 -0
  53. package/template/src/server/core/isr-renderer.ts +75 -0
  54. package/template/src/server/db/schema/contents.ts +28 -20
  55. package/template/src/server/db/schema/disputes.ts +30 -22
  56. package/template/src/server/db/schema/notifications.ts +20 -14
  57. package/template/src/server/db/schema/orders.ts +23 -16
  58. package/template/src/server/db/schema/plugins.ts +56 -38
  59. package/template/src/server/db/schema/products.ts +24 -17
  60. package/template/src/server/db/schema/tickets.ts +44 -31
  61. package/template/src/server/db/schema/todos.ts +26 -18
  62. package/template/src/server/entries/cloudflare.ts +82 -19
  63. package/template/src/server/entries/node.ts +0 -2
  64. package/template/src/server/index.ts +0 -1
  65. package/template/src/server/isr-modules.ts +10 -0
  66. package/template/src/server/module-admin/__tests__/admin-service.test.ts +36 -12
  67. package/template/src/server/module-admin/routes/admin-notification-routes.ts +2 -1
  68. package/template/src/server/module-admin/routes/admin-routes.ts +3 -0
  69. package/template/src/server/module-admin/routes/dashboard-routes.ts +3 -0
  70. package/template/src/server/module-admin/services/admin-service.ts +57 -13
  71. package/template/src/server/module-auth/routes/auth-routes.ts +3 -0
  72. package/template/src/server/module-auth/routes/profile-routes.ts +3 -0
  73. package/template/src/server/module-captcha/routes/captcha-routes.ts +3 -0
  74. package/template/src/server/module-chat/routes/chat-routes.ts +4 -1
  75. package/template/src/server/module-content/__tests__/content-route.test.ts +2 -1
  76. package/template/src/server/module-content/__tests__/content-service.test.ts +2 -1
  77. package/template/src/server/module-content/__tests__/isr.test.ts +138 -0
  78. package/template/src/server/module-content/isr.ts +63 -0
  79. package/template/src/server/module-content/routes/content-routes.ts +10 -10
  80. package/template/src/server/module-content/routes/public-content-routes.ts +8 -4
  81. package/template/src/server/module-content/routes/topics-routes.ts +3 -0
  82. package/template/src/server/module-content/services/content-service.ts +23 -10
  83. package/template/src/server/module-dispute/__tests__/dispute-route.test.ts +2 -1
  84. package/template/src/server/module-dispute/__tests__/dispute-service.test.ts +2 -1
  85. package/template/src/server/module-dispute/routes/dispute-routes.ts +11 -10
  86. package/template/src/server/module-dispute/services/dispute-service.ts +15 -3
  87. package/template/src/server/module-file/routes/file-routes.ts +3 -0
  88. package/template/src/server/module-merchant/routes/merchant-routes.ts +3 -0
  89. package/template/src/server/module-merchant/services/merchant-service.ts +8 -8
  90. package/template/src/server/module-notifications/routes/notification-routes.ts +5 -1
  91. package/template/src/server/module-order/__tests__/order-route.test.ts +8 -8
  92. package/template/src/server/module-order/__tests__/order-service.test.ts +4 -3
  93. package/template/src/server/module-order/routes/cart-routes.ts +3 -0
  94. package/template/src/server/module-order/routes/order-routes.ts +9 -4
  95. package/template/src/server/module-order/routes/orders-mock-routes.ts +3 -0
  96. package/template/src/server/module-order/services/order-service.ts +25 -13
  97. package/template/src/server/module-permission/__tests__/audit-log-service.test.ts +464 -0
  98. package/template/src/server/module-permission/__tests__/role-service.test.ts +348 -0
  99. package/template/src/server/module-permission/routes/audit-log-routes.ts +3 -0
  100. package/template/src/server/module-permission/routes/permission-routes.ts +3 -0
  101. package/template/src/server/module-permission/routes/role-routes.ts +3 -0
  102. package/template/src/server/module-plugin/routes/plugin-admin-routes.ts +3 -0
  103. package/template/src/server/module-plugin/routes/plugin-routes.ts +3 -0
  104. package/template/src/server/module-plugin/services/admin-plugin-service.ts +10 -18
  105. package/template/src/server/module-plugin/services/admin-stats-service.ts +28 -9
  106. package/template/src/server/module-plugin/services/plugin-query-service.ts +42 -66
  107. package/template/src/server/module-tenant/routes/tenant-routes.ts +5 -1
  108. package/template/src/server/module-ticket/__tests__/ticket-route.test.ts +2 -1
  109. package/template/src/server/module-ticket/__tests__/ticket-service.test.ts +4 -3
  110. package/template/src/server/module-ticket/routes/ticket-routes.ts +11 -10
  111. package/template/src/server/module-ticket/services/ticket-service.ts +16 -5
  112. package/template/src/server/module-todos/__tests__/isr.test.ts +105 -0
  113. package/template/src/server/module-todos/__tests__/todo-service.test.ts +12 -9
  114. package/template/src/server/module-todos/__tests__/todos-route-rpc.test.ts +6 -6
  115. package/template/src/server/module-todos/isr.ts +41 -0
  116. package/template/src/server/module-todos/routes/todos-routes.ts +12 -5
  117. package/template/src/server/module-todos/services/todo-service.ts +31 -10
  118. package/template/src/server/route-registry.ts +0 -4
  119. package/template/src/server/rpc-merge.ts +27 -0
  120. package/template/src/server/rpc-surface.ts +117 -0
  121. package/template/src/server/rpc-type-canary.ts +80 -0
  122. package/template/src/server/test-utils/test-client.ts +7 -9
  123. package/template/src/server/test-utils/test-isr-helper.ts +140 -0
  124. package/template/src/shared/modules/content/schemas.ts +14 -0
  125. package/template/src/shared/modules/dispute/schemas.ts +14 -0
  126. package/template/src/shared/modules/order/schemas.ts +9 -1
  127. package/template/src/shared/modules/ticket/schemas.ts +14 -0
  128. package/template/src/shared/modules/todos/index.ts +4 -0
  129. package/template/src/shared/modules/todos/schemas.ts +14 -0
  130. package/template/src/shared/schemas/index.ts +18 -0
  131. package/template/tsup.config.ts +48 -1
  132. package/template/vitest.config.ts +19 -3
  133. package/template/vitest.setup.ts +68 -5
  134. package/template/drizzle/0000_rainy_boomer.sql +0 -101
  135. package/template/drizzle/0001_add_todo_attachments.sql +0 -12
  136. package/template/drizzle/0002_chilly_magneto.sql +0 -89
  137. package/template/drizzle/0003_ambiguous_magdalene.sql +0 -100
  138. package/template/drizzle/0004_add_merchants_products.sql +0 -30
  139. package/template/drizzle/meta/0000_snapshot.json +0 -652
  140. package/template/drizzle/meta/0001_snapshot.json +0 -735
  141. package/template/drizzle/meta/0002_snapshot.json +0 -1198
  142. package/template/drizzle/meta/0003_snapshot.json +0 -1837
  143. package/template/drizzle/meta/_journal.json +0 -41
  144. package/template/patches/typescript+5.9.3.patch +0 -24
  145. package/template/pnpm-lock.yaml +0 -7137
  146. /package/template/patches/{hono+4.12.16.patch → hono+4.12.34.patch} +0 -0
@@ -1,735 +0,0 @@
1
- {
2
- "version": "6",
3
- "dialect": "sqlite",
4
- "id": "1396c513-c561-4b4b-ae54-480e5b7a56ce",
5
- "prevId": "7211881c-73a5-48ed-a903-3731d4fb4aaa",
6
- "tables": {
7
- "todos": {
8
- "name": "todos",
9
- "columns": {
10
- "id": {
11
- "name": "id",
12
- "type": "integer",
13
- "primaryKey": true,
14
- "notNull": true,
15
- "autoincrement": true
16
- },
17
- "title": {
18
- "name": "title",
19
- "type": "text",
20
- "primaryKey": false,
21
- "notNull": true,
22
- "autoincrement": false
23
- },
24
- "description": {
25
- "name": "description",
26
- "type": "text",
27
- "primaryKey": false,
28
- "notNull": false,
29
- "autoincrement": false
30
- },
31
- "status": {
32
- "name": "status",
33
- "type": "text",
34
- "primaryKey": false,
35
- "notNull": true,
36
- "autoincrement": false,
37
- "default": "'pending'"
38
- },
39
- "created_at": {
40
- "name": "created_at",
41
- "type": "integer",
42
- "primaryKey": false,
43
- "notNull": true,
44
- "autoincrement": false,
45
- "default": "(unixepoch() * 1000)"
46
- },
47
- "updated_at": {
48
- "name": "updated_at",
49
- "type": "integer",
50
- "primaryKey": false,
51
- "notNull": true,
52
- "autoincrement": false,
53
- "default": "(unixepoch() * 1000)"
54
- }
55
- },
56
- "indexes": {},
57
- "foreignKeys": {},
58
- "compositePrimaryKeys": {},
59
- "uniqueConstraints": {},
60
- "checkConstraints": {}
61
- },
62
- "notifications": {
63
- "name": "notifications",
64
- "columns": {
65
- "id": {
66
- "name": "id",
67
- "type": "text",
68
- "primaryKey": true,
69
- "notNull": true,
70
- "autoincrement": false
71
- },
72
- "type": {
73
- "name": "type",
74
- "type": "text",
75
- "primaryKey": false,
76
- "notNull": true,
77
- "autoincrement": false
78
- },
79
- "title": {
80
- "name": "title",
81
- "type": "text",
82
- "primaryKey": false,
83
- "notNull": true,
84
- "autoincrement": false
85
- },
86
- "message": {
87
- "name": "message",
88
- "type": "text",
89
- "primaryKey": false,
90
- "notNull": true,
91
- "autoincrement": false
92
- },
93
- "read": {
94
- "name": "read",
95
- "type": "integer",
96
- "primaryKey": false,
97
- "notNull": true,
98
- "autoincrement": false,
99
- "default": false
100
- },
101
- "created_at": {
102
- "name": "created_at",
103
- "type": "integer",
104
- "primaryKey": false,
105
- "notNull": true,
106
- "autoincrement": false,
107
- "default": "(unixepoch() * 1000)"
108
- }
109
- },
110
- "indexes": {},
111
- "foreignKeys": {},
112
- "compositePrimaryKeys": {},
113
- "uniqueConstraints": {},
114
- "checkConstraints": {}
115
- },
116
- "permissions": {
117
- "name": "permissions",
118
- "columns": {
119
- "id": {
120
- "name": "id",
121
- "type": "text",
122
- "primaryKey": true,
123
- "notNull": true,
124
- "autoincrement": false
125
- },
126
- "code": {
127
- "name": "code",
128
- "type": "text",
129
- "primaryKey": false,
130
- "notNull": true,
131
- "autoincrement": false
132
- },
133
- "name": {
134
- "name": "name",
135
- "type": "text",
136
- "primaryKey": false,
137
- "notNull": true,
138
- "autoincrement": false
139
- },
140
- "label": {
141
- "name": "label",
142
- "type": "text",
143
- "primaryKey": false,
144
- "notNull": true,
145
- "autoincrement": false
146
- },
147
- "category": {
148
- "name": "category",
149
- "type": "text",
150
- "primaryKey": false,
151
- "notNull": true,
152
- "autoincrement": false
153
- },
154
- "description": {
155
- "name": "description",
156
- "type": "text",
157
- "primaryKey": false,
158
- "notNull": false,
159
- "autoincrement": false
160
- },
161
- "sort_order": {
162
- "name": "sort_order",
163
- "type": "integer",
164
- "primaryKey": false,
165
- "notNull": false,
166
- "autoincrement": false,
167
- "default": 0
168
- },
169
- "is_active": {
170
- "name": "is_active",
171
- "type": "integer",
172
- "primaryKey": false,
173
- "notNull": false,
174
- "autoincrement": false,
175
- "default": true
176
- },
177
- "created_at": {
178
- "name": "created_at",
179
- "type": "integer",
180
- "primaryKey": false,
181
- "notNull": false,
182
- "autoincrement": false
183
- },
184
- "updated_at": {
185
- "name": "updated_at",
186
- "type": "integer",
187
- "primaryKey": false,
188
- "notNull": false,
189
- "autoincrement": false
190
- }
191
- },
192
- "indexes": {
193
- "permissions_code_unique": {
194
- "name": "permissions_code_unique",
195
- "columns": ["code"],
196
- "isUnique": true
197
- }
198
- },
199
- "foreignKeys": {},
200
- "compositePrimaryKeys": {},
201
- "uniqueConstraints": {},
202
- "checkConstraints": {}
203
- },
204
- "roles": {
205
- "name": "roles",
206
- "columns": {
207
- "id": {
208
- "name": "id",
209
- "type": "text",
210
- "primaryKey": true,
211
- "notNull": true,
212
- "autoincrement": false
213
- },
214
- "code": {
215
- "name": "code",
216
- "type": "text",
217
- "primaryKey": false,
218
- "notNull": true,
219
- "autoincrement": false
220
- },
221
- "name": {
222
- "name": "name",
223
- "type": "text",
224
- "primaryKey": false,
225
- "notNull": true,
226
- "autoincrement": false
227
- },
228
- "label": {
229
- "name": "label",
230
- "type": "text",
231
- "primaryKey": false,
232
- "notNull": true,
233
- "autoincrement": false
234
- },
235
- "description": {
236
- "name": "description",
237
- "type": "text",
238
- "primaryKey": false,
239
- "notNull": false,
240
- "autoincrement": false
241
- },
242
- "is_system": {
243
- "name": "is_system",
244
- "type": "integer",
245
- "primaryKey": false,
246
- "notNull": false,
247
- "autoincrement": false,
248
- "default": false
249
- },
250
- "is_active": {
251
- "name": "is_active",
252
- "type": "integer",
253
- "primaryKey": false,
254
- "notNull": false,
255
- "autoincrement": false,
256
- "default": true
257
- },
258
- "sort_order": {
259
- "name": "sort_order",
260
- "type": "integer",
261
- "primaryKey": false,
262
- "notNull": false,
263
- "autoincrement": false,
264
- "default": 0
265
- },
266
- "created_at": {
267
- "name": "created_at",
268
- "type": "integer",
269
- "primaryKey": false,
270
- "notNull": false,
271
- "autoincrement": false
272
- },
273
- "updated_at": {
274
- "name": "updated_at",
275
- "type": "integer",
276
- "primaryKey": false,
277
- "notNull": false,
278
- "autoincrement": false
279
- }
280
- },
281
- "indexes": {
282
- "roles_code_unique": {
283
- "name": "roles_code_unique",
284
- "columns": ["code"],
285
- "isUnique": true
286
- }
287
- },
288
- "foreignKeys": {},
289
- "compositePrimaryKeys": {},
290
- "uniqueConstraints": {},
291
- "checkConstraints": {}
292
- },
293
- "role_permissions": {
294
- "name": "role_permissions",
295
- "columns": {
296
- "role_id": {
297
- "name": "role_id",
298
- "type": "text",
299
- "primaryKey": false,
300
- "notNull": true,
301
- "autoincrement": false
302
- },
303
- "permission_id": {
304
- "name": "permission_id",
305
- "type": "text",
306
- "primaryKey": false,
307
- "notNull": true,
308
- "autoincrement": false
309
- },
310
- "created_at": {
311
- "name": "created_at",
312
- "type": "integer",
313
- "primaryKey": false,
314
- "notNull": false,
315
- "autoincrement": false
316
- }
317
- },
318
- "indexes": {},
319
- "foreignKeys": {
320
- "role_permissions_role_id_roles_id_fk": {
321
- "name": "role_permissions_role_id_roles_id_fk",
322
- "tableFrom": "role_permissions",
323
- "tableTo": "roles",
324
- "columnsFrom": ["role_id"],
325
- "columnsTo": ["id"],
326
- "onDelete": "cascade",
327
- "onUpdate": "no action"
328
- },
329
- "role_permissions_permission_id_permissions_id_fk": {
330
- "name": "role_permissions_permission_id_permissions_id_fk",
331
- "tableFrom": "role_permissions",
332
- "tableTo": "permissions",
333
- "columnsFrom": ["permission_id"],
334
- "columnsTo": ["id"],
335
- "onDelete": "cascade",
336
- "onUpdate": "no action"
337
- }
338
- },
339
- "compositePrimaryKeys": {
340
- "role_permissions_role_id_permission_id_pk": {
341
- "columns": ["role_id", "permission_id"],
342
- "name": "role_permissions_role_id_permission_id_pk"
343
- }
344
- },
345
- "uniqueConstraints": {},
346
- "checkConstraints": {}
347
- },
348
- "user_roles": {
349
- "name": "user_roles",
350
- "columns": {
351
- "id": {
352
- "name": "id",
353
- "type": "text",
354
- "primaryKey": true,
355
- "notNull": true,
356
- "autoincrement": false
357
- },
358
- "user_id": {
359
- "name": "user_id",
360
- "type": "text",
361
- "primaryKey": false,
362
- "notNull": true,
363
- "autoincrement": false
364
- },
365
- "role_id": {
366
- "name": "role_id",
367
- "type": "text",
368
- "primaryKey": false,
369
- "notNull": true,
370
- "autoincrement": false
371
- },
372
- "assigned_by": {
373
- "name": "assigned_by",
374
- "type": "text",
375
- "primaryKey": false,
376
- "notNull": false,
377
- "autoincrement": false
378
- },
379
- "assigned_at": {
380
- "name": "assigned_at",
381
- "type": "integer",
382
- "primaryKey": false,
383
- "notNull": false,
384
- "autoincrement": false
385
- },
386
- "expires_at": {
387
- "name": "expires_at",
388
- "type": "integer",
389
- "primaryKey": false,
390
- "notNull": false,
391
- "autoincrement": false
392
- },
393
- "is_active": {
394
- "name": "is_active",
395
- "type": "integer",
396
- "primaryKey": false,
397
- "notNull": false,
398
- "autoincrement": false,
399
- "default": true
400
- }
401
- },
402
- "indexes": {},
403
- "foreignKeys": {
404
- "user_roles_role_id_roles_id_fk": {
405
- "name": "user_roles_role_id_roles_id_fk",
406
- "tableFrom": "user_roles",
407
- "tableTo": "roles",
408
- "columnsFrom": ["role_id"],
409
- "columnsTo": ["id"],
410
- "onDelete": "cascade",
411
- "onUpdate": "no action"
412
- }
413
- },
414
- "compositePrimaryKeys": {},
415
- "uniqueConstraints": {},
416
- "checkConstraints": {}
417
- },
418
- "routes": {
419
- "name": "routes",
420
- "columns": {
421
- "id": {
422
- "name": "id",
423
- "type": "text",
424
- "primaryKey": true,
425
- "notNull": true,
426
- "autoincrement": false
427
- },
428
- "path": {
429
- "name": "path",
430
- "type": "text",
431
- "primaryKey": false,
432
- "notNull": true,
433
- "autoincrement": false
434
- },
435
- "method": {
436
- "name": "method",
437
- "type": "text",
438
- "primaryKey": false,
439
- "notNull": true,
440
- "autoincrement": false
441
- },
442
- "name": {
443
- "name": "name",
444
- "type": "text",
445
- "primaryKey": false,
446
- "notNull": false,
447
- "autoincrement": false
448
- },
449
- "description": {
450
- "name": "description",
451
- "type": "text",
452
- "primaryKey": false,
453
- "notNull": false,
454
- "autoincrement": false
455
- },
456
- "module": {
457
- "name": "module",
458
- "type": "text",
459
- "primaryKey": false,
460
- "notNull": false,
461
- "autoincrement": false
462
- },
463
- "is_public": {
464
- "name": "is_public",
465
- "type": "integer",
466
- "primaryKey": false,
467
- "notNull": false,
468
- "autoincrement": false,
469
- "default": false
470
- },
471
- "is_active": {
472
- "name": "is_active",
473
- "type": "integer",
474
- "primaryKey": false,
475
- "notNull": false,
476
- "autoincrement": false,
477
- "default": true
478
- },
479
- "created_at": {
480
- "name": "created_at",
481
- "type": "integer",
482
- "primaryKey": false,
483
- "notNull": false,
484
- "autoincrement": false
485
- },
486
- "updated_at": {
487
- "name": "updated_at",
488
- "type": "integer",
489
- "primaryKey": false,
490
- "notNull": false,
491
- "autoincrement": false
492
- }
493
- },
494
- "indexes": {
495
- "routes_path_method_unique": {
496
- "name": "routes_path_method_unique",
497
- "columns": ["path", "method"],
498
- "isUnique": true
499
- }
500
- },
501
- "foreignKeys": {},
502
- "compositePrimaryKeys": {},
503
- "uniqueConstraints": {},
504
- "checkConstraints": {}
505
- },
506
- "permission_routes": {
507
- "name": "permission_routes",
508
- "columns": {
509
- "permission_id": {
510
- "name": "permission_id",
511
- "type": "text",
512
- "primaryKey": false,
513
- "notNull": true,
514
- "autoincrement": false
515
- },
516
- "route_id": {
517
- "name": "route_id",
518
- "type": "text",
519
- "primaryKey": false,
520
- "notNull": true,
521
- "autoincrement": false
522
- },
523
- "created_at": {
524
- "name": "created_at",
525
- "type": "integer",
526
- "primaryKey": false,
527
- "notNull": false,
528
- "autoincrement": false
529
- }
530
- },
531
- "indexes": {},
532
- "foreignKeys": {
533
- "permission_routes_permission_id_permissions_id_fk": {
534
- "name": "permission_routes_permission_id_permissions_id_fk",
535
- "tableFrom": "permission_routes",
536
- "tableTo": "permissions",
537
- "columnsFrom": ["permission_id"],
538
- "columnsTo": ["id"],
539
- "onDelete": "cascade",
540
- "onUpdate": "no action"
541
- },
542
- "permission_routes_route_id_routes_id_fk": {
543
- "name": "permission_routes_route_id_routes_id_fk",
544
- "tableFrom": "permission_routes",
545
- "tableTo": "routes",
546
- "columnsFrom": ["route_id"],
547
- "columnsTo": ["id"],
548
- "onDelete": "cascade",
549
- "onUpdate": "no action"
550
- }
551
- },
552
- "compositePrimaryKeys": {
553
- "permission_routes_permission_id_route_id_pk": {
554
- "columns": ["permission_id", "route_id"],
555
- "name": "permission_routes_permission_id_route_id_pk"
556
- }
557
- },
558
- "uniqueConstraints": {},
559
- "checkConstraints": {}
560
- },
561
- "permission_audit_logs": {
562
- "name": "permission_audit_logs",
563
- "columns": {
564
- "id": {
565
- "name": "id",
566
- "type": "text",
567
- "primaryKey": true,
568
- "notNull": true,
569
- "autoincrement": false
570
- },
571
- "user_id": {
572
- "name": "user_id",
573
- "type": "text",
574
- "primaryKey": false,
575
- "notNull": true,
576
- "autoincrement": false
577
- },
578
- "action": {
579
- "name": "action",
580
- "type": "text",
581
- "primaryKey": false,
582
- "notNull": true,
583
- "autoincrement": false
584
- },
585
- "resource_type": {
586
- "name": "resource_type",
587
- "type": "text",
588
- "primaryKey": false,
589
- "notNull": true,
590
- "autoincrement": false
591
- },
592
- "resource_id": {
593
- "name": "resource_id",
594
- "type": "text",
595
- "primaryKey": false,
596
- "notNull": false,
597
- "autoincrement": false
598
- },
599
- "old_value": {
600
- "name": "old_value",
601
- "type": "text",
602
- "primaryKey": false,
603
- "notNull": false,
604
- "autoincrement": false
605
- },
606
- "new_value": {
607
- "name": "new_value",
608
- "type": "text",
609
- "primaryKey": false,
610
- "notNull": false,
611
- "autoincrement": false
612
- },
613
- "ip_address": {
614
- "name": "ip_address",
615
- "type": "text",
616
- "primaryKey": false,
617
- "notNull": false,
618
- "autoincrement": false
619
- },
620
- "user_agent": {
621
- "name": "user_agent",
622
- "type": "text",
623
- "primaryKey": false,
624
- "notNull": false,
625
- "autoincrement": false
626
- },
627
- "created_at": {
628
- "name": "created_at",
629
- "type": "integer",
630
- "primaryKey": false,
631
- "notNull": false,
632
- "autoincrement": false
633
- }
634
- },
635
- "indexes": {},
636
- "foreignKeys": {},
637
- "compositePrimaryKeys": {},
638
- "uniqueConstraints": {},
639
- "checkConstraints": {}
640
- },
641
- "todo_attachments": {
642
- "name": "todo_attachments",
643
- "columns": {
644
- "id": {
645
- "name": "id",
646
- "type": "integer",
647
- "primaryKey": true,
648
- "notNull": true,
649
- "autoincrement": true
650
- },
651
- "todo_id": {
652
- "name": "todo_id",
653
- "type": "integer",
654
- "primaryKey": false,
655
- "notNull": true,
656
- "autoincrement": false
657
- },
658
- "file_name": {
659
- "name": "file_name",
660
- "type": "text",
661
- "primaryKey": false,
662
- "notNull": true,
663
- "autoincrement": false
664
- },
665
- "original_name": {
666
- "name": "original_name",
667
- "type": "text",
668
- "primaryKey": false,
669
- "notNull": true,
670
- "autoincrement": false
671
- },
672
- "mime_type": {
673
- "name": "mime_type",
674
- "type": "text",
675
- "primaryKey": false,
676
- "notNull": true,
677
- "autoincrement": false
678
- },
679
- "size": {
680
- "name": "size",
681
- "type": "integer",
682
- "primaryKey": false,
683
- "notNull": true,
684
- "autoincrement": false
685
- },
686
- "path": {
687
- "name": "path",
688
- "type": "text",
689
- "primaryKey": false,
690
- "notNull": true,
691
- "autoincrement": false
692
- },
693
- "uploaded_by": {
694
- "name": "uploaded_by",
695
- "type": "text",
696
- "primaryKey": false,
697
- "notNull": false,
698
- "autoincrement": false
699
- },
700
- "created_at": {
701
- "name": "created_at",
702
- "type": "integer",
703
- "primaryKey": false,
704
- "notNull": true,
705
- "autoincrement": false
706
- }
707
- },
708
- "indexes": {},
709
- "foreignKeys": {
710
- "todo_attachments_todo_id_todos_id_fk": {
711
- "name": "todo_attachments_todo_id_todos_id_fk",
712
- "tableFrom": "todo_attachments",
713
- "tableTo": "todos",
714
- "columnsFrom": ["todo_id"],
715
- "columnsTo": ["id"],
716
- "onDelete": "cascade",
717
- "onUpdate": "no action"
718
- }
719
- },
720
- "compositePrimaryKeys": {},
721
- "uniqueConstraints": {},
722
- "checkConstraints": {}
723
- }
724
- },
725
- "views": {},
726
- "enums": {},
727
- "_meta": {
728
- "schemas": {},
729
- "tables": {},
730
- "columns": {}
731
- },
732
- "internal": {
733
- "indexes": {}
734
- }
735
- }