@friggframework/core 2.0.0-next.43 → 2.0.0-next.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@friggframework/core",
3
3
  "prettier": "@friggframework/prettier-config",
4
- "version": "2.0.0-next.43",
4
+ "version": "2.0.0-next.44",
5
5
  "dependencies": {
6
6
  "@hapi/boom": "^10.0.1",
7
7
  "@prisma/client": "^6.16.3",
@@ -23,9 +23,9 @@
23
23
  "uuid": "^9.0.1"
24
24
  },
25
25
  "devDependencies": {
26
- "@friggframework/eslint-config": "2.0.0-next.43",
27
- "@friggframework/prettier-config": "2.0.0-next.43",
28
- "@friggframework/test": "2.0.0-next.43",
26
+ "@friggframework/eslint-config": "2.0.0-next.44",
27
+ "@friggframework/prettier-config": "2.0.0-next.44",
28
+ "@friggframework/test": "2.0.0-next.44",
29
29
  "@types/lodash": "4.17.15",
30
30
  "@typescript-eslint/eslint-plugin": "^8.0.0",
31
31
  "chai": "^4.3.6",
@@ -64,5 +64,5 @@
64
64
  "publishConfig": {
65
65
  "access": "public"
66
66
  },
67
- "gitHead": "2619db8a4e885887ad9071fe166cf0e8dee12d91"
67
+ "gitHead": "87c8479d50810d28eb7dc73c347e0117d872273a"
68
68
  }
@@ -46,6 +46,7 @@ model User {
46
46
  credentials Credential[]
47
47
  entities Entity[]
48
48
  integrations Integration[]
49
+ processes Process[]
49
50
 
50
51
  @@unique([email])
51
52
  @@unique([username])
@@ -172,6 +173,7 @@ model Integration {
172
173
  associations Association[]
173
174
  syncs Sync[]
174
175
  mappings IntegrationMapping[]
176
+ processes Process[]
175
177
 
176
178
  @@index([userId])
177
179
  @@index([status])
@@ -206,6 +208,48 @@ model IntegrationMapping {
206
208
  @@map("IntegrationMapping")
207
209
  }
208
210
 
211
+ // ============================================================================
212
+ // PROCESS MODELS
213
+ // ============================================================================
214
+
215
+ /// Generic Process Model - tracks any long-running operation
216
+ /// Used for: CRM syncs, data migrations, bulk operations, etc.
217
+ model Process {
218
+ id String @id @default(auto()) @map("_id") @db.ObjectId
219
+
220
+ // Core references
221
+ userId String @db.ObjectId
222
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
223
+ integrationId String @db.ObjectId
224
+ integration Integration @relation(fields: [integrationId], references: [id], onDelete: Cascade)
225
+
226
+ // Process identification
227
+ name String // e.g., "zoho-crm-contact-sync", "pipedrive-lead-sync"
228
+ type String // e.g., "CRM_SYNC", "DATA_MIGRATION", "BULK_OPERATION"
229
+
230
+ // State machine
231
+ state String // Current state (integration-defined states)
232
+
233
+ // Flexible storage
234
+ context Json @default("{}") // Process-specific data (pagination, metadata, etc.)
235
+ results Json @default("{}") // Process results and metrics
236
+
237
+ // Hierarchy support
238
+ childProcesses String[] @db.ObjectId
239
+ parentProcessId String? @db.ObjectId
240
+
241
+ // Timestamps
242
+ createdAt DateTime @default(now())
243
+ updatedAt DateTime @updatedAt
244
+
245
+ @@index([userId])
246
+ @@index([integrationId])
247
+ @@index([type])
248
+ @@index([state])
249
+ @@index([name])
250
+ @@map("Process")
251
+ }
252
+
209
253
  // ============================================================================
210
254
  // SYNC MODELS
211
255
  // ============================================================================
@@ -46,6 +46,7 @@ model User {
46
46
  credentials Credential[]
47
47
  entities Entity[]
48
48
  integrations Integration[]
49
+ processes Process[]
49
50
 
50
51
  @@unique([email])
51
52
  @@unique([username])
@@ -164,6 +165,7 @@ model Integration {
164
165
  associations Association[]
165
166
  syncs Sync[]
166
167
  mappings IntegrationMapping[]
168
+ processes Process[]
167
169
 
168
170
  @@index([userId])
169
171
  @@index([status])
@@ -281,6 +283,49 @@ enum AssociationType {
281
283
  MANY_TO_ONE
282
284
  }
283
285
 
286
+ // ============================================================================
287
+ // PROCESS MODELS
288
+ // ============================================================================
289
+
290
+ /// Generic Process Model - tracks any long-running operation
291
+ /// Used for: CRM syncs, data migrations, bulk operations, etc.
292
+ model Process {
293
+ id Int @id @default(autoincrement())
294
+
295
+ // Core references
296
+ userId Int
297
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
298
+ integrationId Int
299
+ integration Integration @relation(fields: [integrationId], references: [id], onDelete: Cascade)
300
+
301
+ // Process identification
302
+ name String // e.g., "zoho-crm-contact-sync", "pipedrive-lead-sync"
303
+ type String // e.g., "CRM_SYNC", "DATA_MIGRATION", "BULK_OPERATION"
304
+
305
+ // State machine
306
+ state String // Current state (integration-defined states)
307
+
308
+ // Flexible storage
309
+ context Json @default("{}") // Process-specific data (pagination, metadata, etc.)
310
+ results Json @default("{}") // Process results and metrics
311
+
312
+ // Hierarchy support - self-referential relation
313
+ parentProcessId Int?
314
+ parentProcess Process? @relation("ProcessHierarchy", fields: [parentProcessId], references: [id], onDelete: SetNull)
315
+ childProcesses Process[] @relation("ProcessHierarchy")
316
+
317
+ // Timestamps
318
+ createdAt DateTime @default(now())
319
+ updatedAt DateTime @updatedAt
320
+
321
+ @@index([userId])
322
+ @@index([integrationId])
323
+ @@index([type])
324
+ @@index([state])
325
+ @@index([name])
326
+ @@index([parentProcessId])
327
+ }
328
+
284
329
  // ============================================================================
285
330
  // UTILITY MODELS
286
331
  // ============================================================================