@varaos/db 1.4.7 → 1.5.1

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@varaos/db",
3
- "version": "1.4.7",
3
+ "version": "1.5.1",
4
4
  "private": false,
5
5
  "main": "index.js",
6
6
  "files": [
@@ -0,0 +1,37 @@
1
+ -- CreateEnum
2
+ CREATE TYPE "public"."FeedbackType" AS ENUM ('bug_report', 'feature_request', 'general');
3
+
4
+ -- CreateEnum
5
+ CREATE TYPE "public"."FeedbackStatus" AS ENUM ('open', 'in_review', 'resolved', 'closed', 'duplicate');
6
+
7
+ -- CreateTable
8
+ CREATE TABLE "feedback" (
9
+ "id" TEXT NOT NULL,
10
+ "userId" TEXT,
11
+ "type" "public"."FeedbackType" NOT NULL,
12
+ "status" "public"."FeedbackStatus" NOT NULL DEFAULT 'open',
13
+ "title" TEXT NOT NULL,
14
+ "description" TEXT NOT NULL,
15
+ "pageUrl" TEXT,
16
+ "userAgent" TEXT,
17
+ "priority" INTEGER,
18
+ "adminNotes" TEXT,
19
+ "resolvedAt" TIMESTAMP(3),
20
+ "metadata" JSONB,
21
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
22
+ "updatedAt" TIMESTAMP(3) NOT NULL,
23
+
24
+ CONSTRAINT "feedback_pkey" PRIMARY KEY ("id")
25
+ );
26
+
27
+ -- CreateIndex
28
+ CREATE INDEX "feedback_type_status_idx" ON "feedback"("type", "status");
29
+
30
+ -- CreateIndex
31
+ CREATE INDEX "feedback_userId_idx" ON "feedback"("userId");
32
+
33
+ -- CreateIndex
34
+ CREATE INDEX "feedback_createdAt_idx" ON "feedback"("createdAt");
35
+
36
+ -- AddForeignKey
37
+ ALTER TABLE "feedback" ADD CONSTRAINT "feedback_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
@@ -0,0 +1,37 @@
1
+ -- AlterTable: Add currentVersion to WorkflowTemplate
2
+ ALTER TABLE "WorkflowTemplate" ADD COLUMN "currentVersion" INTEGER NOT NULL DEFAULT 1;
3
+
4
+ -- CreateTable: WorkflowTemplateVersion
5
+ CREATE TABLE "WorkflowTemplateVersion" (
6
+ "id" TEXT NOT NULL,
7
+ "templateId" TEXT NOT NULL,
8
+ "version" INTEGER NOT NULL,
9
+ "name" TEXT NOT NULL,
10
+ "description" TEXT,
11
+ "category" TEXT,
12
+ "recommended" BOOLEAN NOT NULL DEFAULT false,
13
+ "iconUrl" TEXT,
14
+ "estimatedSetupTime" INTEGER,
15
+ "spec" JSONB,
16
+ "triggerType" "public"."TriggerType",
17
+ "triggerConfig" JSONB,
18
+ "requiredIntegrations" TEXT[] DEFAULT ARRAY[]::TEXT[],
19
+ "requiredInputs" JSONB,
20
+ "setupTokenCost" INTEGER NOT NULL DEFAULT 0,
21
+ "runTokenCost" INTEGER NOT NULL DEFAULT 10,
22
+ "steps" JSONB NOT NULL,
23
+ "changeNote" TEXT,
24
+ "createdBy" TEXT,
25
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
26
+
27
+ CONSTRAINT "WorkflowTemplateVersion_pkey" PRIMARY KEY ("id")
28
+ );
29
+
30
+ -- CreateIndex: unique constraint on (templateId, version)
31
+ CREATE UNIQUE INDEX "WorkflowTemplateVersion_templateId_version_key" ON "WorkflowTemplateVersion"("templateId", "version");
32
+
33
+ -- CreateIndex: index on templateId for fast lookups
34
+ CREATE INDEX "WorkflowTemplateVersion_templateId_idx" ON "WorkflowTemplateVersion"("templateId");
35
+
36
+ -- AddForeignKey: link to WorkflowTemplate with cascade delete
37
+ ALTER TABLE "WorkflowTemplateVersion" ADD CONSTRAINT "WorkflowTemplateVersion_templateId_fkey" FOREIGN KEY ("templateId") REFERENCES "WorkflowTemplate"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -246,6 +246,20 @@ enum CreditPurchaseStatus {
246
246
  partially_refunded
247
247
  }
248
248
 
249
+ enum FeedbackType {
250
+ bug_report
251
+ feature_request
252
+ general
253
+ }
254
+
255
+ enum FeedbackStatus {
256
+ open
257
+ in_review
258
+ resolved
259
+ closed
260
+ duplicate
261
+ }
262
+
249
263
  /// ─────────────────────────────────────────────────────────────
250
264
  /// ENUMS FOR MEMORY & RAG SYSTEM
251
265
  /// ─────────────────────────────────────────────────────────────
@@ -368,6 +382,7 @@ model User {
368
382
  documents Document[]
369
383
 
370
384
  toolRequests ToolRequest[]
385
+ feedbacks Feedback[]
371
386
 
372
387
  /// Admin panel relations
373
388
  adminSessions AdminSession[]
@@ -1190,11 +1205,43 @@ model WorkflowTemplate {
1190
1205
  setupTokenCost Int @default(0) // Tokens deducted when copying template
1191
1206
  runTokenCost Int @default(10) // Expected tokens per run or per step
1192
1207
 
1208
+ /// Current version number (auto-incremented on each update)
1209
+ currentVersion Int @default(1)
1210
+
1193
1211
  createdAt DateTime @default(now())
1194
1212
  updatedAt DateTime @updatedAt
1195
1213
 
1196
- steps WorkflowStepTemplate[]
1214
+ steps WorkflowStepTemplate[]
1197
1215
  workflows Workflow[]
1216
+ versions WorkflowTemplateVersion[]
1217
+ }
1218
+
1219
+ model WorkflowTemplateVersion {
1220
+ id String @id @default(uuid())
1221
+ templateId String
1222
+ version Int
1223
+ name String
1224
+ description String?
1225
+ category String?
1226
+ recommended Boolean @default(false)
1227
+ iconUrl String?
1228
+ estimatedSetupTime Int?
1229
+ spec Json?
1230
+ triggerType TriggerType?
1231
+ triggerConfig Json?
1232
+ requiredIntegrations String[] @default([])
1233
+ requiredInputs Json?
1234
+ setupTokenCost Int @default(0)
1235
+ runTokenCost Int @default(10)
1236
+ steps Json // snapshot of WorkflowStepTemplate[] at this version
1237
+ changeNote String?
1238
+ createdBy String? // admin user email
1239
+ createdAt DateTime @default(now())
1240
+
1241
+ template WorkflowTemplate @relation(fields: [templateId], references: [id], onDelete: Cascade)
1242
+
1243
+ @@unique([templateId, version])
1244
+ @@index([templateId])
1198
1245
  }
1199
1246
 
1200
1247
  model WorkflowStepTemplate {
@@ -2128,4 +2175,40 @@ model ImpersonationSession {
2128
2175
 
2129
2176
  @@index([actorId])
2130
2177
  @@index([targetId])
2178
+ }
2179
+
2180
+ /// ─────────────────────────────────────────────────────────────
2181
+ /// FEEDBACK (Bug Reports & Feature Requests)
2182
+ /// ─────────────────────────────────────────────────────────────
2183
+
2184
+ model Feedback {
2185
+ id String @id @default(uuid())
2186
+ userId String? // nullable — allows anonymous submissions
2187
+
2188
+ type FeedbackType
2189
+ status FeedbackStatus @default(open)
2190
+
2191
+ title String
2192
+ description String @db.Text
2193
+
2194
+ /// Captured automatically on submission
2195
+ pageUrl String?
2196
+ userAgent String?
2197
+
2198
+ /// Admin-side fields
2199
+ priority Int? // 1-5
2200
+ adminNotes String? @db.Text
2201
+ resolvedAt DateTime?
2202
+
2203
+ metadata Json?
2204
+
2205
+ createdAt DateTime @default(now())
2206
+ updatedAt DateTime @updatedAt
2207
+
2208
+ user User? @relation(fields: [userId], references: [id], onDelete: SetNull)
2209
+
2210
+ @@index([type, status])
2211
+ @@index([userId])
2212
+ @@index([createdAt])
2213
+ @@map("feedback")
2131
2214
  }