@primocaredentgroup/elettromedicali 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/dist/client/index.d.ts +72 -0
  2. package/dist/client/index.d.ts.map +1 -0
  3. package/dist/client/index.js +233 -0
  4. package/dist/client/index.js.map +1 -0
  5. package/dist/component/_generated/api.d.ts +94 -0
  6. package/dist/component/_generated/api.d.ts.map +1 -0
  7. package/dist/component/_generated/api.js +31 -0
  8. package/dist/component/_generated/api.js.map +1 -0
  9. package/dist/component/_generated/component.d.ts +1444 -0
  10. package/dist/component/_generated/component.d.ts.map +1 -0
  11. package/dist/component/_generated/component.js +11 -0
  12. package/dist/component/_generated/component.js.map +1 -0
  13. package/dist/component/_generated/dataModel.d.ts +46 -0
  14. package/dist/component/_generated/dataModel.d.ts.map +1 -0
  15. package/dist/component/_generated/dataModel.js +11 -0
  16. package/dist/component/_generated/dataModel.js.map +1 -0
  17. package/dist/component/_generated/server.d.ts +121 -0
  18. package/dist/component/_generated/server.d.ts.map +1 -0
  19. package/dist/component/_generated/server.js +78 -0
  20. package/dist/component/_generated/server.js.map +1 -0
  21. package/dist/component/apiKeys.d.ts +69 -0
  22. package/dist/component/apiKeys.d.ts.map +1 -0
  23. package/dist/component/apiKeys.js +207 -0
  24. package/dist/component/apiKeys.js.map +1 -0
  25. package/dist/component/clinics.d.ts +103 -0
  26. package/dist/component/clinics.d.ts.map +1 -0
  27. package/dist/component/clinics.js +126 -0
  28. package/dist/component/clinics.js.map +1 -0
  29. package/dist/component/contracts.d.ts +85 -0
  30. package/dist/component/contracts.d.ts.map +1 -0
  31. package/dist/component/contracts.js +115 -0
  32. package/dist/component/contracts.js.map +1 -0
  33. package/dist/component/convex.config.d.ts +3 -0
  34. package/dist/component/convex.config.d.ts.map +1 -0
  35. package/dist/component/convex.config.js +3 -0
  36. package/dist/component/convex.config.js.map +1 -0
  37. package/dist/component/crons.d.ts +3 -0
  38. package/dist/component/crons.d.ts.map +1 -0
  39. package/dist/component/crons.js +7 -0
  40. package/dist/component/crons.js.map +1 -0
  41. package/dist/component/dashboardStats.d.ts +14 -0
  42. package/dist/component/dashboardStats.d.ts.map +1 -0
  43. package/dist/component/dashboardStats.js +136 -0
  44. package/dist/component/dashboardStats.js.map +1 -0
  45. package/dist/component/dashboardStatsCache.d.ts +32 -0
  46. package/dist/component/dashboardStatsCache.d.ts.map +1 -0
  47. package/dist/component/dashboardStatsCache.js +129 -0
  48. package/dist/component/dashboardStatsCache.js.map +1 -0
  49. package/dist/component/deviceCategories.d.ts +108 -0
  50. package/dist/component/deviceCategories.d.ts.map +1 -0
  51. package/dist/component/deviceCategories.js +254 -0
  52. package/dist/component/deviceCategories.js.map +1 -0
  53. package/dist/component/deviceQuestions.d.ts +129 -0
  54. package/dist/component/deviceQuestions.d.ts.map +1 -0
  55. package/dist/component/deviceQuestions.js +175 -0
  56. package/dist/component/deviceQuestions.js.map +1 -0
  57. package/dist/component/deviceRepairHistory.d.ts +30 -0
  58. package/dist/component/deviceRepairHistory.d.ts.map +1 -0
  59. package/dist/component/deviceRepairHistory.js +84 -0
  60. package/dist/component/deviceRepairHistory.js.map +1 -0
  61. package/dist/component/deviceStatus.d.ts +63 -0
  62. package/dist/component/deviceStatus.d.ts.map +1 -0
  63. package/dist/component/deviceStatus.js +58 -0
  64. package/dist/component/deviceStatus.js.map +1 -0
  65. package/dist/component/devices.d.ts +299 -0
  66. package/dist/component/devices.d.ts.map +1 -0
  67. package/dist/component/devices.js +587 -0
  68. package/dist/component/devices.js.map +1 -0
  69. package/dist/component/emailHelpers.d.ts +17 -0
  70. package/dist/component/emailHelpers.d.ts.map +1 -0
  71. package/dist/component/emailHelpers.js +39 -0
  72. package/dist/component/emailHelpers.js.map +1 -0
  73. package/dist/component/emails.d.ts +56 -0
  74. package/dist/component/emails.d.ts.map +1 -0
  75. package/dist/component/emails.js +58 -0
  76. package/dist/component/emails.js.map +1 -0
  77. package/dist/component/http.d.ts +3 -0
  78. package/dist/component/http.d.ts.map +1 -0
  79. package/dist/component/http.js +229 -0
  80. package/dist/component/http.js.map +1 -0
  81. package/dist/component/maintenanceTasks.d.ts +733 -0
  82. package/dist/component/maintenanceTasks.d.ts.map +1 -0
  83. package/dist/component/maintenanceTasks.js +937 -0
  84. package/dist/component/maintenanceTasks.js.map +1 -0
  85. package/dist/component/roles.d.ts +75 -0
  86. package/dist/component/roles.d.ts.map +1 -0
  87. package/dist/component/roles.js +98 -0
  88. package/dist/component/roles.js.map +1 -0
  89. package/dist/component/schema.d.ts +1295 -0
  90. package/dist/component/schema.d.ts.map +1 -0
  91. package/dist/component/schema.js +724 -0
  92. package/dist/component/schema.js.map +1 -0
  93. package/dist/component/slaMonitoring.d.ts +32 -0
  94. package/dist/component/slaMonitoring.d.ts.map +1 -0
  95. package/dist/component/slaMonitoring.js +111 -0
  96. package/dist/component/slaMonitoring.js.map +1 -0
  97. package/dist/component/slaRules.d.ts +72 -0
  98. package/dist/component/slaRules.d.ts.map +1 -0
  99. package/dist/component/slaRules.js +193 -0
  100. package/dist/component/slaRules.js.map +1 -0
  101. package/dist/component/sparePartOrders.d.ts +177 -0
  102. package/dist/component/sparePartOrders.d.ts.map +1 -0
  103. package/dist/component/sparePartOrders.js +243 -0
  104. package/dist/component/sparePartOrders.js.map +1 -0
  105. package/dist/component/spareParts.d.ts +472 -0
  106. package/dist/component/spareParts.d.ts.map +1 -0
  107. package/dist/component/spareParts.js +319 -0
  108. package/dist/component/spareParts.js.map +1 -0
  109. package/dist/component/supplierCategories.d.ts +22 -0
  110. package/dist/component/supplierCategories.d.ts.map +1 -0
  111. package/dist/component/supplierCategories.js +64 -0
  112. package/dist/component/supplierCategories.js.map +1 -0
  113. package/dist/component/suppliers.d.ts +94 -0
  114. package/dist/component/suppliers.d.ts.map +1 -0
  115. package/dist/component/suppliers.js +195 -0
  116. package/dist/component/suppliers.js.map +1 -0
  117. package/dist/component/ticketComments.d.ts +89 -0
  118. package/dist/component/ticketComments.d.ts.map +1 -0
  119. package/dist/component/ticketComments.js +246 -0
  120. package/dist/component/ticketComments.js.map +1 -0
  121. package/dist/component/ticketCustomFields.d.ts +149 -0
  122. package/dist/component/ticketCustomFields.d.ts.map +1 -0
  123. package/dist/component/ticketCustomFields.js +215 -0
  124. package/dist/component/ticketCustomFields.js.map +1 -0
  125. package/dist/component/ticketExport.d.ts +83 -0
  126. package/dist/component/ticketExport.d.ts.map +1 -0
  127. package/dist/component/ticketExport.js +182 -0
  128. package/dist/component/ticketExport.js.map +1 -0
  129. package/dist/component/ticketHistory.d.ts +57 -0
  130. package/dist/component/ticketHistory.d.ts.map +1 -0
  131. package/dist/component/ticketHistory.js +81 -0
  132. package/dist/component/ticketHistory.js.map +1 -0
  133. package/dist/component/ticketMacros.d.ts +141 -0
  134. package/dist/component/ticketMacros.d.ts.map +1 -0
  135. package/dist/component/ticketMacros.js +255 -0
  136. package/dist/component/ticketMacros.js.map +1 -0
  137. package/dist/component/ticketStatuses.d.ts +60 -0
  138. package/dist/component/ticketStatuses.d.ts.map +1 -0
  139. package/dist/component/ticketStatuses.js +110 -0
  140. package/dist/component/ticketStatuses.js.map +1 -0
  141. package/dist/component/ticketTriggers.d.ts +408 -0
  142. package/dist/component/ticketTriggers.d.ts.map +1 -0
  143. package/dist/component/ticketTriggers.js +941 -0
  144. package/dist/component/ticketTriggers.js.map +1 -0
  145. package/dist/component/userProfiles.d.ts +259 -0
  146. package/dist/component/userProfiles.d.ts.map +1 -0
  147. package/dist/component/userProfiles.js +634 -0
  148. package/dist/component/userProfiles.js.map +1 -0
  149. package/dist/component/vendorArticles.d.ts +64 -0
  150. package/dist/component/vendorArticles.d.ts.map +1 -0
  151. package/dist/component/vendorArticles.js +116 -0
  152. package/dist/component/vendorArticles.js.map +1 -0
  153. package/dist/test.d.ts +1302 -0
  154. package/dist/test.d.ts.map +1 -0
  155. package/dist/test.js +7 -0
  156. package/dist/test.js.map +1 -0
  157. package/package.json +71 -0
  158. package/src/client/index.ts +344 -0
  159. package/src/component/_generated/api.ts +110 -0
  160. package/src/component/_generated/component.ts +2460 -0
  161. package/src/component/_generated/dataModel.ts +60 -0
  162. package/src/component/_generated/server.ts +156 -0
  163. package/src/component/apiKeys.ts +229 -0
  164. package/src/component/clinics.ts +136 -0
  165. package/src/component/contracts.ts +136 -0
  166. package/src/component/convex.config.js +2 -0
  167. package/src/component/convex.config.ts +3 -0
  168. package/src/component/crons.ts +18 -0
  169. package/src/component/dashboardStats.ts +141 -0
  170. package/src/component/dashboardStatsCache.ts +145 -0
  171. package/src/component/deviceCategories.ts +280 -0
  172. package/src/component/deviceQuestions.ts +225 -0
  173. package/src/component/deviceRepairHistory.ts +94 -0
  174. package/src/component/deviceStatus.ts +79 -0
  175. package/src/component/devices.ts +645 -0
  176. package/src/component/emailHelpers.ts +38 -0
  177. package/src/component/emails.ts +61 -0
  178. package/src/component/http.ts +231 -0
  179. package/src/component/maintenanceTasks.ts +1003 -0
  180. package/src/component/roles.ts +99 -0
  181. package/src/component/schema.ts +842 -0
  182. package/src/component/slaMonitoring.ts +125 -0
  183. package/src/component/slaRules.ts +231 -0
  184. package/src/component/sparePartOrders.ts +290 -0
  185. package/src/component/spareParts.ts +362 -0
  186. package/src/component/supplierCategories.ts +65 -0
  187. package/src/component/suppliers.ts +234 -0
  188. package/src/component/ticketComments.ts +288 -0
  189. package/src/component/ticketCustomFields.ts +260 -0
  190. package/src/component/ticketExport.ts +220 -0
  191. package/src/component/ticketHistory.ts +106 -0
  192. package/src/component/ticketMacros.ts +291 -0
  193. package/src/component/ticketStatuses.ts +109 -0
  194. package/src/component/ticketTriggers.ts +1152 -0
  195. package/src/component/userProfiles.ts +745 -0
  196. package/src/component/vendorArticles.ts +139 -0
  197. package/src/test.ts +15 -0
