@kernhq/module-inventory 0.1.2 → 0.3.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 (213) hide show
  1. package/README.md +134 -9
  2. package/dist/contract/capabilities.d.ts +49 -0
  3. package/dist/contract/capabilities.d.ts.map +1 -0
  4. package/dist/contract/capabilities.js +94 -0
  5. package/dist/contract/capabilities.js.map +1 -0
  6. package/dist/contract/events.d.ts +76 -0
  7. package/dist/contract/events.d.ts.map +1 -0
  8. package/dist/contract/events.js +62 -0
  9. package/dist/contract/events.js.map +1 -0
  10. package/dist/contract/index.d.ts +16 -0
  11. package/dist/contract/index.d.ts.map +1 -0
  12. package/dist/contract/index.js +16 -0
  13. package/dist/contract/index.js.map +1 -0
  14. package/dist/contract/models.d.ts +468 -0
  15. package/dist/contract/models.d.ts.map +1 -0
  16. package/dist/contract/models.js +320 -0
  17. package/dist/contract/models.js.map +1 -0
  18. package/dist/contract/notifications.d.ts +24 -0
  19. package/dist/contract/notifications.d.ts.map +1 -0
  20. package/dist/contract/notifications.js +72 -0
  21. package/dist/contract/notifications.js.map +1 -0
  22. package/dist/contract/permissions.d.ts +72 -0
  23. package/dist/contract/permissions.d.ts.map +1 -0
  24. package/dist/contract/permissions.js +79 -0
  25. package/dist/contract/permissions.js.map +1 -0
  26. package/dist/contract/router.d.ts +1378 -0
  27. package/dist/contract/router.d.ts.map +1 -0
  28. package/dist/contract/router.js +266 -0
  29. package/dist/contract/router.js.map +1 -0
  30. package/dist/contract/settings.d.ts +20 -0
  31. package/dist/contract/settings.d.ts.map +1 -0
  32. package/dist/contract/settings.js +49 -0
  33. package/dist/contract/settings.js.map +1 -0
  34. package/dist/server/index.d.ts +8 -1
  35. package/dist/server/index.d.ts.map +1 -1
  36. package/dist/server/index.js +288 -8
  37. package/dist/server/index.js.map +1 -1
  38. package/dist/server/jobs.d.ts +48 -0
  39. package/dist/server/jobs.d.ts.map +1 -0
  40. package/dist/server/jobs.js +358 -0
  41. package/dist/server/jobs.js.map +1 -0
  42. package/dist/server/router.d.ts +1789 -0
  43. package/dist/server/router.d.ts.map +1 -0
  44. package/dist/server/router.js +439 -0
  45. package/dist/server/router.js.map +1 -0
  46. package/dist/server/schema.d.ts +156 -9
  47. package/dist/server/schema.d.ts.map +1 -1
  48. package/dist/server/schema.js +183 -11
  49. package/dist/server/schema.js.map +1 -1
  50. package/dist/server/services/assets.d.ts +139 -0
  51. package/dist/server/services/assets.d.ts.map +1 -0
  52. package/dist/server/services/assets.js +429 -0
  53. package/dist/server/services/assets.js.map +1 -0
  54. package/dist/server/services/attachments.d.ts +80 -0
  55. package/dist/server/services/attachments.d.ts.map +1 -0
  56. package/dist/server/services/attachments.js +182 -0
  57. package/dist/server/services/attachments.js.map +1 -0
  58. package/dist/server/services/audience.d.ts +15 -0
  59. package/dist/server/services/audience.d.ts.map +1 -0
  60. package/dist/server/services/audience.js +64 -0
  61. package/dist/server/services/audience.js.map +1 -0
  62. package/dist/server/services/categories.d.ts +57 -0
  63. package/dist/server/services/categories.d.ts.map +1 -0
  64. package/dist/server/services/categories.js +124 -0
  65. package/dist/server/services/categories.js.map +1 -0
  66. package/dist/server/services/cursor.d.ts +68 -0
  67. package/dist/server/services/cursor.d.ts.map +1 -0
  68. package/dist/server/services/cursor.js +39 -0
  69. package/dist/server/services/cursor.js.map +1 -0
  70. package/dist/server/services/custody.d.ts +175 -0
  71. package/dist/server/services/custody.d.ts.map +1 -0
  72. package/dist/server/services/custody.js +367 -0
  73. package/dist/server/services/custody.js.map +1 -0
  74. package/dist/server/services/db-errors.d.ts +7 -0
  75. package/dist/server/services/db-errors.d.ts.map +1 -0
  76. package/dist/server/services/db-errors.js +32 -0
  77. package/dist/server/services/db-errors.js.map +1 -0
  78. package/dist/server/services/index.d.ts +26 -0
  79. package/dist/server/services/index.d.ts.map +1 -0
  80. package/dist/server/services/index.js +39 -0
  81. package/dist/server/services/index.js.map +1 -0
  82. package/dist/server/services/members.d.ts +27 -0
  83. package/dist/server/services/members.d.ts.map +1 -0
  84. package/dist/server/services/members.js +39 -0
  85. package/dist/server/services/members.js.map +1 -0
  86. package/dist/server/services/notify.d.ts +105 -0
  87. package/dist/server/services/notify.d.ts.map +1 -0
  88. package/dist/server/services/notify.js +147 -0
  89. package/dist/server/services/notify.js.map +1 -0
  90. package/dist/server/services/offboarding.d.ts +70 -0
  91. package/dist/server/services/offboarding.d.ts.map +1 -0
  92. package/dist/server/services/offboarding.js +116 -0
  93. package/dist/server/services/offboarding.js.map +1 -0
  94. package/dist/server/services/repairs.d.ts +204 -0
  95. package/dist/server/services/repairs.d.ts.map +1 -0
  96. package/dist/server/services/repairs.js +476 -0
  97. package/dist/server/services/repairs.js.map +1 -0
  98. package/dist/server/services/search.d.ts +85 -0
  99. package/dist/server/services/search.d.ts.map +1 -0
  100. package/dist/server/services/search.js +142 -0
  101. package/dist/server/services/search.js.map +1 -0
  102. package/dist/server/services/stats.d.ts +42 -0
  103. package/dist/server/services/stats.d.ts.map +1 -0
  104. package/dist/server/services/stats.js +80 -0
  105. package/dist/server/services/stats.js.map +1 -0
  106. package/dist/server/services/status.d.ts +102 -0
  107. package/dist/server/services/status.d.ts.map +1 -0
  108. package/dist/server/services/status.js +71 -0
  109. package/dist/server/services/status.js.map +1 -0
  110. package/migrations/0000_init.sql +12 -3
  111. package/migrations/0001_rls.sql +24 -0
  112. package/migrations/0002_custody_and_categories.sql +23 -0
  113. package/migrations/0003_repairs.sql +23 -0
  114. package/migrations/0004_platform_surfaces.sql +51 -0
  115. package/migrations/0005_repair_dates.sql +35 -0
  116. package/migrations/0006_workspace_registry_read.sql +50 -0
  117. package/migrations/0007_history_sequence.sql +83 -0
  118. package/migrations/meta/0000_snapshot.json +40 -13
  119. package/migrations/meta/0002_snapshot.json +1054 -0
  120. package/migrations/meta/0003_snapshot.json +1070 -0
  121. package/migrations/meta/0004_snapshot.json +1130 -0
  122. package/migrations/meta/0005_snapshot.json +1135 -0
  123. package/migrations/meta/_journal.json +44 -2
  124. package/package.json +5 -4
  125. package/src/client/api-instance.ts +27 -2
  126. package/src/client/api.ts +1 -1
  127. package/src/client/bidi.test.ts +148 -0
  128. package/src/client/bidi.ts +85 -0
  129. package/src/client/components/AssetDetailPanel.svelte +614 -0
  130. package/src/client/components/AssetFormDialog.svelte +191 -59
  131. package/src/client/components/AssetPhoto.svelte +178 -0
  132. package/src/client/components/AttachmentsSection.svelte +327 -0
  133. package/src/client/components/CustodyDialog.svelte +201 -0
  134. package/src/client/components/RepairDialog.svelte +271 -0
  135. package/src/client/components/RepairsSection.svelte +318 -0
  136. package/src/client/components/Timeline.svelte +347 -0
  137. package/src/client/components/TimelineText.svelte +124 -0
  138. package/src/client/core-api.ts +71 -0
  139. package/src/client/custody.test.ts +31 -0
  140. package/src/client/custody.ts +34 -0
  141. package/src/client/errors.test.ts +365 -0
  142. package/src/client/errors.ts +201 -0
  143. package/src/client/i18n.ts +11 -166
  144. package/src/client/index.ts +8 -1
  145. package/src/client/links.test.ts +74 -0
  146. package/src/client/links.ts +44 -0
  147. package/src/client/members.test.ts +132 -0
  148. package/src/client/members.ts +116 -0
  149. package/src/client/messages.test.ts +296 -0
  150. package/src/client/messages.ts +1424 -0
  151. package/src/client/mock.test.ts +555 -0
  152. package/src/client/mock.ts +1261 -52
  153. package/src/client/module.ts +76 -2
  154. package/src/client/pages/AssetsPage.svelte +638 -145
  155. package/src/client/permissions.ts +8 -1
  156. package/src/client/price.test.ts +254 -0
  157. package/src/client/price.ts +279 -0
  158. package/src/client/query.test.ts +58 -0
  159. package/src/client/query.ts +51 -2
  160. package/src/client/repairs.test.ts +38 -0
  161. package/src/client/repairs.ts +38 -0
  162. package/src/client/settings/CategoriesSettings.svelte +421 -0
  163. package/src/client/settings/GeneralSettings.svelte +403 -0
  164. package/src/client/status.ts +29 -0
  165. package/src/client/timeline.test.ts +175 -0
  166. package/src/client/timeline.ts +206 -0
  167. package/src/client/widgets/OverviewWidget.svelte +140 -26
  168. package/src/client/widgets/RepairsWidget.svelte +124 -0
  169. package/src/contract/capabilities.ts +99 -0
  170. package/src/contract/events.ts +83 -0
  171. package/src/contract/index.ts +16 -0
  172. package/src/contract/models.ts +360 -0
  173. package/src/contract/notifications.ts +73 -0
  174. package/src/contract/permissions.ts +79 -0
  175. package/src/contract/router.ts +300 -0
  176. package/src/contract/settings.ts +50 -0
  177. package/src/module.test.ts +330 -7
  178. package/src/server/index.ts +318 -8
  179. package/src/server/inventory.int.test.ts +4374 -0
  180. package/src/server/jobs.ts +444 -0
  181. package/src/server/migrations.test.ts +251 -0
  182. package/src/server/router.ts +574 -0
  183. package/src/server/schema.ts +184 -10
  184. package/src/server/services/assets.ts +528 -0
  185. package/src/server/services/attachments.ts +215 -0
  186. package/src/server/services/audience.ts +77 -0
  187. package/src/server/services/categories.ts +136 -0
  188. package/src/server/services/cursor.ts +104 -0
  189. package/src/server/services/custody.ts +471 -0
  190. package/src/server/services/db-errors.ts +42 -0
  191. package/src/server/services/index.ts +56 -0
  192. package/src/server/services/members.ts +54 -0
  193. package/src/server/services/notify.ts +196 -0
  194. package/src/server/services/offboarding.ts +150 -0
  195. package/src/server/services/repairs.ts +567 -0
  196. package/src/server/services/search.ts +166 -0
  197. package/src/server/services/stats.ts +88 -0
  198. package/src/server/services/status.test.ts +34 -0
  199. package/src/server/services/status.ts +143 -0
  200. package/tsconfig.base.json +22 -0
  201. package/tsconfig.client.json +1 -1
  202. package/tsconfig.json +1 -1
  203. package/vitest.config.ts +18 -3
  204. package/dist/contract.d.ts +0 -387
  205. package/dist/contract.d.ts.map +0 -1
  206. package/dist/contract.js +0 -119
  207. package/dist/contract.js.map +0 -1
  208. package/dist/server/_impl.d.ts +0 -427
  209. package/dist/server/_impl.d.ts.map +0 -1
  210. package/dist/server/_impl.js +0 -204
  211. package/dist/server/_impl.js.map +0 -1
  212. package/src/contract.ts +0 -143
  213. package/src/server/_impl.ts +0 -275
