@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,1295 @@
1
+ declare const _default: import("convex/server").SchemaDefinition<{
2
+ roles: import("convex/server").TableDefinition<import("convex/values").VObject<{
3
+ policies?: {
4
+ canViewAllClinics?: boolean | undefined;
5
+ canEditClinics?: boolean | undefined;
6
+ canViewAllDevices?: boolean | undefined;
7
+ canEditDevices?: boolean | undefined;
8
+ canViewAllTickets?: boolean | undefined;
9
+ canEditTickets?: boolean | undefined;
10
+ canManageUsers?: boolean | undefined;
11
+ canManageRoles?: boolean | undefined;
12
+ canViewReports?: boolean | undefined;
13
+ } | undefined;
14
+ createdAt?: number | undefined;
15
+ name: string;
16
+ description: string;
17
+ }, {
18
+ name: import("convex/values").VString<string, "required">;
19
+ description: import("convex/values").VString<string, "required">;
20
+ policies: import("convex/values").VObject<{
21
+ canViewAllClinics?: boolean | undefined;
22
+ canEditClinics?: boolean | undefined;
23
+ canViewAllDevices?: boolean | undefined;
24
+ canEditDevices?: boolean | undefined;
25
+ canViewAllTickets?: boolean | undefined;
26
+ canEditTickets?: boolean | undefined;
27
+ canManageUsers?: boolean | undefined;
28
+ canManageRoles?: boolean | undefined;
29
+ canViewReports?: boolean | undefined;
30
+ } | undefined, {
31
+ canViewAllClinics: import("convex/values").VBoolean<boolean | undefined, "optional">;
32
+ canEditClinics: import("convex/values").VBoolean<boolean | undefined, "optional">;
33
+ canViewAllDevices: import("convex/values").VBoolean<boolean | undefined, "optional">;
34
+ canEditDevices: import("convex/values").VBoolean<boolean | undefined, "optional">;
35
+ canViewAllTickets: import("convex/values").VBoolean<boolean | undefined, "optional">;
36
+ canEditTickets: import("convex/values").VBoolean<boolean | undefined, "optional">;
37
+ canManageUsers: import("convex/values").VBoolean<boolean | undefined, "optional">;
38
+ canManageRoles: import("convex/values").VBoolean<boolean | undefined, "optional">;
39
+ canViewReports: import("convex/values").VBoolean<boolean | undefined, "optional">;
40
+ }, "optional", "canViewAllClinics" | "canEditClinics" | "canViewAllDevices" | "canEditDevices" | "canViewAllTickets" | "canEditTickets" | "canManageUsers" | "canManageRoles" | "canViewReports">;
41
+ createdAt: import("convex/values").VFloat64<number | undefined, "optional">;
42
+ }, "required", "name" | "description" | "policies" | "createdAt" | "policies.canViewAllClinics" | "policies.canEditClinics" | "policies.canViewAllDevices" | "policies.canEditDevices" | "policies.canViewAllTickets" | "policies.canEditTickets" | "policies.canManageUsers" | "policies.canManageRoles" | "policies.canViewReports">, {
43
+ by_name: ["name", "_creationTime"];
44
+ }, {}, {}>;
45
+ user_profiles: import("convex/server").TableDefinition<import("convex/values").VObject<{
46
+ name?: string | undefined;
47
+ roleId?: import("convex/values").GenericId<"roles"> | undefined;
48
+ role?: string | undefined;
49
+ clinicId?: import("convex/values").GenericId<"clinics"> | undefined;
50
+ supplierId?: import("convex/values").GenericId<"suppliers"> | undefined;
51
+ primoupClinics?: any[] | undefined;
52
+ selectedClinicId?: number | undefined;
53
+ clinicChangeCounter?: number | undefined;
54
+ impersonatingUserId?: import("convex/values").GenericId<"user_profiles"> | undefined;
55
+ isActive?: boolean | undefined;
56
+ auth0Id: string;
57
+ email: string;
58
+ }, {
59
+ auth0Id: import("convex/values").VString<string, "required">;
60
+ roleId: import("convex/values").VId<import("convex/values").GenericId<"roles"> | undefined, "optional">;
61
+ role: import("convex/values").VString<string | undefined, "optional">;
62
+ clinicId: import("convex/values").VId<import("convex/values").GenericId<"clinics"> | undefined, "optional">;
63
+ supplierId: import("convex/values").VId<import("convex/values").GenericId<"suppliers"> | undefined, "optional">;
64
+ email: import("convex/values").VString<string, "required">;
65
+ name: import("convex/values").VString<string | undefined, "optional">;
66
+ primoupClinics: import("convex/values").VArray<any[] | undefined, import("convex/values").VAny<any, "required", string>, "optional">;
67
+ selectedClinicId: import("convex/values").VFloat64<number | undefined, "optional">;
68
+ clinicChangeCounter: import("convex/values").VFloat64<number | undefined, "optional">;
69
+ impersonatingUserId: import("convex/values").VId<import("convex/values").GenericId<"user_profiles"> | undefined, "optional">;
70
+ isActive: import("convex/values").VBoolean<boolean | undefined, "optional">;
71
+ }, "required", "name" | "auth0Id" | "roleId" | "role" | "clinicId" | "supplierId" | "email" | "primoupClinics" | "selectedClinicId" | "clinicChangeCounter" | "impersonatingUserId" | "isActive">, {
72
+ by_auth0Id: ["auth0Id", "_creationTime"];
73
+ by_email: ["email", "_creationTime"];
74
+ by_roleId: ["roleId", "_creationTime"];
75
+ by_clinicId: ["clinicId", "_creationTime"];
76
+ by_supplierId: ["supplierId", "_creationTime"];
77
+ by_isActive: ["isActive", "_creationTime"];
78
+ }, {}, {}>;
79
+ primoup_tokens: import("convex/server").TableDefinition<import("convex/values").VObject<{
80
+ refreshToken?: string | undefined;
81
+ expiresAt?: number | undefined;
82
+ lastUsedAt?: number | undefined;
83
+ createdAt: number;
84
+ isActive: boolean;
85
+ userId: string;
86
+ token: string;
87
+ }, {
88
+ userId: import("convex/values").VString<string, "required">;
89
+ token: import("convex/values").VString<string, "required">;
90
+ refreshToken: import("convex/values").VString<string | undefined, "optional">;
91
+ expiresAt: import("convex/values").VFloat64<number | undefined, "optional">;
92
+ createdAt: import("convex/values").VFloat64<number, "required">;
93
+ lastUsedAt: import("convex/values").VFloat64<number | undefined, "optional">;
94
+ isActive: import("convex/values").VBoolean<boolean, "required">;
95
+ }, "required", "createdAt" | "isActive" | "userId" | "token" | "refreshToken" | "expiresAt" | "lastUsedAt">, {
96
+ by_userId: ["userId", "_creationTime"];
97
+ by_userId_active: ["userId", "isActive", "_creationTime"];
98
+ }, {}, {}>;
99
+ primoup_access_logs: import("convex/server").TableDefinition<import("convex/values").VObject<{
100
+ endpoint?: string | undefined;
101
+ errorMessage?: string | undefined;
102
+ metadata?: any;
103
+ userId: string;
104
+ action: string;
105
+ success: boolean;
106
+ timestamp: number;
107
+ }, {
108
+ userId: import("convex/values").VString<string, "required">;
109
+ action: import("convex/values").VString<string, "required">;
110
+ endpoint: import("convex/values").VString<string | undefined, "optional">;
111
+ success: import("convex/values").VBoolean<boolean, "required">;
112
+ errorMessage: import("convex/values").VString<string | undefined, "optional">;
113
+ timestamp: import("convex/values").VFloat64<number, "required">;
114
+ metadata: import("convex/values").VAny<any, "optional", string>;
115
+ }, "required", "userId" | "action" | "endpoint" | "success" | "errorMessage" | "timestamp" | "metadata" | `metadata.${string}`>, {
116
+ by_userId: ["userId", "_creationTime"];
117
+ by_timestamp: ["timestamp", "_creationTime"];
118
+ by_userId_timestamp: ["userId", "timestamp", "_creationTime"];
119
+ }, {}, {}>;
120
+ clinics: import("convex/server").TableDefinition<import("convex/values").VObject<{
121
+ region?: string | undefined;
122
+ primoupId?: string | undefined;
123
+ name: string;
124
+ address: string;
125
+ contact_email: string;
126
+ contact_phone: string;
127
+ }, {
128
+ name: import("convex/values").VString<string, "required">;
129
+ address: import("convex/values").VString<string, "required">;
130
+ contact_email: import("convex/values").VString<string, "required">;
131
+ contact_phone: import("convex/values").VString<string, "required">;
132
+ region: import("convex/values").VString<string | undefined, "optional">;
133
+ primoupId: import("convex/values").VString<string | undefined, "optional">;
134
+ }, "required", "name" | "address" | "contact_email" | "contact_phone" | "region" | "primoupId">, {
135
+ by_primoupId: ["primoupId", "_creationTime"];
136
+ }, {}, {}>;
137
+ devices: import("convex/server").TableDefinition<import("convex/values").VObject<{
138
+ supplierId?: import("convex/values").GenericId<"suppliers"> | undefined;
139
+ metadata?: any;
140
+ primoupClinicId?: number | undefined;
141
+ photo?: string | undefined;
142
+ photoStorageId?: import("convex/values").GenericId<"_storage"> | undefined;
143
+ internalId?: string | undefined;
144
+ articleId?: string | undefined;
145
+ primoupCategoryId?: string | undefined;
146
+ industry40Data?: string | undefined;
147
+ quantity?: number | undefined;
148
+ purchaseDate?: number | undefined;
149
+ vendor?: string | undefined;
150
+ purchaseCost?: number | undefined;
151
+ warrantyEndDate?: number | undefined;
152
+ spareParts?: {
153
+ photoStorageId?: import("convex/values").GenericId<"_storage"> | undefined;
154
+ notes?: string | undefined;
155
+ name: string;
156
+ quantity: number;
157
+ code: string;
158
+ }[] | undefined;
159
+ maintenanceManualStorageId?: import("convex/values").GenericId<"_storage"> | undefined;
160
+ maintenanceReportsStorageIds?: import("convex/values").GenericId<"_storage">[] | undefined;
161
+ conformityDeclarationStorageId?: import("convex/values").GenericId<"_storage"> | undefined;
162
+ authorizationsStorageIds?: import("convex/values").GenericId<"_storage">[] | undefined;
163
+ otherAttachmentsStorageIds?: import("convex/values").GenericId<"_storage">[] | undefined;
164
+ name: string;
165
+ clinicId: import("convex/values").GenericId<"clinics">;
166
+ category: string;
167
+ brand: string;
168
+ model: string;
169
+ serial_number: string;
170
+ status: "active" | "in_maintenance" | "out_of_service";
171
+ }, {
172
+ clinicId: import("convex/values").VId<import("convex/values").GenericId<"clinics">, "required">;
173
+ primoupClinicId: import("convex/values").VFloat64<number | undefined, "optional">;
174
+ supplierId: import("convex/values").VId<import("convex/values").GenericId<"suppliers"> | undefined, "optional">;
175
+ name: import("convex/values").VString<string, "required">;
176
+ category: import("convex/values").VString<string, "required">;
177
+ brand: import("convex/values").VString<string, "required">;
178
+ model: import("convex/values").VString<string, "required">;
179
+ serial_number: import("convex/values").VString<string, "required">;
180
+ photo: import("convex/values").VString<string | undefined, "optional">;
181
+ photoStorageId: import("convex/values").VId<import("convex/values").GenericId<"_storage"> | undefined, "optional">;
182
+ status: import("convex/values").VUnion<"active" | "in_maintenance" | "out_of_service", [import("convex/values").VLiteral<"active", "required">, import("convex/values").VLiteral<"in_maintenance", "required">, import("convex/values").VLiteral<"out_of_service", "required">], "required", never>;
183
+ metadata: import("convex/values").VAny<any, "optional", string>;
184
+ internalId: import("convex/values").VString<string | undefined, "optional">;
185
+ articleId: import("convex/values").VString<string | undefined, "optional">;
186
+ primoupCategoryId: import("convex/values").VString<string | undefined, "optional">;
187
+ industry40Data: import("convex/values").VString<string | undefined, "optional">;
188
+ quantity: import("convex/values").VFloat64<number | undefined, "optional">;
189
+ purchaseDate: import("convex/values").VFloat64<number | undefined, "optional">;
190
+ vendor: import("convex/values").VString<string | undefined, "optional">;
191
+ purchaseCost: import("convex/values").VFloat64<number | undefined, "optional">;
192
+ warrantyEndDate: import("convex/values").VFloat64<number | undefined, "optional">;
193
+ spareParts: import("convex/values").VArray<{
194
+ photoStorageId?: import("convex/values").GenericId<"_storage"> | undefined;
195
+ notes?: string | undefined;
196
+ name: string;
197
+ quantity: number;
198
+ code: string;
199
+ }[] | undefined, import("convex/values").VObject<{
200
+ photoStorageId?: import("convex/values").GenericId<"_storage"> | undefined;
201
+ notes?: string | undefined;
202
+ name: string;
203
+ quantity: number;
204
+ code: string;
205
+ }, {
206
+ name: import("convex/values").VString<string, "required">;
207
+ code: import("convex/values").VString<string, "required">;
208
+ photoStorageId: import("convex/values").VId<import("convex/values").GenericId<"_storage"> | undefined, "optional">;
209
+ quantity: import("convex/values").VFloat64<number, "required">;
210
+ notes: import("convex/values").VString<string | undefined, "optional">;
211
+ }, "required", "name" | "photoStorageId" | "quantity" | "code" | "notes">, "optional">;
212
+ maintenanceManualStorageId: import("convex/values").VId<import("convex/values").GenericId<"_storage"> | undefined, "optional">;
213
+ maintenanceReportsStorageIds: import("convex/values").VArray<import("convex/values").GenericId<"_storage">[] | undefined, import("convex/values").VId<import("convex/values").GenericId<"_storage">, "required">, "optional">;
214
+ conformityDeclarationStorageId: import("convex/values").VId<import("convex/values").GenericId<"_storage"> | undefined, "optional">;
215
+ authorizationsStorageIds: import("convex/values").VArray<import("convex/values").GenericId<"_storage">[] | undefined, import("convex/values").VId<import("convex/values").GenericId<"_storage">, "required">, "optional">;
216
+ otherAttachmentsStorageIds: import("convex/values").VArray<import("convex/values").GenericId<"_storage">[] | undefined, import("convex/values").VId<import("convex/values").GenericId<"_storage">, "required">, "optional">;
217
+ }, "required", "name" | "clinicId" | "supplierId" | "metadata" | `metadata.${string}` | "primoupClinicId" | "category" | "brand" | "model" | "serial_number" | "photo" | "photoStorageId" | "status" | "internalId" | "articleId" | "primoupCategoryId" | "industry40Data" | "quantity" | "purchaseDate" | "vendor" | "purchaseCost" | "warrantyEndDate" | "spareParts" | "maintenanceManualStorageId" | "maintenanceReportsStorageIds" | "conformityDeclarationStorageId" | "authorizationsStorageIds" | "otherAttachmentsStorageIds">, {
218
+ by_clinicId: ["clinicId", "_creationTime"];
219
+ by_primoupClinicId: ["primoupClinicId", "_creationTime"];
220
+ by_supplierId: ["supplierId", "_creationTime"];
221
+ by_category: ["category", "_creationTime"];
222
+ by_status: ["status", "_creationTime"];
223
+ by_internalId: ["internalId", "_creationTime"];
224
+ by_articleId: ["articleId", "_creationTime"];
225
+ by_primoupCategoryId: ["primoupCategoryId", "_creationTime"];
226
+ }, {}, {}>;
227
+ device_repair_history: import("convex/server").TableDefinition<import("convex/values").VObject<{
228
+ notes?: string | undefined;
229
+ ticketId?: import("convex/values").GenericId<"maintenance_tasks"> | undefined;
230
+ returnedAt?: number | undefined;
231
+ statusAfterRepair?: "active" | "out_of_service" | undefined;
232
+ returnedBy?: string | undefined;
233
+ clinicId: import("convex/values").GenericId<"clinics">;
234
+ deviceId: import("convex/values").GenericId<"devices">;
235
+ sentToRepairAt: number;
236
+ createdBy: string;
237
+ }, {
238
+ deviceId: import("convex/values").VId<import("convex/values").GenericId<"devices">, "required">;
239
+ clinicId: import("convex/values").VId<import("convex/values").GenericId<"clinics">, "required">;
240
+ ticketId: import("convex/values").VId<import("convex/values").GenericId<"maintenance_tasks"> | undefined, "optional">;
241
+ sentToRepairAt: import("convex/values").VFloat64<number, "required">;
242
+ returnedAt: import("convex/values").VFloat64<number | undefined, "optional">;
243
+ statusAfterRepair: import("convex/values").VUnion<"active" | "out_of_service" | undefined, [import("convex/values").VLiteral<"active", "required">, import("convex/values").VLiteral<"out_of_service", "required">], "optional", never>;
244
+ notes: import("convex/values").VString<string | undefined, "optional">;
245
+ createdBy: import("convex/values").VString<string, "required">;
246
+ returnedBy: import("convex/values").VString<string | undefined, "optional">;
247
+ }, "required", "clinicId" | "notes" | "deviceId" | "ticketId" | "sentToRepairAt" | "returnedAt" | "statusAfterRepair" | "createdBy" | "returnedBy">, {
248
+ by_deviceId: ["deviceId", "_creationTime"];
249
+ by_clinicId: ["clinicId", "_creationTime"];
250
+ by_deviceId_sentAt: ["deviceId", "sentToRepairAt", "_creationTime"];
251
+ }, {}, {}>;
252
+ supplier_categories: import("convex/server").TableDefinition<import("convex/values").VObject<{
253
+ description?: string | undefined;
254
+ name: string;
255
+ createdAt: number;
256
+ }, {
257
+ name: import("convex/values").VString<string, "required">;
258
+ description: import("convex/values").VString<string | undefined, "optional">;
259
+ createdAt: import("convex/values").VFloat64<number, "required">;
260
+ }, "required", "name" | "description" | "createdAt">, {
261
+ by_name: ["name", "_creationTime"];
262
+ }, {}, {}>;
263
+ sla_rules: import("convex/server").TableDefinition<import("convex/values").VObject<{
264
+ name?: string | undefined;
265
+ description?: string | undefined;
266
+ deviceCategory?: string | undefined;
267
+ createdAt: number;
268
+ supplierId: import("convex/values").GenericId<"suppliers">;
269
+ priority: "low" | "medium" | "high";
270
+ responseTimeHours: number;
271
+ resolutionTimeHours: number;
272
+ updatedAt: number;
273
+ }, {
274
+ name: import("convex/values").VString<string | undefined, "optional">;
275
+ supplierId: import("convex/values").VId<import("convex/values").GenericId<"suppliers">, "required">;
276
+ deviceCategory: import("convex/values").VString<string | undefined, "optional">;
277
+ priority: import("convex/values").VUnion<"low" | "medium" | "high", [import("convex/values").VLiteral<"low", "required">, import("convex/values").VLiteral<"medium", "required">, import("convex/values").VLiteral<"high", "required">], "required", never>;
278
+ responseTimeHours: import("convex/values").VFloat64<number, "required">;
279
+ resolutionTimeHours: import("convex/values").VFloat64<number, "required">;
280
+ description: import("convex/values").VString<string | undefined, "optional">;
281
+ createdAt: import("convex/values").VFloat64<number, "required">;
282
+ updatedAt: import("convex/values").VFloat64<number, "required">;
283
+ }, "required", "name" | "description" | "createdAt" | "supplierId" | "deviceCategory" | "priority" | "responseTimeHours" | "resolutionTimeHours" | "updatedAt">, {
284
+ by_supplierId: ["supplierId", "_creationTime"];
285
+ by_supplierId_priority: ["supplierId", "priority", "_creationTime"];
286
+ by_supplierId_category_priority: ["supplierId", "deviceCategory", "priority", "_creationTime"];
287
+ }, {}, {}>;
288
+ suppliers: import("convex/server").TableDefinition<import("convex/values").VObject<{
289
+ type?: string | undefined;
290
+ primoupId?: string | undefined;
291
+ notes?: string | undefined;
292
+ name: string;
293
+ contact_email: string;
294
+ contact_phone: string;
295
+ categories: string[];
296
+ sla_days: number;
297
+ }, {
298
+ name: import("convex/values").VString<string, "required">;
299
+ contact_email: import("convex/values").VString<string, "required">;
300
+ contact_phone: import("convex/values").VString<string, "required">;
301
+ categories: import("convex/values").VArray<string[], import("convex/values").VString<string, "required">, "required">;
302
+ sla_days: import("convex/values").VFloat64<number, "required">;
303
+ notes: import("convex/values").VString<string | undefined, "optional">;
304
+ primoupId: import("convex/values").VString<string | undefined, "optional">;
305
+ type: import("convex/values").VString<string | undefined, "optional">;
306
+ }, "required", "name" | "type" | "contact_email" | "contact_phone" | "primoupId" | "notes" | "categories" | "sla_days">, {
307
+ by_primoupId: ["primoupId", "_creationTime"];
308
+ }, {}, {}>;
309
+ vendor_articles: import("convex/server").TableDefinition<import("convex/values").VObject<{
310
+ metadata?: any;
311
+ primoupVendorId?: string | undefined;
312
+ primoupArticleId?: string | undefined;
313
+ deviceId: import("convex/values").GenericId<"devices">;
314
+ vendorId: import("convex/values").GenericId<"suppliers">;
315
+ }, {
316
+ vendorId: import("convex/values").VId<import("convex/values").GenericId<"suppliers">, "required">;
317
+ deviceId: import("convex/values").VId<import("convex/values").GenericId<"devices">, "required">;
318
+ primoupVendorId: import("convex/values").VString<string | undefined, "optional">;
319
+ primoupArticleId: import("convex/values").VString<string | undefined, "optional">;
320
+ metadata: import("convex/values").VAny<any, "optional", string>;
321
+ }, "required", "metadata" | `metadata.${string}` | "deviceId" | "vendorId" | "primoupVendorId" | "primoupArticleId">, {
322
+ by_vendorId: ["vendorId", "_creationTime"];
323
+ by_deviceId: ["deviceId", "_creationTime"];
324
+ by_vendorId_deviceId: ["vendorId", "deviceId", "_creationTime"];
325
+ by_primoupVendorId: ["primoupVendorId", "_creationTime"];
326
+ by_primoupArticleId: ["primoupArticleId", "_creationTime"];
327
+ }, {}, {}>;
328
+ contracts: import("convex/server").TableDefinition<import("convex/values").VObject<{
329
+ description?: string | undefined;
330
+ clinicId?: import("convex/values").GenericId<"clinics"> | undefined;
331
+ clinicIds?: import("convex/values").GenericId<"clinics">[] | undefined;
332
+ pdfStorageId?: import("convex/values").GenericId<"_storage"> | undefined;
333
+ pdf_url?: string | undefined;
334
+ type: "full" | "on_demand" | "mixed";
335
+ supplierId: import("convex/values").GenericId<"suppliers">;
336
+ start_date: number;
337
+ end_date: number;
338
+ amount: number;
339
+ related_devices: import("convex/values").GenericId<"devices">[];
340
+ }, {
341
+ supplierId: import("convex/values").VId<import("convex/values").GenericId<"suppliers">, "required">;
342
+ clinicId: import("convex/values").VId<import("convex/values").GenericId<"clinics"> | undefined, "optional">;
343
+ clinicIds: import("convex/values").VArray<import("convex/values").GenericId<"clinics">[] | undefined, import("convex/values").VId<import("convex/values").GenericId<"clinics">, "required">, "optional">;
344
+ start_date: import("convex/values").VFloat64<number, "required">;
345
+ end_date: import("convex/values").VFloat64<number, "required">;
346
+ amount: import("convex/values").VFloat64<number, "required">;
347
+ type: import("convex/values").VUnion<"full" | "on_demand" | "mixed", [import("convex/values").VLiteral<"full", "required">, import("convex/values").VLiteral<"on_demand", "required">, import("convex/values").VLiteral<"mixed", "required">], "required", never>;
348
+ description: import("convex/values").VString<string | undefined, "optional">;
349
+ pdfStorageId: import("convex/values").VId<import("convex/values").GenericId<"_storage"> | undefined, "optional">;
350
+ pdf_url: import("convex/values").VString<string | undefined, "optional">;
351
+ related_devices: import("convex/values").VArray<import("convex/values").GenericId<"devices">[], import("convex/values").VId<import("convex/values").GenericId<"devices">, "required">, "required">;
352
+ }, "required", "description" | "type" | "clinicId" | "supplierId" | "clinicIds" | "start_date" | "end_date" | "amount" | "pdfStorageId" | "pdf_url" | "related_devices">, {
353
+ by_supplierId: ["supplierId", "_creationTime"];
354
+ by_clinicId: ["clinicId", "_creationTime"];
355
+ }, {}, {}>;
356
+ ticket_statuses: import("convex/server").TableDefinition<import("convex/values").VObject<{
357
+ slug?: string | undefined;
358
+ name: string;
359
+ createdAt: number;
360
+ isActive: boolean;
361
+ label: string;
362
+ color: string;
363
+ order: number;
364
+ }, {
365
+ name: import("convex/values").VString<string, "required">;
366
+ slug: import("convex/values").VString<string | undefined, "optional">;
367
+ label: import("convex/values").VString<string, "required">;
368
+ color: import("convex/values").VString<string, "required">;
369
+ order: import("convex/values").VFloat64<number, "required">;
370
+ isActive: import("convex/values").VBoolean<boolean, "required">;
371
+ createdAt: import("convex/values").VFloat64<number, "required">;
372
+ }, "required", "name" | "createdAt" | "isActive" | "slug" | "label" | "color" | "order">, {
373
+ by_name: ["name", "_creationTime"];
374
+ by_slug: ["slug", "_creationTime"];
375
+ by_order: ["order", "_creationTime"];
376
+ by_isActive: ["isActive", "_creationTime"];
377
+ }, {}, {}>;
378
+ ticket_custom_fields: import("convex/server").TableDefinition<import("convex/values").VObject<{
379
+ categories?: string[] | undefined;
380
+ options?: string[] | undefined;
381
+ placeholder?: string | undefined;
382
+ helpText?: string | undefined;
383
+ deviceIds?: import("convex/values").GenericId<"devices">[] | undefined;
384
+ parentFieldId?: import("convex/values").GenericId<"ticket_custom_fields"> | undefined;
385
+ parentFieldValue?: string | undefined;
386
+ childFields?: {
387
+ parentValue: string;
388
+ childFieldIds: import("convex/values").GenericId<"ticket_custom_fields">[];
389
+ }[] | undefined;
390
+ name: string;
391
+ createdAt: number;
392
+ isActive: boolean;
393
+ updatedAt: number;
394
+ order: number;
395
+ fieldType: "number" | "text" | "textarea" | "select" | "multiselect" | "date" | "checkbox" | "radio";
396
+ isRequired: boolean;
397
+ applyToAll: boolean;
398
+ }, {
399
+ name: import("convex/values").VString<string, "required">;
400
+ fieldType: import("convex/values").VUnion<"number" | "text" | "textarea" | "select" | "multiselect" | "date" | "checkbox" | "radio", [import("convex/values").VLiteral<"text", "required">, import("convex/values").VLiteral<"textarea", "required">, import("convex/values").VLiteral<"number", "required">, import("convex/values").VLiteral<"select", "required">, import("convex/values").VLiteral<"multiselect", "required">, import("convex/values").VLiteral<"date", "required">, import("convex/values").VLiteral<"checkbox", "required">, import("convex/values").VLiteral<"radio", "required">], "required", never>;
401
+ options: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
402
+ isRequired: import("convex/values").VBoolean<boolean, "required">;
403
+ placeholder: import("convex/values").VString<string | undefined, "optional">;
404
+ helpText: import("convex/values").VString<string | undefined, "optional">;
405
+ order: import("convex/values").VFloat64<number, "required">;
406
+ isActive: import("convex/values").VBoolean<boolean, "required">;
407
+ applyToAll: import("convex/values").VBoolean<boolean, "required">;
408
+ categories: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
409
+ deviceIds: import("convex/values").VArray<import("convex/values").GenericId<"devices">[] | undefined, import("convex/values").VId<import("convex/values").GenericId<"devices">, "required">, "optional">;
410
+ parentFieldId: import("convex/values").VId<import("convex/values").GenericId<"ticket_custom_fields"> | undefined, "optional">;
411
+ parentFieldValue: import("convex/values").VString<string | undefined, "optional">;
412
+ childFields: import("convex/values").VArray<{
413
+ parentValue: string;
414
+ childFieldIds: import("convex/values").GenericId<"ticket_custom_fields">[];
415
+ }[] | undefined, import("convex/values").VObject<{
416
+ parentValue: string;
417
+ childFieldIds: import("convex/values").GenericId<"ticket_custom_fields">[];
418
+ }, {
419
+ parentValue: import("convex/values").VString<string, "required">;
420
+ childFieldIds: import("convex/values").VArray<import("convex/values").GenericId<"ticket_custom_fields">[], import("convex/values").VId<import("convex/values").GenericId<"ticket_custom_fields">, "required">, "required">;
421
+ }, "required", "parentValue" | "childFieldIds">, "optional">;
422
+ createdAt: import("convex/values").VFloat64<number, "required">;
423
+ updatedAt: import("convex/values").VFloat64<number, "required">;
424
+ }, "required", "name" | "createdAt" | "isActive" | "updatedAt" | "categories" | "order" | "fieldType" | "options" | "isRequired" | "placeholder" | "helpText" | "applyToAll" | "deviceIds" | "parentFieldId" | "parentFieldValue" | "childFields">, {
425
+ by_order: ["order", "_creationTime"];
426
+ by_isActive: ["isActive", "_creationTime"];
427
+ by_applyToAll: ["applyToAll", "_creationTime"];
428
+ by_parentFieldId: ["parentFieldId", "_creationTime"];
429
+ }, {}, {}>;
430
+ maintenance_tasks: import("convex/server").TableDefinition<import("convex/values").VObject<{
431
+ supplierId?: import("convex/values").GenericId<"suppliers"> | undefined;
432
+ notes?: string | undefined;
433
+ deviceId?: import("convex/values").GenericId<"devices"> | undefined;
434
+ priority?: "low" | "medium" | "high" | undefined;
435
+ ticketNumber?: string | undefined;
436
+ title?: string | undefined;
437
+ createdByEmail?: string | undefined;
438
+ photoStorageIds?: import("convex/values").GenericId<"_storage">[] | undefined;
439
+ customFields?: any;
440
+ deviceQuestionAnswers?: {
441
+ questionId: import("convex/values").GenericId<"device_questions">;
442
+ question: string;
443
+ answer: any;
444
+ }[] | undefined;
445
+ slaDeadline?: number | undefined;
446
+ slaBreached?: boolean | undefined;
447
+ slaWarningSent?: boolean | undefined;
448
+ externalTicketId?: string | undefined;
449
+ externalTicketNumber?: number | undefined;
450
+ importSource?: string | undefined;
451
+ legacyTicketId?: number | undefined;
452
+ isExternal?: boolean | undefined;
453
+ needsAssignment?: boolean | undefined;
454
+ closed_at?: number | undefined;
455
+ description: string;
456
+ clinicId: import("convex/values").GenericId<"clinics">;
457
+ status: string;
458
+ created_by: string;
459
+ photos: string[];
460
+ created_at: number;
461
+ updated_at: number;
462
+ }, {
463
+ ticketNumber: import("convex/values").VString<string | undefined, "optional">;
464
+ title: import("convex/values").VString<string | undefined, "optional">;
465
+ deviceId: import("convex/values").VId<import("convex/values").GenericId<"devices"> | undefined, "optional">;
466
+ clinicId: import("convex/values").VId<import("convex/values").GenericId<"clinics">, "required">;
467
+ supplierId: import("convex/values").VId<import("convex/values").GenericId<"suppliers"> | undefined, "optional">;
468
+ created_by: import("convex/values").VString<string, "required">;
469
+ createdByEmail: import("convex/values").VString<string | undefined, "optional">;
470
+ description: import("convex/values").VString<string, "required">;
471
+ photos: import("convex/values").VArray<string[], import("convex/values").VString<string, "required">, "required">;
472
+ photoStorageIds: import("convex/values").VArray<import("convex/values").GenericId<"_storage">[] | undefined, import("convex/values").VId<import("convex/values").GenericId<"_storage">, "required">, "optional">;
473
+ status: import("convex/values").VString<string, "required">;
474
+ priority: import("convex/values").VUnion<"low" | "medium" | "high" | undefined, [import("convex/values").VLiteral<"low", "required">, import("convex/values").VLiteral<"medium", "required">, import("convex/values").VLiteral<"high", "required">], "optional", never>;
475
+ notes: import("convex/values").VString<string | undefined, "optional">;
476
+ customFields: import("convex/values").VAny<any, "optional", string>;
477
+ deviceQuestionAnswers: import("convex/values").VArray<{
478
+ questionId: import("convex/values").GenericId<"device_questions">;
479
+ question: string;
480
+ answer: any;
481
+ }[] | undefined, import("convex/values").VObject<{
482
+ questionId: import("convex/values").GenericId<"device_questions">;
483
+ question: string;
484
+ answer: any;
485
+ }, {
486
+ questionId: import("convex/values").VId<import("convex/values").GenericId<"device_questions">, "required">;
487
+ question: import("convex/values").VString<string, "required">;
488
+ answer: import("convex/values").VAny<any, "required", string>;
489
+ }, "required", "questionId" | "question" | "answer" | `answer.${string}`>, "optional">;
490
+ slaDeadline: import("convex/values").VFloat64<number | undefined, "optional">;
491
+ slaBreached: import("convex/values").VBoolean<boolean | undefined, "optional">;
492
+ slaWarningSent: import("convex/values").VBoolean<boolean | undefined, "optional">;
493
+ externalTicketId: import("convex/values").VString<string | undefined, "optional">;
494
+ externalTicketNumber: import("convex/values").VFloat64<number | undefined, "optional">;
495
+ importSource: import("convex/values").VString<string | undefined, "optional">;
496
+ legacyTicketId: import("convex/values").VFloat64<number | undefined, "optional">;
497
+ isExternal: import("convex/values").VBoolean<boolean | undefined, "optional">;
498
+ needsAssignment: import("convex/values").VBoolean<boolean | undefined, "optional">;
499
+ created_at: import("convex/values").VFloat64<number, "required">;
500
+ updated_at: import("convex/values").VFloat64<number, "required">;
501
+ closed_at: import("convex/values").VFloat64<number | undefined, "optional">;
502
+ }, "required", "description" | "clinicId" | "supplierId" | "status" | "notes" | "deviceId" | "priority" | "ticketNumber" | "title" | "created_by" | "createdByEmail" | "photos" | "photoStorageIds" | "customFields" | "deviceQuestionAnswers" | "slaDeadline" | "slaBreached" | "slaWarningSent" | "externalTicketId" | "externalTicketNumber" | "importSource" | "legacyTicketId" | "isExternal" | "needsAssignment" | "created_at" | "updated_at" | "closed_at" | `customFields.${string}`>, {
503
+ by_ticketNumber: ["ticketNumber", "_creationTime"];
504
+ by_deviceId: ["deviceId", "_creationTime"];
505
+ by_clinicId: ["clinicId", "_creationTime"];
506
+ by_supplierId: ["supplierId", "_creationTime"];
507
+ by_status: ["status", "_creationTime"];
508
+ by_status_created_at: ["status", "created_at", "_creationTime"];
509
+ by_priority: ["priority", "_creationTime"];
510
+ by_created_at: ["created_at", "_creationTime"];
511
+ by_slaDeadline: ["slaDeadline", "_creationTime"];
512
+ by_externalTicketId: ["externalTicketId", "_creationTime"];
513
+ by_importSource: ["importSource", "_creationTime"];
514
+ }, {}, {}>;
515
+ dashboard_stats_cache: import("convex/server").TableDefinition<import("convex/values").VObject<{
516
+ lastUpdated: number;
517
+ totalClinics: number;
518
+ totalSuppliers: number;
519
+ totalDevices: number;
520
+ deviceCountByStatus: any;
521
+ ticketStats: any;
522
+ totalTickets: number;
523
+ }, {
524
+ lastUpdated: import("convex/values").VFloat64<number, "required">;
525
+ totalClinics: import("convex/values").VFloat64<number, "required">;
526
+ totalSuppliers: import("convex/values").VFloat64<number, "required">;
527
+ totalDevices: import("convex/values").VFloat64<number, "required">;
528
+ deviceCountByStatus: import("convex/values").VAny<any, "required", string>;
529
+ ticketStats: import("convex/values").VAny<any, "required", string>;
530
+ totalTickets: import("convex/values").VFloat64<number, "required">;
531
+ }, "required", "lastUpdated" | "totalClinics" | "totalSuppliers" | "totalDevices" | "deviceCountByStatus" | "ticketStats" | "totalTickets" | `deviceCountByStatus.${string}` | `ticketStats.${string}`>, {}, {}, {}>;
532
+ push_subscriptions: import("convex/server").TableDefinition<import("convex/values").VObject<{
533
+ userId: string;
534
+ subscription: any;
535
+ }, {
536
+ userId: import("convex/values").VString<string, "required">;
537
+ subscription: import("convex/values").VAny<any, "required", string>;
538
+ }, "required", "userId" | "subscription" | `subscription.${string}`>, {
539
+ by_userId: ["userId", "_creationTime"];
540
+ }, {}, {}>;
541
+ ticket_triggers: import("convex/server").TableDefinition<import("convex/values").VObject<{
542
+ description?: string | undefined;
543
+ name: string;
544
+ createdAt: number;
545
+ isActive: boolean;
546
+ createdBy: string;
547
+ priority: number;
548
+ updatedAt: number;
549
+ conditions: {
550
+ categories?: string[] | undefined;
551
+ conditionLogic?: "AND" | "OR" | undefined;
552
+ conditionsList?: {
553
+ customFieldId?: import("convex/values").GenericId<"ticket_custom_fields"> | undefined;
554
+ customFieldOperator?: "equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty" | undefined;
555
+ type: "region" | "category" | "brand" | "model" | "status" | "priority" | "trigger_event" | "custom_field";
556
+ negated: boolean;
557
+ value: string | string[];
558
+ nextOperator: "AND" | "OR";
559
+ }[] | undefined;
560
+ regions?: string[] | undefined;
561
+ applyToAllRegions?: boolean | undefined;
562
+ brands?: string[] | undefined;
563
+ brandOperator?: "is" | "is_not" | undefined;
564
+ models?: string[] | undefined;
565
+ modelOperator?: "is" | "is_not" | undefined;
566
+ statuses?: string[] | undefined;
567
+ statusOperator?: "is" | "is_not" | undefined;
568
+ customFieldConditions?: {
569
+ value?: any;
570
+ fieldId: import("convex/values").GenericId<"ticket_custom_fields">;
571
+ operator: "equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty";
572
+ }[] | undefined;
573
+ sparePartOrderFilters?: {
574
+ statuses?: string[] | undefined;
575
+ supplierIds?: import("convex/values").GenericId<"suppliers">[] | undefined;
576
+ applyToAllSuppliers?: boolean | undefined;
577
+ } | undefined;
578
+ applyToAllCategories: boolean;
579
+ triggerOn: "create" | "status_change" | "update" | "sla_warning" | "sla_breach" | "spare_part_order_created" | "spare_part_order_status_change";
580
+ };
581
+ actions: {
582
+ changeStatus?: string | undefined;
583
+ assignSupplier?: import("convex/values").GenericId<"suppliers"> | undefined;
584
+ assignUser?: import("convex/values").GenericId<"user_profiles"> | undefined;
585
+ setSlaHours?: number | undefined;
586
+ applySlaRule?: boolean | undefined;
587
+ addNote?: string | undefined;
588
+ sendNotification?: {
589
+ recipients: ("admin" | "supplier" | {
590
+ supplierId?: import("convex/values").GenericId<"suppliers"> | undefined;
591
+ userId?: import("convex/values").GenericId<"user_profiles"> | undefined;
592
+ type: "admin" | "supplier" | "ticket_creator" | "ticket_assignee" | "specific_user" | "specific_supplier";
593
+ } | "clinic")[];
594
+ message: string;
595
+ } | undefined;
596
+ setPriority?: string | undefined;
597
+ requireAttachment?: boolean | undefined;
598
+ sparePartOrderActions?: {
599
+ changeOrderStatus?: string | undefined;
600
+ addOrderNote?: string | undefined;
601
+ sendOrderNotification?: {
602
+ recipients: ("admin" | "supplier" | "order_creator")[];
603
+ message: string;
604
+ } | undefined;
605
+ } | undefined;
606
+ };
607
+ }, {
608
+ name: import("convex/values").VString<string, "required">;
609
+ description: import("convex/values").VString<string | undefined, "optional">;
610
+ isActive: import("convex/values").VBoolean<boolean, "required">;
611
+ priority: import("convex/values").VFloat64<number, "required">;
612
+ conditions: import("convex/values").VObject<{
613
+ categories?: string[] | undefined;
614
+ conditionLogic?: "AND" | "OR" | undefined;
615
+ conditionsList?: {
616
+ customFieldId?: import("convex/values").GenericId<"ticket_custom_fields"> | undefined;
617
+ customFieldOperator?: "equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty" | undefined;
618
+ type: "region" | "category" | "brand" | "model" | "status" | "priority" | "trigger_event" | "custom_field";
619
+ negated: boolean;
620
+ value: string | string[];
621
+ nextOperator: "AND" | "OR";
622
+ }[] | undefined;
623
+ regions?: string[] | undefined;
624
+ applyToAllRegions?: boolean | undefined;
625
+ brands?: string[] | undefined;
626
+ brandOperator?: "is" | "is_not" | undefined;
627
+ models?: string[] | undefined;
628
+ modelOperator?: "is" | "is_not" | undefined;
629
+ statuses?: string[] | undefined;
630
+ statusOperator?: "is" | "is_not" | undefined;
631
+ customFieldConditions?: {
632
+ value?: any;
633
+ fieldId: import("convex/values").GenericId<"ticket_custom_fields">;
634
+ operator: "equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty";
635
+ }[] | undefined;
636
+ sparePartOrderFilters?: {
637
+ statuses?: string[] | undefined;
638
+ supplierIds?: import("convex/values").GenericId<"suppliers">[] | undefined;
639
+ applyToAllSuppliers?: boolean | undefined;
640
+ } | undefined;
641
+ applyToAllCategories: boolean;
642
+ triggerOn: "create" | "status_change" | "update" | "sla_warning" | "sla_breach" | "spare_part_order_created" | "spare_part_order_status_change";
643
+ }, {
644
+ conditionLogic: import("convex/values").VUnion<"AND" | "OR" | undefined, [import("convex/values").VLiteral<"AND", "required">, import("convex/values").VLiteral<"OR", "required">], "optional", never>;
645
+ conditionsList: import("convex/values").VArray<{
646
+ customFieldId?: import("convex/values").GenericId<"ticket_custom_fields"> | undefined;
647
+ customFieldOperator?: "equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty" | undefined;
648
+ type: "region" | "category" | "brand" | "model" | "status" | "priority" | "trigger_event" | "custom_field";
649
+ negated: boolean;
650
+ value: string | string[];
651
+ nextOperator: "AND" | "OR";
652
+ }[] | undefined, import("convex/values").VObject<{
653
+ customFieldId?: import("convex/values").GenericId<"ticket_custom_fields"> | undefined;
654
+ customFieldOperator?: "equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty" | undefined;
655
+ type: "region" | "category" | "brand" | "model" | "status" | "priority" | "trigger_event" | "custom_field";
656
+ negated: boolean;
657
+ value: string | string[];
658
+ nextOperator: "AND" | "OR";
659
+ }, {
660
+ type: import("convex/values").VUnion<"region" | "category" | "brand" | "model" | "status" | "priority" | "trigger_event" | "custom_field", [import("convex/values").VLiteral<"trigger_event", "required">, import("convex/values").VLiteral<"status", "required">, import("convex/values").VLiteral<"category", "required">, import("convex/values").VLiteral<"brand", "required">, import("convex/values").VLiteral<"model", "required">, import("convex/values").VLiteral<"region", "required">, import("convex/values").VLiteral<"priority", "required">, import("convex/values").VLiteral<"custom_field", "required">], "required", never>;
661
+ negated: import("convex/values").VBoolean<boolean, "required">;
662
+ value: import("convex/values").VUnion<string | string[], [import("convex/values").VString<string, "required">, import("convex/values").VArray<string[], import("convex/values").VString<string, "required">, "required">], "required", never>;
663
+ nextOperator: import("convex/values").VUnion<"AND" | "OR", [import("convex/values").VLiteral<"AND", "required">, import("convex/values").VLiteral<"OR", "required">], "required", never>;
664
+ customFieldId: import("convex/values").VId<import("convex/values").GenericId<"ticket_custom_fields"> | undefined, "optional">;
665
+ customFieldOperator: import("convex/values").VUnion<"equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty" | undefined, [import("convex/values").VLiteral<"equals", "required">, import("convex/values").VLiteral<"not_equals", "required">, import("convex/values").VLiteral<"contains", "required">, import("convex/values").VLiteral<"greater_than", "required">, import("convex/values").VLiteral<"less_than", "required">, import("convex/values").VLiteral<"is_empty", "required">, import("convex/values").VLiteral<"is_not_empty", "required">], "optional", never>;
666
+ }, "required", "type" | "negated" | "value" | "nextOperator" | "customFieldId" | "customFieldOperator">, "optional">;
667
+ categories: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
668
+ applyToAllCategories: import("convex/values").VBoolean<boolean, "required">;
669
+ regions: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
670
+ applyToAllRegions: import("convex/values").VBoolean<boolean | undefined, "optional">;
671
+ brands: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
672
+ brandOperator: import("convex/values").VUnion<"is" | "is_not" | undefined, [import("convex/values").VLiteral<"is", "required">, import("convex/values").VLiteral<"is_not", "required">], "optional", never>;
673
+ models: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
674
+ modelOperator: import("convex/values").VUnion<"is" | "is_not" | undefined, [import("convex/values").VLiteral<"is", "required">, import("convex/values").VLiteral<"is_not", "required">], "optional", never>;
675
+ statuses: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
676
+ statusOperator: import("convex/values").VUnion<"is" | "is_not" | undefined, [import("convex/values").VLiteral<"is", "required">, import("convex/values").VLiteral<"is_not", "required">], "optional", never>;
677
+ customFieldConditions: import("convex/values").VArray<{
678
+ value?: any;
679
+ fieldId: import("convex/values").GenericId<"ticket_custom_fields">;
680
+ operator: "equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty";
681
+ }[] | undefined, import("convex/values").VObject<{
682
+ value?: any;
683
+ fieldId: import("convex/values").GenericId<"ticket_custom_fields">;
684
+ operator: "equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty";
685
+ }, {
686
+ fieldId: import("convex/values").VId<import("convex/values").GenericId<"ticket_custom_fields">, "required">;
687
+ operator: import("convex/values").VUnion<"equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty", [import("convex/values").VLiteral<"equals", "required">, import("convex/values").VLiteral<"not_equals", "required">, import("convex/values").VLiteral<"contains", "required">, import("convex/values").VLiteral<"greater_than", "required">, import("convex/values").VLiteral<"less_than", "required">, import("convex/values").VLiteral<"is_empty", "required">, import("convex/values").VLiteral<"is_not_empty", "required">], "required", never>;
688
+ value: import("convex/values").VAny<any, "optional", string>;
689
+ }, "required", "value" | "fieldId" | "operator" | `value.${string}`>, "optional">;
690
+ triggerOn: import("convex/values").VUnion<"create" | "status_change" | "update" | "sla_warning" | "sla_breach" | "spare_part_order_created" | "spare_part_order_status_change", [import("convex/values").VLiteral<"create", "required">, import("convex/values").VLiteral<"status_change", "required">, import("convex/values").VLiteral<"update", "required">, import("convex/values").VLiteral<"sla_warning", "required">, import("convex/values").VLiteral<"sla_breach", "required">, import("convex/values").VLiteral<"spare_part_order_created", "required">, import("convex/values").VLiteral<"spare_part_order_status_change", "required">], "required", never>;
691
+ sparePartOrderFilters: import("convex/values").VObject<{
692
+ statuses?: string[] | undefined;
693
+ supplierIds?: import("convex/values").GenericId<"suppliers">[] | undefined;
694
+ applyToAllSuppliers?: boolean | undefined;
695
+ } | undefined, {
696
+ supplierIds: import("convex/values").VArray<import("convex/values").GenericId<"suppliers">[] | undefined, import("convex/values").VId<import("convex/values").GenericId<"suppliers">, "required">, "optional">;
697
+ applyToAllSuppliers: import("convex/values").VBoolean<boolean | undefined, "optional">;
698
+ statuses: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
699
+ }, "optional", "statuses" | "supplierIds" | "applyToAllSuppliers">;
700
+ }, "required", "categories" | "conditionLogic" | "conditionsList" | "applyToAllCategories" | "regions" | "applyToAllRegions" | "brands" | "brandOperator" | "models" | "modelOperator" | "statuses" | "statusOperator" | "customFieldConditions" | "triggerOn" | "sparePartOrderFilters" | "sparePartOrderFilters.statuses" | "sparePartOrderFilters.supplierIds" | "sparePartOrderFilters.applyToAllSuppliers">;
701
+ actions: import("convex/values").VObject<{
702
+ changeStatus?: string | undefined;
703
+ assignSupplier?: import("convex/values").GenericId<"suppliers"> | undefined;
704
+ assignUser?: import("convex/values").GenericId<"user_profiles"> | undefined;
705
+ setSlaHours?: number | undefined;
706
+ applySlaRule?: boolean | undefined;
707
+ addNote?: string | undefined;
708
+ sendNotification?: {
709
+ recipients: ("admin" | "supplier" | {
710
+ supplierId?: import("convex/values").GenericId<"suppliers"> | undefined;
711
+ userId?: import("convex/values").GenericId<"user_profiles"> | undefined;
712
+ type: "admin" | "supplier" | "ticket_creator" | "ticket_assignee" | "specific_user" | "specific_supplier";
713
+ } | "clinic")[];
714
+ message: string;
715
+ } | undefined;
716
+ setPriority?: string | undefined;
717
+ requireAttachment?: boolean | undefined;
718
+ sparePartOrderActions?: {
719
+ changeOrderStatus?: string | undefined;
720
+ addOrderNote?: string | undefined;
721
+ sendOrderNotification?: {
722
+ recipients: ("admin" | "supplier" | "order_creator")[];
723
+ message: string;
724
+ } | undefined;
725
+ } | undefined;
726
+ }, {
727
+ changeStatus: import("convex/values").VString<string | undefined, "optional">;
728
+ assignSupplier: import("convex/values").VId<import("convex/values").GenericId<"suppliers"> | undefined, "optional">;
729
+ assignUser: import("convex/values").VId<import("convex/values").GenericId<"user_profiles"> | undefined, "optional">;
730
+ setSlaHours: import("convex/values").VFloat64<number | undefined, "optional">;
731
+ applySlaRule: import("convex/values").VBoolean<boolean | undefined, "optional">;
732
+ addNote: import("convex/values").VString<string | undefined, "optional">;
733
+ sendNotification: import("convex/values").VObject<{
734
+ recipients: ("admin" | "supplier" | {
735
+ supplierId?: import("convex/values").GenericId<"suppliers"> | undefined;
736
+ userId?: import("convex/values").GenericId<"user_profiles"> | undefined;
737
+ type: "admin" | "supplier" | "ticket_creator" | "ticket_assignee" | "specific_user" | "specific_supplier";
738
+ } | "clinic")[];
739
+ message: string;
740
+ } | undefined, {
741
+ recipients: import("convex/values").VArray<("admin" | "supplier" | {
742
+ supplierId?: import("convex/values").GenericId<"suppliers"> | undefined;
743
+ userId?: import("convex/values").GenericId<"user_profiles"> | undefined;
744
+ type: "admin" | "supplier" | "ticket_creator" | "ticket_assignee" | "specific_user" | "specific_supplier";
745
+ } | "clinic")[], import("convex/values").VUnion<"admin" | "supplier" | {
746
+ supplierId?: import("convex/values").GenericId<"suppliers"> | undefined;
747
+ userId?: import("convex/values").GenericId<"user_profiles"> | undefined;
748
+ type: "admin" | "supplier" | "ticket_creator" | "ticket_assignee" | "specific_user" | "specific_supplier";
749
+ } | "clinic", [import("convex/values").VObject<{
750
+ supplierId?: import("convex/values").GenericId<"suppliers"> | undefined;
751
+ userId?: import("convex/values").GenericId<"user_profiles"> | undefined;
752
+ type: "admin" | "supplier" | "ticket_creator" | "ticket_assignee" | "specific_user" | "specific_supplier";
753
+ }, {
754
+ type: import("convex/values").VUnion<"admin" | "supplier" | "ticket_creator" | "ticket_assignee" | "specific_user" | "specific_supplier", [import("convex/values").VLiteral<"admin", "required">, import("convex/values").VLiteral<"supplier", "required">, import("convex/values").VLiteral<"ticket_creator", "required">, import("convex/values").VLiteral<"ticket_assignee", "required">, import("convex/values").VLiteral<"specific_user", "required">, import("convex/values").VLiteral<"specific_supplier", "required">], "required", never>;
755
+ userId: import("convex/values").VId<import("convex/values").GenericId<"user_profiles"> | undefined, "optional">;
756
+ supplierId: import("convex/values").VId<import("convex/values").GenericId<"suppliers"> | undefined, "optional">;
757
+ }, "required", "type" | "supplierId" | "userId">, import("convex/values").VLiteral<"admin", "required">, import("convex/values").VLiteral<"supplier", "required">, import("convex/values").VLiteral<"clinic", "required">], "required", "type" | "supplierId" | "userId">, "required">;
758
+ message: import("convex/values").VString<string, "required">;
759
+ }, "optional", "recipients" | "message">;
760
+ setPriority: import("convex/values").VString<string | undefined, "optional">;
761
+ requireAttachment: import("convex/values").VBoolean<boolean | undefined, "optional">;
762
+ sparePartOrderActions: import("convex/values").VObject<{
763
+ changeOrderStatus?: string | undefined;
764
+ addOrderNote?: string | undefined;
765
+ sendOrderNotification?: {
766
+ recipients: ("admin" | "supplier" | "order_creator")[];
767
+ message: string;
768
+ } | undefined;
769
+ } | undefined, {
770
+ changeOrderStatus: import("convex/values").VString<string | undefined, "optional">;
771
+ addOrderNote: import("convex/values").VString<string | undefined, "optional">;
772
+ sendOrderNotification: import("convex/values").VObject<{
773
+ recipients: ("admin" | "supplier" | "order_creator")[];
774
+ message: string;
775
+ } | undefined, {
776
+ recipients: import("convex/values").VArray<("admin" | "supplier" | "order_creator")[], import("convex/values").VUnion<"admin" | "supplier" | "order_creator", [import("convex/values").VLiteral<"admin", "required">, import("convex/values").VLiteral<"supplier", "required">, import("convex/values").VLiteral<"order_creator", "required">], "required", never>, "required">;
777
+ message: import("convex/values").VString<string, "required">;
778
+ }, "optional", "recipients" | "message">;
779
+ }, "optional", "changeOrderStatus" | "addOrderNote" | "sendOrderNotification" | "sendOrderNotification.recipients" | "sendOrderNotification.message">;
780
+ }, "required", "changeStatus" | "assignSupplier" | "assignUser" | "setSlaHours" | "applySlaRule" | "addNote" | "sendNotification" | "setPriority" | "requireAttachment" | "sparePartOrderActions" | "sendNotification.recipients" | "sendNotification.message" | "sparePartOrderActions.changeOrderStatus" | "sparePartOrderActions.addOrderNote" | "sparePartOrderActions.sendOrderNotification" | "sparePartOrderActions.sendOrderNotification.recipients" | "sparePartOrderActions.sendOrderNotification.message">;
781
+ createdAt: import("convex/values").VFloat64<number, "required">;
782
+ updatedAt: import("convex/values").VFloat64<number, "required">;
783
+ createdBy: import("convex/values").VString<string, "required">;
784
+ }, "required", "name" | "description" | "createdAt" | "isActive" | "createdBy" | "priority" | "updatedAt" | "conditions" | "actions" | "conditions.categories" | "conditions.conditionLogic" | "conditions.conditionsList" | "conditions.applyToAllCategories" | "conditions.regions" | "conditions.applyToAllRegions" | "conditions.brands" | "conditions.brandOperator" | "conditions.models" | "conditions.modelOperator" | "conditions.statuses" | "conditions.statusOperator" | "conditions.customFieldConditions" | "conditions.triggerOn" | "conditions.sparePartOrderFilters" | "conditions.sparePartOrderFilters.statuses" | "conditions.sparePartOrderFilters.supplierIds" | "conditions.sparePartOrderFilters.applyToAllSuppliers" | "actions.changeStatus" | "actions.assignSupplier" | "actions.assignUser" | "actions.setSlaHours" | "actions.applySlaRule" | "actions.addNote" | "actions.sendNotification" | "actions.setPriority" | "actions.requireAttachment" | "actions.sparePartOrderActions" | "actions.sendNotification.recipients" | "actions.sendNotification.message" | "actions.sparePartOrderActions.changeOrderStatus" | "actions.sparePartOrderActions.addOrderNote" | "actions.sparePartOrderActions.sendOrderNotification" | "actions.sparePartOrderActions.sendOrderNotification.recipients" | "actions.sparePartOrderActions.sendOrderNotification.message">, {
785
+ by_isActive: ["isActive", "_creationTime"];
786
+ by_priority: ["priority", "_creationTime"];
787
+ by_createdAt: ["createdAt", "_creationTime"];
788
+ }, {}, {}>;
789
+ ticket_macros: import("convex/server").TableDefinition<import("convex/values").VObject<{
790
+ description?: string | undefined;
791
+ name: string;
792
+ createdAt: number;
793
+ isActive: boolean;
794
+ createdBy: import("convex/values").GenericId<"user_profiles">;
795
+ updatedAt: number;
796
+ actions: {
797
+ changeStatus?: string | undefined;
798
+ assignSupplier?: import("convex/values").GenericId<"suppliers"> | undefined;
799
+ assignUser?: import("convex/values").GenericId<"user_profiles"> | undefined;
800
+ setSlaHours?: number | undefined;
801
+ applySlaRule?: boolean | undefined;
802
+ addNote?: string | undefined;
803
+ sendNotification?: {
804
+ recipients: ("admin" | "supplier" | "clinic" | {
805
+ supplierId?: import("convex/values").GenericId<"suppliers"> | undefined;
806
+ userId?: import("convex/values").GenericId<"user_profiles"> | undefined;
807
+ type: "admin" | "supplier" | "ticket_creator" | "ticket_assignee" | "specific_user" | "specific_supplier";
808
+ })[];
809
+ message: string;
810
+ } | undefined;
811
+ setPriority?: string | undefined;
812
+ };
813
+ isGlobal: boolean;
814
+ }, {
815
+ name: import("convex/values").VString<string, "required">;
816
+ description: import("convex/values").VString<string | undefined, "optional">;
817
+ isGlobal: import("convex/values").VBoolean<boolean, "required">;
818
+ isActive: import("convex/values").VBoolean<boolean, "required">;
819
+ actions: import("convex/values").VObject<{
820
+ changeStatus?: string | undefined;
821
+ assignSupplier?: import("convex/values").GenericId<"suppliers"> | undefined;
822
+ assignUser?: import("convex/values").GenericId<"user_profiles"> | undefined;
823
+ setSlaHours?: number | undefined;
824
+ applySlaRule?: boolean | undefined;
825
+ addNote?: string | undefined;
826
+ sendNotification?: {
827
+ recipients: ("admin" | "supplier" | "clinic" | {
828
+ supplierId?: import("convex/values").GenericId<"suppliers"> | undefined;
829
+ userId?: import("convex/values").GenericId<"user_profiles"> | undefined;
830
+ type: "admin" | "supplier" | "ticket_creator" | "ticket_assignee" | "specific_user" | "specific_supplier";
831
+ })[];
832
+ message: string;
833
+ } | undefined;
834
+ setPriority?: string | undefined;
835
+ }, {
836
+ changeStatus: import("convex/values").VString<string | undefined, "optional">;
837
+ assignSupplier: import("convex/values").VId<import("convex/values").GenericId<"suppliers"> | undefined, "optional">;
838
+ assignUser: import("convex/values").VId<import("convex/values").GenericId<"user_profiles"> | undefined, "optional">;
839
+ setSlaHours: import("convex/values").VFloat64<number | undefined, "optional">;
840
+ applySlaRule: import("convex/values").VBoolean<boolean | undefined, "optional">;
841
+ addNote: import("convex/values").VString<string | undefined, "optional">;
842
+ sendNotification: import("convex/values").VObject<{
843
+ recipients: ("admin" | "supplier" | "clinic" | {
844
+ supplierId?: import("convex/values").GenericId<"suppliers"> | undefined;
845
+ userId?: import("convex/values").GenericId<"user_profiles"> | undefined;
846
+ type: "admin" | "supplier" | "ticket_creator" | "ticket_assignee" | "specific_user" | "specific_supplier";
847
+ })[];
848
+ message: string;
849
+ } | undefined, {
850
+ recipients: import("convex/values").VArray<("admin" | "supplier" | "clinic" | {
851
+ supplierId?: import("convex/values").GenericId<"suppliers"> | undefined;
852
+ userId?: import("convex/values").GenericId<"user_profiles"> | undefined;
853
+ type: "admin" | "supplier" | "ticket_creator" | "ticket_assignee" | "specific_user" | "specific_supplier";
854
+ })[], import("convex/values").VUnion<"admin" | "supplier" | "clinic" | {
855
+ supplierId?: import("convex/values").GenericId<"suppliers"> | undefined;
856
+ userId?: import("convex/values").GenericId<"user_profiles"> | undefined;
857
+ type: "admin" | "supplier" | "ticket_creator" | "ticket_assignee" | "specific_user" | "specific_supplier";
858
+ }, [import("convex/values").VObject<{
859
+ supplierId?: import("convex/values").GenericId<"suppliers"> | undefined;
860
+ userId?: import("convex/values").GenericId<"user_profiles"> | undefined;
861
+ type: "admin" | "supplier" | "ticket_creator" | "ticket_assignee" | "specific_user" | "specific_supplier";
862
+ }, {
863
+ type: import("convex/values").VUnion<"admin" | "supplier" | "ticket_creator" | "ticket_assignee" | "specific_user" | "specific_supplier", [import("convex/values").VLiteral<"admin", "required">, import("convex/values").VLiteral<"supplier", "required">, import("convex/values").VLiteral<"ticket_creator", "required">, import("convex/values").VLiteral<"ticket_assignee", "required">, import("convex/values").VLiteral<"specific_user", "required">, import("convex/values").VLiteral<"specific_supplier", "required">], "required", never>;
864
+ userId: import("convex/values").VId<import("convex/values").GenericId<"user_profiles"> | undefined, "optional">;
865
+ supplierId: import("convex/values").VId<import("convex/values").GenericId<"suppliers"> | undefined, "optional">;
866
+ }, "required", "type" | "supplierId" | "userId">, import("convex/values").VLiteral<"admin", "required">, import("convex/values").VLiteral<"supplier", "required">, import("convex/values").VLiteral<"clinic", "required">], "required", "type" | "supplierId" | "userId">, "required">;
867
+ message: import("convex/values").VString<string, "required">;
868
+ }, "optional", "recipients" | "message">;
869
+ setPriority: import("convex/values").VString<string | undefined, "optional">;
870
+ }, "required", "changeStatus" | "assignSupplier" | "assignUser" | "setSlaHours" | "applySlaRule" | "addNote" | "sendNotification" | "setPriority" | "sendNotification.recipients" | "sendNotification.message">;
871
+ createdAt: import("convex/values").VFloat64<number, "required">;
872
+ updatedAt: import("convex/values").VFloat64<number, "required">;
873
+ createdBy: import("convex/values").VId<import("convex/values").GenericId<"user_profiles">, "required">;
874
+ }, "required", "name" | "description" | "createdAt" | "isActive" | "createdBy" | "updatedAt" | "actions" | "actions.changeStatus" | "actions.assignSupplier" | "actions.assignUser" | "actions.setSlaHours" | "actions.applySlaRule" | "actions.addNote" | "actions.sendNotification" | "actions.setPriority" | "actions.sendNotification.recipients" | "actions.sendNotification.message" | "isGlobal">, {
875
+ by_createdBy: ["createdBy", "_creationTime"];
876
+ by_isGlobal: ["isGlobal", "_creationTime"];
877
+ by_isActive: ["isActive", "_creationTime"];
878
+ }, {}, {}>;
879
+ device_questions: import("convex/server").TableDefinition<import("convex/values").VObject<{
880
+ options?: string[] | undefined;
881
+ placeholder?: string | undefined;
882
+ helpText?: string | undefined;
883
+ conditionalLogic?: {
884
+ conditions: {
885
+ questionId: import("convex/values").GenericId<"device_questions">;
886
+ value: any;
887
+ operator: "equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty" | "not_contains";
888
+ }[];
889
+ enabled: boolean;
890
+ logic: "AND" | "OR";
891
+ } | undefined;
892
+ createdAt: number;
893
+ isActive: boolean;
894
+ deviceId: import("convex/values").GenericId<"devices">;
895
+ createdBy: string;
896
+ updatedAt: number;
897
+ order: number;
898
+ isRequired: boolean;
899
+ question: string;
900
+ questionType: "number" | "text" | "textarea" | "select" | "multiselect" | "date" | "yes_no";
901
+ }, {
902
+ deviceId: import("convex/values").VId<import("convex/values").GenericId<"devices">, "required">;
903
+ question: import("convex/values").VString<string, "required">;
904
+ questionType: import("convex/values").VUnion<"number" | "text" | "textarea" | "select" | "multiselect" | "date" | "yes_no", [import("convex/values").VLiteral<"text", "required">, import("convex/values").VLiteral<"textarea", "required">, import("convex/values").VLiteral<"select", "required">, import("convex/values").VLiteral<"multiselect", "required">, import("convex/values").VLiteral<"yes_no", "required">, import("convex/values").VLiteral<"number", "required">, import("convex/values").VLiteral<"date", "required">], "required", never>;
905
+ options: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
906
+ isRequired: import("convex/values").VBoolean<boolean, "required">;
907
+ order: import("convex/values").VFloat64<number, "required">;
908
+ placeholder: import("convex/values").VString<string | undefined, "optional">;
909
+ helpText: import("convex/values").VString<string | undefined, "optional">;
910
+ conditionalLogic: import("convex/values").VObject<{
911
+ conditions: {
912
+ questionId: import("convex/values").GenericId<"device_questions">;
913
+ value: any;
914
+ operator: "equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty" | "not_contains";
915
+ }[];
916
+ enabled: boolean;
917
+ logic: "AND" | "OR";
918
+ } | undefined, {
919
+ enabled: import("convex/values").VBoolean<boolean, "required">;
920
+ conditions: import("convex/values").VArray<{
921
+ questionId: import("convex/values").GenericId<"device_questions">;
922
+ value: any;
923
+ operator: "equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty" | "not_contains";
924
+ }[], import("convex/values").VObject<{
925
+ questionId: import("convex/values").GenericId<"device_questions">;
926
+ value: any;
927
+ operator: "equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty" | "not_contains";
928
+ }, {
929
+ questionId: import("convex/values").VId<import("convex/values").GenericId<"device_questions">, "required">;
930
+ operator: import("convex/values").VUnion<"equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty" | "not_contains", [import("convex/values").VLiteral<"equals", "required">, import("convex/values").VLiteral<"not_equals", "required">, import("convex/values").VLiteral<"contains", "required">, import("convex/values").VLiteral<"not_contains", "required">, import("convex/values").VLiteral<"greater_than", "required">, import("convex/values").VLiteral<"less_than", "required">, import("convex/values").VLiteral<"is_empty", "required">, import("convex/values").VLiteral<"is_not_empty", "required">], "required", never>;
931
+ value: import("convex/values").VAny<any, "required", string>;
932
+ }, "required", "questionId" | "value" | "operator" | `value.${string}`>, "required">;
933
+ logic: import("convex/values").VUnion<"AND" | "OR", [import("convex/values").VLiteral<"AND", "required">, import("convex/values").VLiteral<"OR", "required">], "required", never>;
934
+ }, "optional", "conditions" | "enabled" | "logic">;
935
+ isActive: import("convex/values").VBoolean<boolean, "required">;
936
+ createdAt: import("convex/values").VFloat64<number, "required">;
937
+ updatedAt: import("convex/values").VFloat64<number, "required">;
938
+ createdBy: import("convex/values").VString<string, "required">;
939
+ }, "required", "createdAt" | "isActive" | "deviceId" | "createdBy" | "updatedAt" | "order" | "options" | "isRequired" | "placeholder" | "helpText" | "question" | "questionType" | "conditionalLogic" | "conditionalLogic.conditions" | "conditionalLogic.enabled" | "conditionalLogic.logic">, {
940
+ by_deviceId: ["deviceId", "_creationTime"];
941
+ by_deviceId_order: ["deviceId", "order", "_creationTime"];
942
+ by_isActive: ["isActive", "_creationTime"];
943
+ }, {}, {}>;
944
+ spare_parts: import("convex/server").TableDefinition<import("convex/values").VObject<{
945
+ type?: string | undefined;
946
+ brand?: string | undefined;
947
+ model?: string | undefined;
948
+ quantity?: number | undefined;
949
+ code?: string | undefined;
950
+ vendorId?: number | undefined;
951
+ dentalUnitQuantity?: number | undefined;
952
+ minQuantity?: number | undefined;
953
+ minimumStockAmount?: number | undefined;
954
+ lot?: string | undefined;
955
+ netPrice?: number | undefined;
956
+ deadlineDate?: string | undefined;
957
+ warehouseOrisId?: string | undefined;
958
+ warehouseCreatedAt?: string | undefined;
959
+ warehouseUpdatedAt?: string | undefined;
960
+ warehouseDeletedAt?: string | undefined;
961
+ articleInternalId?: number | undefined;
962
+ barcode?: string | undefined;
963
+ articleName?: string | undefined;
964
+ articleCategoryId?: number | undefined;
965
+ mu?: string | undefined;
966
+ sellingUnit?: string | undefined;
967
+ warehouseUnit?: string | undefined;
968
+ case?: string | undefined;
969
+ package?: string | undefined;
970
+ articleOrisId?: string | undefined;
971
+ articleDeadlineDate?: string | undefined;
972
+ alternativeArticleId?: number | undefined;
973
+ labelInfosLength?: number | undefined;
974
+ articleCreatedAt?: string | undefined;
975
+ articleUpdatedAt?: string | undefined;
976
+ articleDeletedAt?: string | undefined;
977
+ categoryId?: number | undefined;
978
+ categoryName?: string | undefined;
979
+ parentId?: number | undefined;
980
+ activeWarehouseCategory?: number | undefined;
981
+ categoryOrisId?: string | undefined;
982
+ categoryType?: string | undefined;
983
+ categoryCreatedAt?: string | undefined;
984
+ categoryUpdatedAt?: string | undefined;
985
+ name: string;
986
+ clinicId: number;
987
+ articleId: number;
988
+ warehouseItemId: number;
989
+ }, {
990
+ warehouseItemId: import("convex/values").VFloat64<number, "required">;
991
+ name: import("convex/values").VString<string, "required">;
992
+ quantity: import("convex/values").VFloat64<number | undefined, "optional">;
993
+ dentalUnitQuantity: import("convex/values").VFloat64<number | undefined, "optional">;
994
+ minQuantity: import("convex/values").VFloat64<number | undefined, "optional">;
995
+ minimumStockAmount: import("convex/values").VFloat64<number | undefined, "optional">;
996
+ lot: import("convex/values").VString<string | undefined, "optional">;
997
+ netPrice: import("convex/values").VFloat64<number | undefined, "optional">;
998
+ deadlineDate: import("convex/values").VString<string | undefined, "optional">;
999
+ warehouseOrisId: import("convex/values").VString<string | undefined, "optional">;
1000
+ articleId: import("convex/values").VFloat64<number, "required">;
1001
+ clinicId: import("convex/values").VFloat64<number, "required">;
1002
+ vendorId: import("convex/values").VFloat64<number | undefined, "optional">;
1003
+ warehouseCreatedAt: import("convex/values").VString<string | undefined, "optional">;
1004
+ warehouseUpdatedAt: import("convex/values").VString<string | undefined, "optional">;
1005
+ warehouseDeletedAt: import("convex/values").VString<string | undefined, "optional">;
1006
+ articleInternalId: import("convex/values").VFloat64<number | undefined, "optional">;
1007
+ code: import("convex/values").VString<string | undefined, "optional">;
1008
+ barcode: import("convex/values").VString<string | undefined, "optional">;
1009
+ articleName: import("convex/values").VString<string | undefined, "optional">;
1010
+ brand: import("convex/values").VString<string | undefined, "optional">;
1011
+ model: import("convex/values").VString<string | undefined, "optional">;
1012
+ articleCategoryId: import("convex/values").VFloat64<number | undefined, "optional">;
1013
+ mu: import("convex/values").VString<string | undefined, "optional">;
1014
+ sellingUnit: import("convex/values").VString<string | undefined, "optional">;
1015
+ warehouseUnit: import("convex/values").VString<string | undefined, "optional">;
1016
+ case: import("convex/values").VString<string | undefined, "optional">;
1017
+ package: import("convex/values").VString<string | undefined, "optional">;
1018
+ articleOrisId: import("convex/values").VString<string | undefined, "optional">;
1019
+ articleDeadlineDate: import("convex/values").VString<string | undefined, "optional">;
1020
+ alternativeArticleId: import("convex/values").VFloat64<number | undefined, "optional">;
1021
+ type: import("convex/values").VString<string | undefined, "optional">;
1022
+ labelInfosLength: import("convex/values").VFloat64<number | undefined, "optional">;
1023
+ articleCreatedAt: import("convex/values").VString<string | undefined, "optional">;
1024
+ articleUpdatedAt: import("convex/values").VString<string | undefined, "optional">;
1025
+ articleDeletedAt: import("convex/values").VString<string | undefined, "optional">;
1026
+ categoryId: import("convex/values").VFloat64<number | undefined, "optional">;
1027
+ categoryName: import("convex/values").VString<string | undefined, "optional">;
1028
+ parentId: import("convex/values").VFloat64<number | undefined, "optional">;
1029
+ activeWarehouseCategory: import("convex/values").VFloat64<number | undefined, "optional">;
1030
+ categoryOrisId: import("convex/values").VString<string | undefined, "optional">;
1031
+ categoryType: import("convex/values").VString<string | undefined, "optional">;
1032
+ categoryCreatedAt: import("convex/values").VString<string | undefined, "optional">;
1033
+ categoryUpdatedAt: import("convex/values").VString<string | undefined, "optional">;
1034
+ }, "required", "name" | "type" | "clinicId" | "brand" | "model" | "articleId" | "quantity" | "code" | "vendorId" | "warehouseItemId" | "dentalUnitQuantity" | "minQuantity" | "minimumStockAmount" | "lot" | "netPrice" | "deadlineDate" | "warehouseOrisId" | "warehouseCreatedAt" | "warehouseUpdatedAt" | "warehouseDeletedAt" | "articleInternalId" | "barcode" | "articleName" | "articleCategoryId" | "mu" | "sellingUnit" | "warehouseUnit" | "case" | "package" | "articleOrisId" | "articleDeadlineDate" | "alternativeArticleId" | "labelInfosLength" | "articleCreatedAt" | "articleUpdatedAt" | "articleDeletedAt" | "categoryId" | "categoryName" | "parentId" | "activeWarehouseCategory" | "categoryOrisId" | "categoryType" | "categoryCreatedAt" | "categoryUpdatedAt">, {
1035
+ by_clinicId: ["clinicId", "_creationTime"];
1036
+ by_articleId: ["articleId", "_creationTime"];
1037
+ by_warehouseItemId: ["warehouseItemId", "_creationTime"];
1038
+ by_vendorId: ["vendorId", "_creationTime"];
1039
+ by_articleCategoryId: ["articleCategoryId", "_creationTime"];
1040
+ }, {}, {}>;
1041
+ api_keys: import("convex/server").TableDefinition<import("convex/values").VObject<{
1042
+ expiresAt?: number | undefined;
1043
+ lastUsedAt?: number | undefined;
1044
+ notes?: string | undefined;
1045
+ createdByEmail?: string | undefined;
1046
+ usageCount?: number | undefined;
1047
+ revokedAt?: number | undefined;
1048
+ revokedBy?: string | undefined;
1049
+ name: string;
1050
+ createdAt: number;
1051
+ isActive: boolean;
1052
+ createdBy: string;
1053
+ keyHash: string;
1054
+ keyPrefix: string;
1055
+ permissions: string[];
1056
+ }, {
1057
+ name: import("convex/values").VString<string, "required">;
1058
+ keyHash: import("convex/values").VString<string, "required">;
1059
+ keyPrefix: import("convex/values").VString<string, "required">;
1060
+ permissions: import("convex/values").VArray<string[], import("convex/values").VString<string, "required">, "required">;
1061
+ createdBy: import("convex/values").VString<string, "required">;
1062
+ createdByEmail: import("convex/values").VString<string | undefined, "optional">;
1063
+ isActive: import("convex/values").VBoolean<boolean, "required">;
1064
+ lastUsedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1065
+ usageCount: import("convex/values").VFloat64<number | undefined, "optional">;
1066
+ expiresAt: import("convex/values").VFloat64<number | undefined, "optional">;
1067
+ revokedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1068
+ revokedBy: import("convex/values").VString<string | undefined, "optional">;
1069
+ notes: import("convex/values").VString<string | undefined, "optional">;
1070
+ createdAt: import("convex/values").VFloat64<number, "required">;
1071
+ }, "required", "name" | "createdAt" | "isActive" | "expiresAt" | "lastUsedAt" | "notes" | "createdBy" | "createdByEmail" | "keyHash" | "keyPrefix" | "permissions" | "usageCount" | "revokedAt" | "revokedBy">, {
1072
+ by_keyHash: ["keyHash", "_creationTime"];
1073
+ by_keyPrefix: ["keyPrefix", "_creationTime"];
1074
+ by_isActive: ["isActive", "_creationTime"];
1075
+ by_createdBy: ["createdBy", "_creationTime"];
1076
+ }, {}, {}>;
1077
+ ticket_comments: import("convex/server").TableDefinition<import("convex/values").VObject<{
1078
+ updatedAt?: number | undefined;
1079
+ authorName?: string | undefined;
1080
+ authorEmail?: string | undefined;
1081
+ authorRole?: string | undefined;
1082
+ isInternal?: boolean | undefined;
1083
+ isFromApi?: boolean | undefined;
1084
+ attachments?: import("convex/values").GenericId<"_storage">[] | undefined;
1085
+ mentions?: {
1086
+ name: string;
1087
+ email: string;
1088
+ userId: import("convex/values").GenericId<"user_profiles">;
1089
+ }[] | undefined;
1090
+ createdAt: number;
1091
+ taskId: import("convex/values").GenericId<"maintenance_tasks">;
1092
+ authorId: string;
1093
+ content: string;
1094
+ }, {
1095
+ taskId: import("convex/values").VId<import("convex/values").GenericId<"maintenance_tasks">, "required">;
1096
+ authorId: import("convex/values").VString<string, "required">;
1097
+ authorName: import("convex/values").VString<string | undefined, "optional">;
1098
+ authorEmail: import("convex/values").VString<string | undefined, "optional">;
1099
+ authorRole: import("convex/values").VString<string | undefined, "optional">;
1100
+ content: import("convex/values").VString<string, "required">;
1101
+ isInternal: import("convex/values").VBoolean<boolean | undefined, "optional">;
1102
+ isFromApi: import("convex/values").VBoolean<boolean | undefined, "optional">;
1103
+ attachments: import("convex/values").VArray<import("convex/values").GenericId<"_storage">[] | undefined, import("convex/values").VId<import("convex/values").GenericId<"_storage">, "required">, "optional">;
1104
+ mentions: import("convex/values").VArray<{
1105
+ name: string;
1106
+ email: string;
1107
+ userId: import("convex/values").GenericId<"user_profiles">;
1108
+ }[] | undefined, import("convex/values").VObject<{
1109
+ name: string;
1110
+ email: string;
1111
+ userId: import("convex/values").GenericId<"user_profiles">;
1112
+ }, {
1113
+ userId: import("convex/values").VId<import("convex/values").GenericId<"user_profiles">, "required">;
1114
+ name: import("convex/values").VString<string, "required">;
1115
+ email: import("convex/values").VString<string, "required">;
1116
+ }, "required", "name" | "email" | "userId">, "optional">;
1117
+ createdAt: import("convex/values").VFloat64<number, "required">;
1118
+ updatedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1119
+ }, "required", "createdAt" | "updatedAt" | "taskId" | "authorId" | "authorName" | "authorEmail" | "authorRole" | "content" | "isInternal" | "isFromApi" | "attachments" | "mentions">, {
1120
+ by_taskId: ["taskId", "_creationTime"];
1121
+ by_authorId: ["authorId", "_creationTime"];
1122
+ by_taskId_createdAt: ["taskId", "createdAt", "_creationTime"];
1123
+ }, {}, {}>;
1124
+ spare_part_orders: import("convex/server").TableDefinition<import("convex/values").VObject<{
1125
+ notes?: string | undefined;
1126
+ totalAmount?: number | undefined;
1127
+ requestedDeliveryDate?: number | undefined;
1128
+ actualDeliveryDate?: number | undefined;
1129
+ confirmedAt?: number | undefined;
1130
+ shippedAt?: number | undefined;
1131
+ deliveredAt?: number | undefined;
1132
+ createdAt: number;
1133
+ clinicId: number;
1134
+ supplierId: import("convex/values").GenericId<"suppliers">;
1135
+ status: "draft" | "pending" | "confirmed" | "shipped" | "delivered" | "cancelled";
1136
+ createdBy: string;
1137
+ updatedAt: number;
1138
+ orderNumber: string;
1139
+ items: {
1140
+ code?: string | undefined;
1141
+ notes?: string | undefined;
1142
+ unitPrice?: number | undefined;
1143
+ totalPrice?: number | undefined;
1144
+ articleId: number;
1145
+ quantity: number;
1146
+ articleName: string;
1147
+ sparePartId: import("convex/values").GenericId<"spare_parts">;
1148
+ }[];
1149
+ }, {
1150
+ orderNumber: import("convex/values").VString<string, "required">;
1151
+ clinicId: import("convex/values").VFloat64<number, "required">;
1152
+ supplierId: import("convex/values").VId<import("convex/values").GenericId<"suppliers">, "required">;
1153
+ status: import("convex/values").VUnion<"draft" | "pending" | "confirmed" | "shipped" | "delivered" | "cancelled", [import("convex/values").VLiteral<"draft", "required">, import("convex/values").VLiteral<"pending", "required">, import("convex/values").VLiteral<"confirmed", "required">, import("convex/values").VLiteral<"shipped", "required">, import("convex/values").VLiteral<"delivered", "required">, import("convex/values").VLiteral<"cancelled", "required">], "required", never>;
1154
+ items: import("convex/values").VArray<{
1155
+ code?: string | undefined;
1156
+ notes?: string | undefined;
1157
+ unitPrice?: number | undefined;
1158
+ totalPrice?: number | undefined;
1159
+ articleId: number;
1160
+ quantity: number;
1161
+ articleName: string;
1162
+ sparePartId: import("convex/values").GenericId<"spare_parts">;
1163
+ }[], import("convex/values").VObject<{
1164
+ code?: string | undefined;
1165
+ notes?: string | undefined;
1166
+ unitPrice?: number | undefined;
1167
+ totalPrice?: number | undefined;
1168
+ articleId: number;
1169
+ quantity: number;
1170
+ articleName: string;
1171
+ sparePartId: import("convex/values").GenericId<"spare_parts">;
1172
+ }, {
1173
+ sparePartId: import("convex/values").VId<import("convex/values").GenericId<"spare_parts">, "required">;
1174
+ articleId: import("convex/values").VFloat64<number, "required">;
1175
+ articleName: import("convex/values").VString<string, "required">;
1176
+ code: import("convex/values").VString<string | undefined, "optional">;
1177
+ quantity: import("convex/values").VFloat64<number, "required">;
1178
+ unitPrice: import("convex/values").VFloat64<number | undefined, "optional">;
1179
+ totalPrice: import("convex/values").VFloat64<number | undefined, "optional">;
1180
+ notes: import("convex/values").VString<string | undefined, "optional">;
1181
+ }, "required", "articleId" | "quantity" | "code" | "notes" | "articleName" | "sparePartId" | "unitPrice" | "totalPrice">, "required">;
1182
+ totalAmount: import("convex/values").VFloat64<number | undefined, "optional">;
1183
+ notes: import("convex/values").VString<string | undefined, "optional">;
1184
+ requestedDeliveryDate: import("convex/values").VFloat64<number | undefined, "optional">;
1185
+ actualDeliveryDate: import("convex/values").VFloat64<number | undefined, "optional">;
1186
+ createdBy: import("convex/values").VString<string, "required">;
1187
+ createdAt: import("convex/values").VFloat64<number, "required">;
1188
+ updatedAt: import("convex/values").VFloat64<number, "required">;
1189
+ confirmedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1190
+ shippedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1191
+ deliveredAt: import("convex/values").VFloat64<number | undefined, "optional">;
1192
+ }, "required", "createdAt" | "clinicId" | "supplierId" | "status" | "notes" | "createdBy" | "updatedAt" | "orderNumber" | "items" | "totalAmount" | "requestedDeliveryDate" | "actualDeliveryDate" | "confirmedAt" | "shippedAt" | "deliveredAt">, {
1193
+ by_clinicId: ["clinicId", "_creationTime"];
1194
+ by_supplierId: ["supplierId", "_creationTime"];
1195
+ by_status: ["status", "_creationTime"];
1196
+ by_orderNumber: ["orderNumber", "_creationTime"];
1197
+ by_createdAt: ["createdAt", "_creationTime"];
1198
+ }, {}, {}>;
1199
+ device_categories: import("convex/server").TableDefinition<import("convex/values").VObject<{
1200
+ type?: string | undefined;
1201
+ createdAt?: string | undefined;
1202
+ updatedAt?: string | undefined;
1203
+ parentId?: number | undefined;
1204
+ activeWarehouseCategory?: number | undefined;
1205
+ orisId?: string | undefined;
1206
+ note?: string | undefined;
1207
+ name: string;
1208
+ primoupId: number;
1209
+ importedAt: number;
1210
+ }, {
1211
+ primoupId: import("convex/values").VFloat64<number, "required">;
1212
+ name: import("convex/values").VString<string, "required">;
1213
+ parentId: import("convex/values").VFloat64<number | undefined, "optional">;
1214
+ activeWarehouseCategory: import("convex/values").VFloat64<number | undefined, "optional">;
1215
+ orisId: import("convex/values").VString<string | undefined, "optional">;
1216
+ type: import("convex/values").VString<string | undefined, "optional">;
1217
+ note: import("convex/values").VString<string | undefined, "optional">;
1218
+ createdAt: import("convex/values").VString<string | undefined, "optional">;
1219
+ updatedAt: import("convex/values").VString<string | undefined, "optional">;
1220
+ importedAt: import("convex/values").VFloat64<number, "required">;
1221
+ }, "required", "name" | "type" | "createdAt" | "primoupId" | "updatedAt" | "parentId" | "activeWarehouseCategory" | "orisId" | "note" | "importedAt">, {
1222
+ by_primoupId: ["primoupId", "_creationTime"];
1223
+ by_parentId: ["parentId", "_creationTime"];
1224
+ by_note: ["note", "_creationTime"];
1225
+ by_type: ["type", "_creationTime"];
1226
+ by_name: ["name", "_creationTime"];
1227
+ }, {}, {}>;
1228
+ email_logs: import("convex/server").TableDefinition<import("convex/values").VObject<{
1229
+ errorMessage?: string | undefined;
1230
+ ticketId?: import("convex/values").GenericId<"maintenance_tasks"> | undefined;
1231
+ resendId?: string | undefined;
1232
+ status: "pending" | "sent" | "failed";
1233
+ from: string;
1234
+ to: string | string[];
1235
+ subject: string;
1236
+ html: string;
1237
+ sentAt: number;
1238
+ }, {
1239
+ from: import("convex/values").VString<string, "required">;
1240
+ to: import("convex/values").VUnion<string | string[], [import("convex/values").VString<string, "required">, import("convex/values").VArray<string[], import("convex/values").VString<string, "required">, "required">], "required", never>;
1241
+ subject: import("convex/values").VString<string, "required">;
1242
+ html: import("convex/values").VString<string, "required">;
1243
+ ticketId: import("convex/values").VId<import("convex/values").GenericId<"maintenance_tasks"> | undefined, "optional">;
1244
+ status: import("convex/values").VUnion<"pending" | "sent" | "failed", [import("convex/values").VLiteral<"sent", "required">, import("convex/values").VLiteral<"failed", "required">, import("convex/values").VLiteral<"pending", "required">], "required", never>;
1245
+ resendId: import("convex/values").VString<string | undefined, "optional">;
1246
+ errorMessage: import("convex/values").VString<string | undefined, "optional">;
1247
+ sentAt: import("convex/values").VFloat64<number, "required">;
1248
+ }, "required", "errorMessage" | "status" | "ticketId" | "from" | "to" | "subject" | "html" | "resendId" | "sentAt">, {
1249
+ by_ticketId: ["ticketId", "_creationTime"];
1250
+ by_status: ["status", "_creationTime"];
1251
+ by_sentAt: ["sentAt", "_creationTime"];
1252
+ }, {}, {}>;
1253
+ ticket_history: import("convex/server").TableDefinition<import("convex/values").VObject<{
1254
+ notes?: string | undefined;
1255
+ oldValue?: string | undefined;
1256
+ newValue?: string | undefined;
1257
+ triggerName?: string | undefined;
1258
+ triggerId?: import("convex/values").GenericId<"ticket_triggers"> | undefined;
1259
+ oldSupplierId?: import("convex/values").GenericId<"suppliers"> | undefined;
1260
+ newSupplierId?: import("convex/values").GenericId<"suppliers"> | undefined;
1261
+ oldSupplierName?: string | undefined;
1262
+ newSupplierName?: string | undefined;
1263
+ performedBy?: string | undefined;
1264
+ performedByName?: string | undefined;
1265
+ performedByEmail?: string | undefined;
1266
+ timestamp: number;
1267
+ ticketId: import("convex/values").GenericId<"maintenance_tasks">;
1268
+ eventType: "status_change" | "sla_warning" | "sla_breach" | "created" | "assignee_change" | "priority_change" | "trigger_executed" | "comment_added" | "sla_set" | "updated";
1269
+ isSystemAction: boolean;
1270
+ }, {
1271
+ ticketId: import("convex/values").VId<import("convex/values").GenericId<"maintenance_tasks">, "required">;
1272
+ eventType: import("convex/values").VUnion<"status_change" | "sla_warning" | "sla_breach" | "created" | "assignee_change" | "priority_change" | "trigger_executed" | "comment_added" | "sla_set" | "updated", [import("convex/values").VLiteral<"created", "required">, import("convex/values").VLiteral<"status_change", "required">, import("convex/values").VLiteral<"assignee_change", "required">, import("convex/values").VLiteral<"priority_change", "required">, import("convex/values").VLiteral<"trigger_executed", "required">, import("convex/values").VLiteral<"comment_added", "required">, import("convex/values").VLiteral<"sla_set", "required">, import("convex/values").VLiteral<"sla_warning", "required">, import("convex/values").VLiteral<"sla_breach", "required">, import("convex/values").VLiteral<"updated", "required">], "required", never>;
1273
+ oldValue: import("convex/values").VString<string | undefined, "optional">;
1274
+ newValue: import("convex/values").VString<string | undefined, "optional">;
1275
+ triggerName: import("convex/values").VString<string | undefined, "optional">;
1276
+ triggerId: import("convex/values").VId<import("convex/values").GenericId<"ticket_triggers"> | undefined, "optional">;
1277
+ oldSupplierId: import("convex/values").VId<import("convex/values").GenericId<"suppliers"> | undefined, "optional">;
1278
+ newSupplierId: import("convex/values").VId<import("convex/values").GenericId<"suppliers"> | undefined, "optional">;
1279
+ oldSupplierName: import("convex/values").VString<string | undefined, "optional">;
1280
+ newSupplierName: import("convex/values").VString<string | undefined, "optional">;
1281
+ performedBy: import("convex/values").VString<string | undefined, "optional">;
1282
+ performedByName: import("convex/values").VString<string | undefined, "optional">;
1283
+ performedByEmail: import("convex/values").VString<string | undefined, "optional">;
1284
+ isSystemAction: import("convex/values").VBoolean<boolean, "required">;
1285
+ notes: import("convex/values").VString<string | undefined, "optional">;
1286
+ timestamp: import("convex/values").VFloat64<number, "required">;
1287
+ }, "required", "timestamp" | "notes" | "ticketId" | "eventType" | "oldValue" | "newValue" | "triggerName" | "triggerId" | "oldSupplierId" | "newSupplierId" | "oldSupplierName" | "newSupplierName" | "performedBy" | "performedByName" | "performedByEmail" | "isSystemAction">, {
1288
+ by_ticketId: ["ticketId", "_creationTime"];
1289
+ by_ticketId_timestamp: ["ticketId", "timestamp", "_creationTime"];
1290
+ by_eventType: ["eventType", "_creationTime"];
1291
+ by_timestamp: ["timestamp", "_creationTime"];
1292
+ }, {}, {}>;
1293
+ }, true>;
1294
+ export default _default;
1295
+ //# sourceMappingURL=schema.d.ts.map