@@ -0,0 +1,254 @@
1
+ import { v } from 'convex/values';
2
+ import { mutation, query } from './_generated/server';
3
+ // Import all categories from JSON
4
+ export const importCategories = mutation({
5
+ args: {
6
+ categories: v.array(v.object({
7
+ id: v.union(v.number(), v.null()),
8
+ name: v.union(v.string(), v.null()),
9
+ parent_id: v.union(v.number(), v.null()),
10
+ active_warehouse_category: v.union(v.number(), v.null()),
11
+ oris_id: v.union(v.string(), v.null()),
12
+ type: v.union(v.string(), v.null()),
13
+ created_at: v.union(v.string(), v.null()),
14
+ updated_at: v.union(v.string(), v.null()),
15
+ note: v.union(v.string(), v.null()),
16
+ })),
17
+ },
18
+ handler: async (ctx, args) => {
19
+ let imported = 0;
20
+ let skipped = 0;
21
+ let errors = 0;
22
+ for (const category of args.categories) {
23
+ try {
24
+ // Skip if no ID or name
25
+ if (!category.id || !category.name) {
26
+ skipped++;
27
+ continue;
28
+ }
29
+ // Check if already exists
30
+ const existing = await ctx.db
31
+ .query('device_categories')
32
+ .withIndex('by_primoupId', (q) => q.eq('primoupId', category.id))
33
+ .first();
34
+ if (existing) {
35
+ // Update existing
36
+ await ctx.db.patch(existing._id, {
37
+ name: category.name,
38
+ parentId: category.parent_id || undefined,
39
+ activeWarehouseCategory: category.active_warehouse_category || undefined,
40
+ orisId: category.oris_id || undefined,
41
+ type: category.type || undefined,
42
+ note: category.note || undefined,
43
+ createdAt: category.created_at || undefined,
44
+ updatedAt: category.updated_at || undefined,
45
+ importedAt: Date.now(),
46
+ });
47
+ }
48
+ else {
49
+ // Insert new
50
+ await ctx.db.insert('device_categories', {
51
+ primoupId: category.id,
52
+ name: category.name,
53
+ parentId: category.parent_id || undefined,
54
+ activeWarehouseCategory: category.active_warehouse_category || undefined,
55
+ orisId: category.oris_id || undefined,
56
+ type: category.type || undefined,
57
+ note: category.note || undefined,
58
+ createdAt: category.created_at || undefined,
59
+ updatedAt: category.updated_at || undefined,
60
+ importedAt: Date.now(),
61
+ });
62
+ }
63
+ imported++;
64
+ }
65
+ catch (error) {
66
+ console.error(`Error importing category ${category.id}:`, error);
67
+ errors++;
68
+ }
69
+ }
70
+ return {
71
+ success: true,
72
+ imported,
73
+ skipped,
74
+ errors,
75
+ total: args.categories.length,
76
+ };
77
+ },
78
+ });
79
+ // Get all categories
80
+ export const list = query({
81
+ args: {
82
+ search: v.optional(v.string()),
83
+ noteFilter: v.optional(v.string()), // null, "1", "2", "3"
84
+ typeFilter: v.optional(v.string()),
85
+ },
86
+ handler: async (ctx, args) => {
87
+ let categories = await ctx.db.query('device_categories').collect();
88
+ // Apply filters
89
+ if (args.search) {
90
+ const searchLower = args.search.toLowerCase();
91
+ categories = categories.filter((c) => c.name.toLowerCase().includes(searchLower) ||
92
+ (c.primoupId && c.primoupId.toString().includes(searchLower)));
93
+ }
94
+ if (args.noteFilter) {
95
+ if (args.noteFilter === 'null') {
96
+ categories = categories.filter((c) => !c.note || c.note === '');
97
+ }
98
+ else {
99
+ categories = categories.filter((c) => c.note === args.noteFilter);
100
+ }
101
+ }
102
+ if (args.typeFilter) {
103
+ categories = categories.filter((c) => c.type === args.typeFilter);
104
+ }
105
+ // Sort by name
106
+ categories.sort((a, b) => a.name.localeCompare(b.name));
107
+ return categories;
108
+ },
109
+ });
110
+ // Get category by ID
111
+ export const get = query({
112
+ args: { id: v.id('device_categories') },
113
+ handler: async (ctx, args) => {
114
+ return await ctx.db.get(args.id);
115
+ },
116
+ });
117
+ // Get category by PrimoUP ID
118
+ export const getByPrimoupId = query({
119
+ args: { primoupId: v.number() },
120
+ handler: async (ctx, args) => {
121
+ return await ctx.db
122
+ .query('device_categories')
123
+ .withIndex('by_primoupId', (q) => q.eq('primoupId', args.primoupId))
124
+ .first();
125
+ },
126
+ });
127
+ // Create category
128
+ export const create = mutation({
129
+ args: {
130
+ primoupId: v.number(),
131
+ name: v.string(),
132
+ parentId: v.optional(v.number()),
133
+ activeWarehouseCategory: v.optional(v.number()),
134
+ orisId: v.optional(v.string()),
135
+ type: v.optional(v.string()),
136
+ note: v.optional(v.string()),
137
+ createdAt: v.optional(v.string()),
138
+ updatedAt: v.optional(v.string()),
139
+ },
140
+ handler: async (ctx, args) => {
141
+ // Check if already exists
142
+ const existing = await ctx.db
143
+ .query('device_categories')
144
+ .withIndex('by_primoupId', (q) => q.eq('primoupId', args.primoupId))
145
+ .first();
146
+ if (existing) {
147
+ throw new Error(`Category with PrimoUP ID ${args.primoupId} already exists`);
148
+ }
149
+ const categoryId = await ctx.db.insert('device_categories', {
150
+ primoupId: args.primoupId,
151
+ name: args.name,
152
+ parentId: args.parentId,
153
+ activeWarehouseCategory: args.activeWarehouseCategory,
154
+ orisId: args.orisId,
155
+ type: args.type,
156
+ note: args.note,
157
+ createdAt: args.createdAt,
158
+ updatedAt: args.updatedAt,
159
+ importedAt: Date.now(),
160
+ });
161
+ return categoryId;
162
+ },
163
+ });
164
+ // Update category
165
+ export const update = mutation({
166
+ args: {
167
+ id: v.id('device_categories'),
168
+ name: v.optional(v.string()),
169
+ parentId: v.optional(v.number()),
170
+ activeWarehouseCategory: v.optional(v.number()),
171
+ orisId: v.optional(v.string()),
172
+ type: v.optional(v.string()),
173
+ note: v.optional(v.string()),
174
+ createdAt: v.optional(v.string()),
175
+ updatedAt: v.optional(v.string()),
176
+ },
177
+ handler: async (ctx, args) => {
178
+ const { id, ...updates } = args;
179
+ await ctx.db.patch(id, {
180
+ ...updates,
181
+ importedAt: Date.now(),
182
+ });
183
+ return id;
184
+ },
185
+ });
186
+ // Delete category
187
+ export const remove = mutation({
188
+ args: { id: v.id('device_categories') },
189
+ handler: async (ctx, args) => {
190
+ await ctx.db.delete(args.id);
191
+ return { success: true };
192
+ },
193
+ });
194
+ // Get statistics
195
+ export const stats = query({
196
+ args: {},
197
+ handler: async (ctx) => {
198
+ const categories = await ctx.db.query('device_categories').collect();
199
+ const byType = {};
200
+ const result = {
201
+ total: categories.length,
202
+ byNote: {
203
+ null: 0,
204
+ '1': 0,
205
+ '2': 0,
206
+ '3': 0,
207
+ },
208
+ byType,
209
+ withParent: 0,
210
+ withoutParent: 0,
211
+ };
212
+ categories.forEach((cat) => {
213
+ // Count by note
214
+ if (!cat.note || cat.note === '') {
215
+ result.byNote['null']++;
216
+ }
217
+ else if (cat.note === '1') {
218
+ result.byNote['1']++;
219
+ }
220
+ else if (cat.note === '2') {
221
+ result.byNote['2']++;
222
+ }
223
+ else if (cat.note === '3') {
224
+ result.byNote['3']++;
225
+ }
226
+ // Count by type
227
+ const type = cat.type || 'unknown';
228
+ result.byType[type] = (result.byType[type] || 0) + 1;
229
+ // Count parent/child
230
+ if (cat.parentId) {
231
+ result.withParent++;
232
+ }
233
+ else {
234
+ result.withoutParent++;
235
+ }
236
+ });
237
+ return result;
238
+ },
239
+ });
240
+ // Clear all categories (for re-import)
241
+ export const deleteAll = mutation({
242
+ args: {},
243
+ handler: async (ctx) => {
244
+ const categories = await ctx.db.query('device_categories').collect();
245
+ for (const category of categories) {
246
+ await ctx.db.delete(category._id);
247
+ }
248
+ return {
249
+ success: true,
250
+ deleted: categories.length,
251
+ };
252
+ },
253
+ });
254
+ //# sourceMappingURL=deviceCategories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceCategories.js","sourceRoot":"","sources":["../../src/component/deviceCategories.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ export declare const listQuestionsByDevice: import("convex/server").RegisteredQuery<"public", {
2
+ deviceId: import("convex/values").GenericId<"devices">;
3
+ }, Promise<{
4
+ _id: import("convex/values").GenericId<"device_questions">;
5
+ _creationTime: number;
6
+ options?: string[] | undefined;
7
+ placeholder?: string | undefined;
8
+ helpText?: string | undefined;
9
+ conditionalLogic?: {
10
+ conditions: {
11
+ questionId: import("convex/values").GenericId<"device_questions">;
12
+ value: any;
13
+ operator: "equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty" | "not_contains";
14
+ }[];
15
+ enabled: boolean;
16
+ logic: "AND" | "OR";
17
+ } | undefined;
18
+ createdAt: number;
19
+ isActive: boolean;
20
+ deviceId: import("convex/values").GenericId<"devices">;
21
+ createdBy: string;
22
+ updatedAt: number;
23
+ order: number;
24
+ isRequired: boolean;
25
+ question: string;
26
+ questionType: "number" | "text" | "textarea" | "select" | "multiselect" | "date" | "yes_no";
27
+ }[]>>;
28
+ export declare const listAllQuestions: import("convex/server").RegisteredQuery<"public", {}, Promise<{
29
+ deviceName: string;
30
+ deviceCategory: string;
31
+ _id: import("convex/values").GenericId<"device_questions">;
32
+ _creationTime: number;
33
+ options?: string[] | undefined;
34
+ placeholder?: string | undefined;
35
+ helpText?: string | undefined;
36
+ conditionalLogic?: {
37
+ conditions: {
38
+ questionId: import("convex/values").GenericId<"device_questions">;
39
+ value: any;
40
+ operator: "equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty" | "not_contains";
41
+ }[];
42
+ enabled: boolean;
43
+ logic: "AND" | "OR";
44
+ } | undefined;
45
+ createdAt: number;
46
+ isActive: boolean;
47
+ deviceId: import("convex/values").GenericId<"devices">;
48
+ createdBy: string;
49
+ updatedAt: number;
50
+ order: number;
51
+ isRequired: boolean;
52
+ question: string;
53
+ questionType: "number" | "text" | "textarea" | "select" | "multiselect" | "date" | "yes_no";
54
+ }[]>>;
55
+ export declare const getQuestion: import("convex/server").RegisteredQuery<"public", {
56
+ questionId: import("convex/values").GenericId<"device_questions">;
57
+ }, Promise<{
58
+ _id: import("convex/values").GenericId<"device_questions">;
59
+ _creationTime: number;
60
+ options?: string[] | undefined;
61
+ placeholder?: string | undefined;
62
+ helpText?: string | undefined;
63
+ conditionalLogic?: {
64
+ conditions: {
65
+ questionId: import("convex/values").GenericId<"device_questions">;
66
+ value: any;
67
+ operator: "equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty" | "not_contains";
68
+ }[];
69
+ enabled: boolean;
70
+ logic: "AND" | "OR";
71
+ } | undefined;
72
+ createdAt: number;
73
+ isActive: boolean;
74
+ deviceId: import("convex/values").GenericId<"devices">;
75
+ createdBy: string;
76
+ updatedAt: number;
77
+ order: number;
78
+ isRequired: boolean;
79
+ question: string;
80
+ questionType: "number" | "text" | "textarea" | "select" | "multiselect" | "date" | "yes_no";
81
+ } | null>>;
82
+ export declare const createQuestion: import("convex/server").RegisteredMutation<"public", {
83
+ options?: string[] | undefined;
84
+ placeholder?: string | undefined;
85
+ helpText?: string | undefined;
86
+ conditionalLogic?: {
87
+ conditions: {
88
+ questionId: import("convex/values").GenericId<"device_questions">;
89
+ value: any;
90
+ operator: "equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty" | "not_contains";
91
+ }[];
92
+ enabled: boolean;
93
+ logic: "AND" | "OR";
94
+ } | undefined;
95
+ deviceId: import("convex/values").GenericId<"devices">;
96
+ createdBy: string;
97
+ order: number;
98
+ isRequired: boolean;
99
+ question: string;
100
+ questionType: "number" | "text" | "textarea" | "select" | "multiselect" | "date" | "yes_no";
101
+ }, Promise<import("convex/values").GenericId<"device_questions">>>;
102
+ export declare const updateQuestion: import("convex/server").RegisteredMutation<"public", {
103
+ isActive?: boolean | undefined;
104
+ order?: number | undefined;
105
+ options?: string[] | undefined;
106
+ isRequired?: boolean | undefined;
107
+ placeholder?: string | undefined;
108
+ helpText?: string | undefined;
109
+ question?: string | undefined;
110
+ questionType?: "number" | "text" | "textarea" | "select" | "multiselect" | "date" | "yes_no" | undefined;
111
+ conditionalLogic?: {
112
+ conditions: {
113
+ questionId: import("convex/values").GenericId<"device_questions">;
114
+ value: any;
115
+ operator: "equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty" | "not_contains";
116
+ }[];
117
+ enabled: boolean;
118
+ logic: "AND" | "OR";
119
+ } | undefined;
120
+ questionId: import("convex/values").GenericId<"device_questions">;
121
+ }, Promise<import("convex/values").GenericId<"device_questions">>>;
122
+ export declare const deleteQuestion: import("convex/server").RegisteredMutation<"public", {
123
+ questionId: import("convex/values").GenericId<"device_questions">;
124
+ }, Promise<import("convex/values").GenericId<"device_questions">>>;
125
+ export declare const reorderQuestions: import("convex/server").RegisteredMutation<"public", {
126
+ deviceId: import("convex/values").GenericId<"devices">;
127
+ questionIds: import("convex/values").GenericId<"device_questions">[];
128
+ }, Promise<boolean>>;
129
+ //# sourceMappingURL=deviceQuestions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceQuestions.d.ts","sourceRoot":"","sources":["../../src/component/deviceQuestions.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;KAahC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;KAkC3B,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;UAOtB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;kEA8DzB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;kEAgEzB,CAAC;AAEH,eAAO,MAAM,cAAc;;kEAYzB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;oBAiB3B,CAAC"}
@@ -0,0 +1,175 @@
1
+ import { v } from 'convex/values';
2
+ import { mutation, query } from './_generated/server';
3
+ export const listQuestionsByDevice = query({
4
+ args: {
5
+ deviceId: v.id('devices'),
6
+ },
7
+ handler: async (ctx, args) => {
8
+ const questions = await ctx.db
9
+ .query('device_questions')
10
+ .withIndex('by_deviceId', (q) => q.eq('deviceId', args.deviceId))
11
+ .filter((q) => q.eq(q.field('isActive'), true))
12
+ .collect();
13
+ return questions.sort((a, b) => a.order - b.order);
14
+ },
15
+ });
16
+ export const listAllQuestions = query({
17
+ args: {},
18
+ handler: async (ctx) => {
19
+ try {
20
+ const questions = await ctx.db
21
+ .query('device_questions')
22
+ .collect();
23
+ if (questions.length === 0) {
24
+ return [];
25
+ }
26
+ const questionsWithDevices = await Promise.all(questions.map(async (question) => {
27
+ const device = await ctx.db.get(question.deviceId);
28
+ return {
29
+ ...question,
30
+ deviceName: device?.name || 'Attrezzatura non trovata',
31
+ deviceCategory: device?.category || '',
32
+ };
33
+ }));
34
+ return questionsWithDevices.sort((a, b) => {
35
+ if (a.deviceName !== b.deviceName) {
36
+ return a.deviceName.localeCompare(b.deviceName);
37
+ }
38
+ return a.order - b.order;
39
+ });
40
+ }
41
+ catch (error) {
42
+ console.error('Error in listAllQuestions:', error);
43
+ throw error;
44
+ }
45
+ },
46
+ });
47
+ export const getQuestion = query({
48
+ args: {
49
+ questionId: v.id('device_questions'),
50
+ },
51
+ handler: async (ctx, args) => {
52
+ return await ctx.db.get(args.questionId);
53
+ },
54
+ });
55
+ export const createQuestion = mutation({
56
+ args: {
57
+ deviceId: v.id('devices'),
58
+ question: v.string(),
59
+ questionType: v.union(v.literal('text'), v.literal('textarea'), v.literal('select'), v.literal('multiselect'), v.literal('yes_no'), v.literal('number'), v.literal('date')),
60
+ options: v.optional(v.array(v.string())),
61
+ isRequired: v.boolean(),
62
+ order: v.number(),
63
+ placeholder: v.optional(v.string()),
64
+ helpText: v.optional(v.string()),
65
+ conditionalLogic: v.optional(v.object({
66
+ enabled: v.boolean(),
67
+ conditions: v.array(v.object({
68
+ questionId: v.id('device_questions'),
69
+ operator: v.union(v.literal('equals'), v.literal('not_equals'), v.literal('contains'), v.literal('not_contains'), v.literal('greater_than'), v.literal('less_than'), v.literal('is_empty'), v.literal('is_not_empty')),
70
+ value: v.any(),
71
+ })),
72
+ logic: v.union(v.literal('AND'), v.literal('OR')),
73
+ })),
74
+ createdBy: v.string(),
75
+ },
76
+ handler: async (ctx, args) => {
77
+ const device = await ctx.db.get(args.deviceId);
78
+ if (!device) {
79
+ throw new Error('Attrezzatura non trovata');
80
+ }
81
+ const questionId = await ctx.db.insert('device_questions', {
82
+ deviceId: args.deviceId,
83
+ question: args.question,
84
+ questionType: args.questionType,
85
+ options: args.options,
86
+ isRequired: args.isRequired,
87
+ order: args.order,
88
+ placeholder: args.placeholder,
89
+ helpText: args.helpText,
90
+ conditionalLogic: args.conditionalLogic,
91
+ isActive: true,
92
+ createdAt: Date.now(),
93
+ updatedAt: Date.now(),
94
+ createdBy: args.createdBy,
95
+ });
96
+ return questionId;
97
+ },
98
+ });
99
+ export const updateQuestion = mutation({
100
+ args: {
101
+ questionId: v.id('device_questions'),
102
+ question: v.optional(v.string()),
103
+ questionType: v.optional(v.union(v.literal('text'), v.literal('textarea'), v.literal('select'), v.literal('multiselect'), v.literal('yes_no'), v.literal('number'), v.literal('date'))),
104
+ options: v.optional(v.array(v.string())),
105
+ isRequired: v.optional(v.boolean()),
106
+ order: v.optional(v.number()),
107
+ placeholder: v.optional(v.string()),
108
+ helpText: v.optional(v.string()),
109
+ conditionalLogic: v.optional(v.object({
110
+ enabled: v.boolean(),
111
+ conditions: v.array(v.object({
112
+ questionId: v.id('device_questions'),
113
+ operator: v.union(v.literal('equals'), v.literal('not_equals'), v.literal('contains'), v.literal('not_contains'), v.literal('greater_than'), v.literal('less_than'), v.literal('is_empty'), v.literal('is_not_empty')),
114
+ value: v.any(),
115
+ })),
116
+ logic: v.union(v.literal('AND'), v.literal('OR')),
117
+ })),
118
+ isActive: v.optional(v.boolean()),
119
+ },
120
+ handler: async (ctx, args) => {
121
+ const question = await ctx.db.get(args.questionId);
122
+ if (!question) {
123
+ throw new Error('Domanda non trovata');
124
+ }
125
+ const updates = {
126
+ updatedAt: Date.now(),
127
+ };
128
+ if (args.question !== undefined)
129
+ updates.question = args.question;
130
+ if (args.questionType !== undefined)
131
+ updates.questionType = args.questionType;
132
+ if (args.options !== undefined)
133
+ updates.options = args.options;
134
+ if (args.isRequired !== undefined)
135
+ updates.isRequired = args.isRequired;
136
+ if (args.order !== undefined)
137
+ updates.order = args.order;
138
+ if (args.placeholder !== undefined)
139
+ updates.placeholder = args.placeholder;
140
+ if (args.helpText !== undefined)
141
+ updates.helpText = args.helpText;
142
+ if (args.conditionalLogic !== undefined)
143
+ updates.conditionalLogic = args.conditionalLogic;
144
+ if (args.isActive !== undefined)
145
+ updates.isActive = args.isActive;
146
+ await ctx.db.patch(args.questionId, updates);
147
+ return args.questionId;
148
+ },
149
+ });
150
+ export const deleteQuestion = mutation({
151
+ args: {
152
+ questionId: v.id('device_questions'),
153
+ },
154
+ handler: async (ctx, args) => {
155
+ await ctx.db.patch(args.questionId, {
156
+ isActive: false,
157
+ updatedAt: Date.now(),
158
+ });
159
+ return args.questionId;
160
+ },
161
+ });
162
+ export const reorderQuestions = mutation({
163
+ args: {
164
+ deviceId: v.id('devices'),
165
+ questionIds: v.array(v.id('device_questions')),
166
+ },
167
+ handler: async (ctx, args) => {
168
+ await Promise.all(args.questionIds.map((questionId, index) => ctx.db.patch(questionId, {
169
+ order: index,
170
+ updatedAt: Date.now(),
171
+ })));
172
+ return true;
173
+ },
174
+ });
175
+ //# sourceMappingURL=deviceQuestions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceQuestions.js","sourceRoot":"","sources":["../../src/component/deviceQuestions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export declare const getRepairHistory: import("convex/server").RegisteredQuery<"public", {
2
+ deviceId: import("convex/values").GenericId<"devices">;
3
+ }, Promise<{
4
+ _id: import("convex/values").GenericId<"device_repair_history">;
5
+ _creationTime: number;
6
+ notes?: string | undefined;
7
+ ticketId?: import("convex/values").GenericId<"maintenance_tasks"> | undefined;
8
+ returnedAt?: number | undefined;
9
+ statusAfterRepair?: "active" | "out_of_service" | undefined;
10
+ returnedBy?: string | undefined;
11
+ clinicId: import("convex/values").GenericId<"clinics">;
12
+ deviceId: import("convex/values").GenericId<"devices">;
13
+ sentToRepairAt: number;
14
+ createdBy: string;
15
+ }[]>>;
16
+ export declare const sendToRepair: import("convex/server").RegisteredMutation<"public", {
17
+ notes?: string | undefined;
18
+ ticketId?: import("convex/values").GenericId<"maintenance_tasks"> | undefined;
19
+ deviceId: import("convex/values").GenericId<"devices">;
20
+ createdBy: string;
21
+ }, Promise<import("convex/values").GenericId<"device_repair_history">>>;
22
+ export declare const returnFromRepair: import("convex/server").RegisteredMutation<"public", {
23
+ notes?: string | undefined;
24
+ deviceId: import("convex/values").GenericId<"devices">;
25
+ statusAfterRepair: "active" | "out_of_service";
26
+ returnedBy: string;
27
+ }, Promise<{
28
+ success: boolean;
29
+ }>>;
30
+ //# sourceMappingURL=deviceRepairHistory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceRepairHistory.d.ts","sourceRoot":"","sources":["../../src/component/deviceRepairHistory.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;KAY3B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;uEA4BvB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;GA8C3B,CAAC"}