@@ -0,0 +1,1054 @@
1
+ {
2
+ "id": "082e3594-d5a7-4243-9f88-6d4a21bace48",
3
+ "prevId": "33173d81-879e-409b-a7c7-d8f9977b9e6c",
4
+ "version": "7",
5
+ "dialect": "postgresql",
6
+ "tables": {
7
+ "mod_inventory.asset_history": {
8
+ "name": "asset_history",
9
+ "schema": "mod_inventory",
10
+ "columns": {
11
+ "id": {
12
+ "name": "id",
13
+ "type": "uuid",
14
+ "primaryKey": true,
15
+ "notNull": true,
16
+ "default": "uuidv7()"
17
+ },
18
+ "workspace_id": {
19
+ "name": "workspace_id",
20
+ "type": "uuid",
21
+ "primaryKey": false,
22
+ "notNull": true
23
+ },
24
+ "asset_id": {
25
+ "name": "asset_id",
26
+ "type": "uuid",
27
+ "primaryKey": false,
28
+ "notNull": true
29
+ },
30
+ "actor_id": {
31
+ "name": "actor_id",
32
+ "type": "uuid",
33
+ "primaryKey": false,
34
+ "notNull": false
35
+ },
36
+ "action": {
37
+ "name": "action",
38
+ "type": "text",
39
+ "primaryKey": false,
40
+ "notNull": true
41
+ },
42
+ "changes": {
43
+ "name": "changes",
44
+ "type": "jsonb",
45
+ "primaryKey": false,
46
+ "notNull": false
47
+ },
48
+ "data": {
49
+ "name": "data",
50
+ "type": "jsonb",
51
+ "primaryKey": false,
52
+ "notNull": false
53
+ },
54
+ "created_at": {
55
+ "name": "created_at",
56
+ "type": "timestamp with time zone",
57
+ "primaryKey": false,
58
+ "notNull": true,
59
+ "default": "now()"
60
+ }
61
+ },
62
+ "indexes": {
63
+ "inventory_asset_history_asset_idx": {
64
+ "name": "inventory_asset_history_asset_idx",
65
+ "columns": [
66
+ {
67
+ "expression": "workspace_id",
68
+ "isExpression": false,
69
+ "asc": true,
70
+ "nulls": "last"
71
+ },
72
+ {
73
+ "expression": "asset_id",
74
+ "isExpression": false,
75
+ "asc": true,
76
+ "nulls": "last"
77
+ },
78
+ {
79
+ "expression": "created_at",
80
+ "isExpression": false,
81
+ "asc": true,
82
+ "nulls": "last"
83
+ }
84
+ ],
85
+ "isUnique": false,
86
+ "concurrently": false,
87
+ "method": "btree",
88
+ "with": {}
89
+ },
90
+ "inventory_asset_history_ws_asset_row_idx": {
91
+ "name": "inventory_asset_history_ws_asset_row_idx",
92
+ "columns": [
93
+ {
94
+ "expression": "workspace_id",
95
+ "isExpression": false,
96
+ "asc": true,
97
+ "nulls": "last"
98
+ },
99
+ {
100
+ "expression": "asset_id",
101
+ "isExpression": false,
102
+ "asc": true,
103
+ "nulls": "last"
104
+ },
105
+ {
106
+ "expression": "id",
107
+ "isExpression": false,
108
+ "asc": true,
109
+ "nulls": "last"
110
+ }
111
+ ],
112
+ "isUnique": false,
113
+ "concurrently": false,
114
+ "method": "btree",
115
+ "with": {}
116
+ }
117
+ },
118
+ "foreignKeys": {},
119
+ "compositePrimaryKeys": {},
120
+ "uniqueConstraints": {},
121
+ "policies": {},
122
+ "checkConstraints": {},
123
+ "isRLSEnabled": false
124
+ },
125
+ "mod_inventory.assets": {
126
+ "name": "assets",
127
+ "schema": "mod_inventory",
128
+ "columns": {
129
+ "id": {
130
+ "name": "id",
131
+ "type": "uuid",
132
+ "primaryKey": true,
133
+ "notNull": true,
134
+ "default": "uuidv7()"
135
+ },
136
+ "workspace_id": {
137
+ "name": "workspace_id",
138
+ "type": "uuid",
139
+ "primaryKey": false,
140
+ "notNull": true
141
+ },
142
+ "code": {
143
+ "name": "code",
144
+ "type": "text",
145
+ "primaryKey": false,
146
+ "notNull": true
147
+ },
148
+ "name": {
149
+ "name": "name",
150
+ "type": "text",
151
+ "primaryKey": false,
152
+ "notNull": true
153
+ },
154
+ "description": {
155
+ "name": "description",
156
+ "type": "text",
157
+ "primaryKey": false,
158
+ "notNull": true,
159
+ "default": "''"
160
+ },
161
+ "category_id": {
162
+ "name": "category_id",
163
+ "type": "uuid",
164
+ "primaryKey": false,
165
+ "notNull": false
166
+ },
167
+ "status": {
168
+ "name": "status",
169
+ "type": "text",
170
+ "primaryKey": false,
171
+ "notNull": true,
172
+ "default": "'in_stock'"
173
+ },
174
+ "custodian_user_id": {
175
+ "name": "custodian_user_id",
176
+ "type": "uuid",
177
+ "primaryKey": false,
178
+ "notNull": false
179
+ },
180
+ "custody_since": {
181
+ "name": "custody_since",
182
+ "type": "timestamp with time zone",
183
+ "primaryKey": false,
184
+ "notNull": false
185
+ },
186
+ "serial_number": {
187
+ "name": "serial_number",
188
+ "type": "text",
189
+ "primaryKey": false,
190
+ "notNull": false
191
+ },
192
+ "location": {
193
+ "name": "location",
194
+ "type": "text",
195
+ "primaryKey": false,
196
+ "notNull": false
197
+ },
198
+ "purchased_on": {
199
+ "name": "purchased_on",
200
+ "type": "date",
201
+ "primaryKey": false,
202
+ "notNull": false
203
+ },
204
+ "purchased_from": {
205
+ "name": "purchased_from",
206
+ "type": "text",
207
+ "primaryKey": false,
208
+ "notNull": false
209
+ },
210
+ "price_minor": {
211
+ "name": "price_minor",
212
+ "type": "integer",
213
+ "primaryKey": false,
214
+ "notNull": false
215
+ },
216
+ "currency": {
217
+ "name": "currency",
218
+ "type": "char(3)",
219
+ "primaryKey": false,
220
+ "notNull": false
221
+ },
222
+ "warranty_until": {
223
+ "name": "warranty_until",
224
+ "type": "date",
225
+ "primaryKey": false,
226
+ "notNull": false
227
+ },
228
+ "photo_file_id": {
229
+ "name": "photo_file_id",
230
+ "type": "uuid",
231
+ "primaryKey": false,
232
+ "notNull": false
233
+ },
234
+ "custom": {
235
+ "name": "custom",
236
+ "type": "jsonb",
237
+ "primaryKey": false,
238
+ "notNull": true,
239
+ "default": "'{}'::jsonb"
240
+ },
241
+ "created_at": {
242
+ "name": "created_at",
243
+ "type": "timestamp with time zone",
244
+ "primaryKey": false,
245
+ "notNull": true,
246
+ "default": "now()"
247
+ },
248
+ "updated_at": {
249
+ "name": "updated_at",
250
+ "type": "timestamp with time zone",
251
+ "primaryKey": false,
252
+ "notNull": true,
253
+ "default": "now()"
254
+ },
255
+ "archived_at": {
256
+ "name": "archived_at",
257
+ "type": "timestamp with time zone",
258
+ "primaryKey": false,
259
+ "notNull": false
260
+ }
261
+ },
262
+ "indexes": {
263
+ "inventory_assets_ws_code_uq": {
264
+ "name": "inventory_assets_ws_code_uq",
265
+ "columns": [
266
+ {
267
+ "expression": "workspace_id",
268
+ "isExpression": false,
269
+ "asc": true,
270
+ "nulls": "last"
271
+ },
272
+ {
273
+ "expression": "code",
274
+ "isExpression": false,
275
+ "asc": true,
276
+ "nulls": "last"
277
+ }
278
+ ],
279
+ "isUnique": true,
280
+ "concurrently": false,
281
+ "method": "btree",
282
+ "with": {}
283
+ },
284
+ "inventory_assets_ws_created_idx": {
285
+ "name": "inventory_assets_ws_created_idx",
286
+ "columns": [
287
+ {
288
+ "expression": "workspace_id",
289
+ "isExpression": false,
290
+ "asc": true,
291
+ "nulls": "last"
292
+ },
293
+ {
294
+ "expression": "created_at",
295
+ "isExpression": false,
296
+ "asc": true,
297
+ "nulls": "last"
298
+ }
299
+ ],
300
+ "isUnique": false,
301
+ "concurrently": false,
302
+ "method": "btree",
303
+ "with": {}
304
+ },
305
+ "inventory_assets_ws_status_idx": {
306
+ "name": "inventory_assets_ws_status_idx",
307
+ "columns": [
308
+ {
309
+ "expression": "workspace_id",
310
+ "isExpression": false,
311
+ "asc": true,
312
+ "nulls": "last"
313
+ },
314
+ {
315
+ "expression": "status",
316
+ "isExpression": false,
317
+ "asc": true,
318
+ "nulls": "last"
319
+ }
320
+ ],
321
+ "isUnique": false,
322
+ "concurrently": false,
323
+ "method": "btree",
324
+ "with": {}
325
+ },
326
+ "inventory_assets_ws_category_idx": {
327
+ "name": "inventory_assets_ws_category_idx",
328
+ "columns": [
329
+ {
330
+ "expression": "workspace_id",
331
+ "isExpression": false,
332
+ "asc": true,
333
+ "nulls": "last"
334
+ },
335
+ {
336
+ "expression": "category_id",
337
+ "isExpression": false,
338
+ "asc": true,
339
+ "nulls": "last"
340
+ }
341
+ ],
342
+ "isUnique": false,
343
+ "concurrently": false,
344
+ "method": "btree",
345
+ "with": {}
346
+ },
347
+ "inventory_assets_ws_custodian_idx": {
348
+ "name": "inventory_assets_ws_custodian_idx",
349
+ "columns": [
350
+ {
351
+ "expression": "workspace_id",
352
+ "isExpression": false,
353
+ "asc": true,
354
+ "nulls": "last"
355
+ },
356
+ {
357
+ "expression": "custodian_user_id",
358
+ "isExpression": false,
359
+ "asc": true,
360
+ "nulls": "last"
361
+ }
362
+ ],
363
+ "isUnique": false,
364
+ "where": "custodian_user_id is not null",
365
+ "concurrently": false,
366
+ "method": "btree",
367
+ "with": {}
368
+ },
369
+ "inventory_assets_ws_warranty_idx": {
370
+ "name": "inventory_assets_ws_warranty_idx",
371
+ "columns": [
372
+ {
373
+ "expression": "workspace_id",
374
+ "isExpression": false,
375
+ "asc": true,
376
+ "nulls": "last"
377
+ },
378
+ {
379
+ "expression": "warranty_until",
380
+ "isExpression": false,
381
+ "asc": true,
382
+ "nulls": "last"
383
+ }
384
+ ],
385
+ "isUnique": false,
386
+ "where": "warranty_until is not null",
387
+ "concurrently": false,
388
+ "method": "btree",
389
+ "with": {}
390
+ }
391
+ },
392
+ "foreignKeys": {},
393
+ "compositePrimaryKeys": {},
394
+ "uniqueConstraints": {},
395
+ "policies": {},
396
+ "checkConstraints": {},
397
+ "isRLSEnabled": false
398
+ },
399
+ "mod_inventory.attachments": {
400
+ "name": "attachments",
401
+ "schema": "mod_inventory",
402
+ "columns": {
403
+ "id": {
404
+ "name": "id",
405
+ "type": "uuid",
406
+ "primaryKey": true,
407
+ "notNull": true,
408
+ "default": "uuidv7()"
409
+ },
410
+ "workspace_id": {
411
+ "name": "workspace_id",
412
+ "type": "uuid",
413
+ "primaryKey": false,
414
+ "notNull": true
415
+ },
416
+ "asset_id": {
417
+ "name": "asset_id",
418
+ "type": "uuid",
419
+ "primaryKey": false,
420
+ "notNull": true
421
+ },
422
+ "repair_id": {
423
+ "name": "repair_id",
424
+ "type": "uuid",
425
+ "primaryKey": false,
426
+ "notNull": false
427
+ },
428
+ "file_id": {
429
+ "name": "file_id",
430
+ "type": "uuid",
431
+ "primaryKey": false,
432
+ "notNull": true
433
+ },
434
+ "name": {
435
+ "name": "name",
436
+ "type": "text",
437
+ "primaryKey": false,
438
+ "notNull": true
439
+ },
440
+ "mime_type": {
441
+ "name": "mime_type",
442
+ "type": "text",
443
+ "primaryKey": false,
444
+ "notNull": false
445
+ },
446
+ "size": {
447
+ "name": "size",
448
+ "type": "integer",
449
+ "primaryKey": false,
450
+ "notNull": false
451
+ },
452
+ "uploaded_by": {
453
+ "name": "uploaded_by",
454
+ "type": "uuid",
455
+ "primaryKey": false,
456
+ "notNull": false
457
+ },
458
+ "created_at": {
459
+ "name": "created_at",
460
+ "type": "timestamp with time zone",
461
+ "primaryKey": false,
462
+ "notNull": true,
463
+ "default": "now()"
464
+ }
465
+ },
466
+ "indexes": {
467
+ "inventory_attachments_asset_file_uq": {
468
+ "name": "inventory_attachments_asset_file_uq",
469
+ "columns": [
470
+ {
471
+ "expression": "asset_id",
472
+ "isExpression": false,
473
+ "asc": true,
474
+ "nulls": "last"
475
+ },
476
+ {
477
+ "expression": "file_id",
478
+ "isExpression": false,
479
+ "asc": true,
480
+ "nulls": "last"
481
+ }
482
+ ],
483
+ "isUnique": true,
484
+ "concurrently": false,
485
+ "method": "btree",
486
+ "with": {}
487
+ },
488
+ "inventory_attachments_ws_asset_idx": {
489
+ "name": "inventory_attachments_ws_asset_idx",
490
+ "columns": [
491
+ {
492
+ "expression": "workspace_id",
493
+ "isExpression": false,
494
+ "asc": true,
495
+ "nulls": "last"
496
+ },
497
+ {
498
+ "expression": "asset_id",
499
+ "isExpression": false,
500
+ "asc": true,
501
+ "nulls": "last"
502
+ },
503
+ {
504
+ "expression": "created_at",
505
+ "isExpression": false,
506
+ "asc": true,
507
+ "nulls": "last"
508
+ }
509
+ ],
510
+ "isUnique": false,
511
+ "concurrently": false,
512
+ "method": "btree",
513
+ "with": {}
514
+ }
515
+ },
516
+ "foreignKeys": {},
517
+ "compositePrimaryKeys": {},
518
+ "uniqueConstraints": {},
519
+ "policies": {},
520
+ "checkConstraints": {},
521
+ "isRLSEnabled": false
522
+ },
523
+ "mod_inventory.categories": {
524
+ "name": "categories",
525
+ "schema": "mod_inventory",
526
+ "columns": {
527
+ "id": {
528
+ "name": "id",
529
+ "type": "uuid",
530
+ "primaryKey": true,
531
+ "notNull": true,
532
+ "default": "uuidv7()"
533
+ },
534
+ "workspace_id": {
535
+ "name": "workspace_id",
536
+ "type": "uuid",
537
+ "primaryKey": false,
538
+ "notNull": true
539
+ },
540
+ "name": {
541
+ "name": "name",
542
+ "type": "text",
543
+ "primaryKey": false,
544
+ "notNull": true
545
+ },
546
+ "order": {
547
+ "name": "order",
548
+ "type": "integer",
549
+ "primaryKey": false,
550
+ "notNull": true,
551
+ "default": 0
552
+ },
553
+ "archived_at": {
554
+ "name": "archived_at",
555
+ "type": "timestamp with time zone",
556
+ "primaryKey": false,
557
+ "notNull": false
558
+ },
559
+ "created_at": {
560
+ "name": "created_at",
561
+ "type": "timestamp with time zone",
562
+ "primaryKey": false,
563
+ "notNull": true,
564
+ "default": "now()"
565
+ },
566
+ "updated_at": {
567
+ "name": "updated_at",
568
+ "type": "timestamp with time zone",
569
+ "primaryKey": false,
570
+ "notNull": true,
571
+ "default": "now()"
572
+ }
573
+ },
574
+ "indexes": {
575
+ "inventory_categories_ws_name_uq": {
576
+ "name": "inventory_categories_ws_name_uq",
577
+ "columns": [
578
+ {
579
+ "expression": "workspace_id",
580
+ "isExpression": false,
581
+ "asc": true,
582
+ "nulls": "last"
583
+ },
584
+ {
585
+ "expression": "name",
586
+ "isExpression": false,
587
+ "asc": true,
588
+ "nulls": "last"
589
+ }
590
+ ],
591
+ "isUnique": true,
592
+ "concurrently": false,
593
+ "method": "btree",
594
+ "with": {}
595
+ },
596
+ "inventory_categories_ws_idx": {
597
+ "name": "inventory_categories_ws_idx",
598
+ "columns": [
599
+ {
600
+ "expression": "workspace_id",
601
+ "isExpression": false,
602
+ "asc": true,
603
+ "nulls": "last"
604
+ },
605
+ {
606
+ "expression": "order",
607
+ "isExpression": false,
608
+ "asc": true,
609
+ "nulls": "last"
610
+ }
611
+ ],
612
+ "isUnique": false,
613
+ "concurrently": false,
614
+ "method": "btree",
615
+ "with": {}
616
+ }
617
+ },
618
+ "foreignKeys": {},
619
+ "compositePrimaryKeys": {},
620
+ "uniqueConstraints": {},
621
+ "policies": {},
622
+ "checkConstraints": {},
623
+ "isRLSEnabled": false
624
+ },
625
+ "mod_inventory.counters": {
626
+ "name": "counters",
627
+ "schema": "mod_inventory",
628
+ "columns": {
629
+ "workspace_id": {
630
+ "name": "workspace_id",
631
+ "type": "uuid",
632
+ "primaryKey": false,
633
+ "notNull": true
634
+ },
635
+ "key": {
636
+ "name": "key",
637
+ "type": "text",
638
+ "primaryKey": false,
639
+ "notNull": true
640
+ },
641
+ "value": {
642
+ "name": "value",
643
+ "type": "integer",
644
+ "primaryKey": false,
645
+ "notNull": true
646
+ }
647
+ },
648
+ "indexes": {},
649
+ "foreignKeys": {},
650
+ "compositePrimaryKeys": {
651
+ "counters_workspace_id_key_pk": {
652
+ "name": "counters_workspace_id_key_pk",
653
+ "columns": ["workspace_id", "key"]
654
+ }
655
+ },
656
+ "uniqueConstraints": {},
657
+ "policies": {},
658
+ "checkConstraints": {},
659
+ "isRLSEnabled": false
660
+ },
661
+ "mod_inventory.custody_periods": {
662
+ "name": "custody_periods",
663
+ "schema": "mod_inventory",
664
+ "columns": {
665
+ "id": {
666
+ "name": "id",
667
+ "type": "uuid",
668
+ "primaryKey": true,
669
+ "notNull": true,
670
+ "default": "uuidv7()"
671
+ },
672
+ "workspace_id": {
673
+ "name": "workspace_id",
674
+ "type": "uuid",
675
+ "primaryKey": false,
676
+ "notNull": true
677
+ },
678
+ "asset_id": {
679
+ "name": "asset_id",
680
+ "type": "uuid",
681
+ "primaryKey": false,
682
+ "notNull": true
683
+ },
684
+ "user_id": {
685
+ "name": "user_id",
686
+ "type": "uuid",
687
+ "primaryKey": false,
688
+ "notNull": true
689
+ },
690
+ "note": {
691
+ "name": "note",
692
+ "type": "text",
693
+ "primaryKey": false,
694
+ "notNull": false
695
+ },
696
+ "effective_from": {
697
+ "name": "effective_from",
698
+ "type": "timestamp with time zone",
699
+ "primaryKey": false,
700
+ "notNull": true,
701
+ "default": "now()"
702
+ },
703
+ "effective_to": {
704
+ "name": "effective_to",
705
+ "type": "timestamp with time zone",
706
+ "primaryKey": false,
707
+ "notNull": false
708
+ },
709
+ "created_by": {
710
+ "name": "created_by",
711
+ "type": "uuid",
712
+ "primaryKey": false,
713
+ "notNull": false
714
+ },
715
+ "created_at": {
716
+ "name": "created_at",
717
+ "type": "timestamp with time zone",
718
+ "primaryKey": false,
719
+ "notNull": true,
720
+ "default": "now()"
721
+ }
722
+ },
723
+ "indexes": {
724
+ "inventory_custody_ws_asset_idx": {
725
+ "name": "inventory_custody_ws_asset_idx",
726
+ "columns": [
727
+ {
728
+ "expression": "workspace_id",
729
+ "isExpression": false,
730
+ "asc": true,
731
+ "nulls": "last"
732
+ },
733
+ {
734
+ "expression": "asset_id",
735
+ "isExpression": false,
736
+ "asc": true,
737
+ "nulls": "last"
738
+ },
739
+ {
740
+ "expression": "effective_from",
741
+ "isExpression": false,
742
+ "asc": true,
743
+ "nulls": "last"
744
+ }
745
+ ],
746
+ "isUnique": false,
747
+ "concurrently": false,
748
+ "method": "btree",
749
+ "with": {}
750
+ }
751
+ },
752
+ "foreignKeys": {},
753
+ "compositePrimaryKeys": {},
754
+ "uniqueConstraints": {},
755
+ "policies": {},
756
+ "checkConstraints": {},
757
+ "isRLSEnabled": false
758
+ },
759
+ "mod_inventory.field_defs": {
760
+ "name": "field_defs",
761
+ "schema": "mod_inventory",
762
+ "columns": {
763
+ "id": {
764
+ "name": "id",
765
+ "type": "uuid",
766
+ "primaryKey": true,
767
+ "notNull": true,
768
+ "default": "uuidv7()"
769
+ },
770
+ "workspace_id": {
771
+ "name": "workspace_id",
772
+ "type": "uuid",
773
+ "primaryKey": false,
774
+ "notNull": true
775
+ },
776
+ "category_id": {
777
+ "name": "category_id",
778
+ "type": "uuid",
779
+ "primaryKey": false,
780
+ "notNull": false
781
+ },
782
+ "key": {
783
+ "name": "key",
784
+ "type": "text",
785
+ "primaryKey": false,
786
+ "notNull": true
787
+ },
788
+ "name": {
789
+ "name": "name",
790
+ "type": "text",
791
+ "primaryKey": false,
792
+ "notNull": true
793
+ },
794
+ "description": {
795
+ "name": "description",
796
+ "type": "text",
797
+ "primaryKey": false,
798
+ "notNull": false
799
+ },
800
+ "type": {
801
+ "name": "type",
802
+ "type": "text",
803
+ "primaryKey": false,
804
+ "notNull": true
805
+ },
806
+ "options": {
807
+ "name": "options",
808
+ "type": "jsonb",
809
+ "primaryKey": false,
810
+ "notNull": false
811
+ },
812
+ "default_value": {
813
+ "name": "default_value",
814
+ "type": "jsonb",
815
+ "primaryKey": false,
816
+ "notNull": false
817
+ },
818
+ "required": {
819
+ "name": "required",
820
+ "type": "boolean",
821
+ "primaryKey": false,
822
+ "notNull": true,
823
+ "default": false
824
+ },
825
+ "searchable": {
826
+ "name": "searchable",
827
+ "type": "boolean",
828
+ "primaryKey": false,
829
+ "notNull": true,
830
+ "default": false
831
+ },
832
+ "show_in_list": {
833
+ "name": "show_in_list",
834
+ "type": "boolean",
835
+ "primaryKey": false,
836
+ "notNull": true,
837
+ "default": false
838
+ },
839
+ "order": {
840
+ "name": "order",
841
+ "type": "integer",
842
+ "primaryKey": false,
843
+ "notNull": true,
844
+ "default": 0
845
+ },
846
+ "archived_at": {
847
+ "name": "archived_at",
848
+ "type": "timestamp with time zone",
849
+ "primaryKey": false,
850
+ "notNull": false
851
+ },
852
+ "created_at": {
853
+ "name": "created_at",
854
+ "type": "timestamp with time zone",
855
+ "primaryKey": false,
856
+ "notNull": true,
857
+ "default": "now()"
858
+ },
859
+ "updated_at": {
860
+ "name": "updated_at",
861
+ "type": "timestamp with time zone",
862
+ "primaryKey": false,
863
+ "notNull": true,
864
+ "default": "now()"
865
+ }
866
+ },
867
+ "indexes": {
868
+ "inventory_field_defs_ws_key_uq": {
869
+ "name": "inventory_field_defs_ws_key_uq",
870
+ "columns": [
871
+ {
872
+ "expression": "workspace_id",
873
+ "isExpression": false,
874
+ "asc": true,
875
+ "nulls": "last"
876
+ },
877
+ {
878
+ "expression": "key",
879
+ "isExpression": false,
880
+ "asc": true,
881
+ "nulls": "last"
882
+ }
883
+ ],
884
+ "isUnique": true,
885
+ "concurrently": false,
886
+ "method": "btree",
887
+ "with": {}
888
+ },
889
+ "inventory_field_defs_ws_idx": {
890
+ "name": "inventory_field_defs_ws_idx",
891
+ "columns": [
892
+ {
893
+ "expression": "workspace_id",
894
+ "isExpression": false,
895
+ "asc": true,
896
+ "nulls": "last"
897
+ },
898
+ {
899
+ "expression": "order",
900
+ "isExpression": false,
901
+ "asc": true,
902
+ "nulls": "last"
903
+ }
904
+ ],
905
+ "isUnique": false,
906
+ "concurrently": false,
907
+ "method": "btree",
908
+ "with": {}
909
+ }
910
+ },
911
+ "foreignKeys": {},
912
+ "compositePrimaryKeys": {},
913
+ "uniqueConstraints": {},
914
+ "policies": {},
915
+ "checkConstraints": {},
916
+ "isRLSEnabled": false
917
+ },
918
+ "mod_inventory.repairs": {
919
+ "name": "repairs",
920
+ "schema": "mod_inventory",
921
+ "columns": {
922
+ "id": {
923
+ "name": "id",
924
+ "type": "uuid",
925
+ "primaryKey": true,
926
+ "notNull": true,
927
+ "default": "uuidv7()"
928
+ },
929
+ "workspace_id": {
930
+ "name": "workspace_id",
931
+ "type": "uuid",
932
+ "primaryKey": false,
933
+ "notNull": true
934
+ },
935
+ "asset_id": {
936
+ "name": "asset_id",
937
+ "type": "uuid",
938
+ "primaryKey": false,
939
+ "notNull": true
940
+ },
941
+ "summary": {
942
+ "name": "summary",
943
+ "type": "text",
944
+ "primaryKey": false,
945
+ "notNull": true
946
+ },
947
+ "detail": {
948
+ "name": "detail",
949
+ "type": "text",
950
+ "primaryKey": false,
951
+ "notNull": false
952
+ },
953
+ "vendor": {
954
+ "name": "vendor",
955
+ "type": "text",
956
+ "primaryKey": false,
957
+ "notNull": false
958
+ },
959
+ "cost_minor": {
960
+ "name": "cost_minor",
961
+ "type": "integer",
962
+ "primaryKey": false,
963
+ "notNull": false
964
+ },
965
+ "currency": {
966
+ "name": "currency",
967
+ "type": "char(3)",
968
+ "primaryKey": false,
969
+ "notNull": false
970
+ },
971
+ "sent_on": {
972
+ "name": "sent_on",
973
+ "type": "date",
974
+ "primaryKey": false,
975
+ "notNull": true
976
+ },
977
+ "returned_on": {
978
+ "name": "returned_on",
979
+ "type": "date",
980
+ "primaryKey": false,
981
+ "notNull": false
982
+ },
983
+ "created_by": {
984
+ "name": "created_by",
985
+ "type": "uuid",
986
+ "primaryKey": false,
987
+ "notNull": false
988
+ },
989
+ "created_at": {
990
+ "name": "created_at",
991
+ "type": "timestamp with time zone",
992
+ "primaryKey": false,
993
+ "notNull": true,
994
+ "default": "now()"
995
+ },
996
+ "updated_at": {
997
+ "name": "updated_at",
998
+ "type": "timestamp with time zone",
999
+ "primaryKey": false,
1000
+ "notNull": true,
1001
+ "default": "now()"
1002
+ }
1003
+ },
1004
+ "indexes": {
1005
+ "inventory_repairs_ws_asset_idx": {
1006
+ "name": "inventory_repairs_ws_asset_idx",
1007
+ "columns": [
1008
+ {
1009
+ "expression": "workspace_id",
1010
+ "isExpression": false,
1011
+ "asc": true,
1012
+ "nulls": "last"
1013
+ },
1014
+ {
1015
+ "expression": "asset_id",
1016
+ "isExpression": false,
1017
+ "asc": true,
1018
+ "nulls": "last"
1019
+ },
1020
+ {
1021
+ "expression": "sent_on",
1022
+ "isExpression": false,
1023
+ "asc": true,
1024
+ "nulls": "last"
1025
+ }
1026
+ ],
1027
+ "isUnique": false,
1028
+ "concurrently": false,
1029
+ "method": "btree",
1030
+ "with": {}
1031
+ }
1032
+ },
1033
+ "foreignKeys": {},
1034
+ "compositePrimaryKeys": {},
1035
+ "uniqueConstraints": {},
1036
+ "policies": {},
1037
+ "checkConstraints": {},
1038
+ "isRLSEnabled": false
1039
+ }
1040
+ },
1041
+ "enums": {},
1042
+ "schemas": {
1043
+ "mod_inventory": "mod_inventory"
1044
+ },
1045
+ "sequences": {},
1046
+ "roles": {},
1047
+ "policies": {},
1048
+ "views": {},
1049
+ "_meta": {
1050
+ "columns": {},
1051
+ "schemas": {},
1052
+ "tables": {}
1053
+ }
1054
+ }