migration.sql 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. -- CreateTable
  2. CREATE TABLE "ProcessedMessage" (
  3. "id" TEXT NOT NULL PRIMARY KEY,
  4. "source" TEXT NOT NULL,
  5. "messageId" TEXT NOT NULL,
  6. "conversationId" INTEGER NOT NULL,
  7. "status" TEXT NOT NULL,
  8. "reason" TEXT,
  9. "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  10. "updatedAt" DATETIME NOT NULL
  11. );
  12. -- CreateTable
  13. CREATE TABLE "Job" (
  14. "id" TEXT NOT NULL PRIMARY KEY,
  15. "type" TEXT NOT NULL,
  16. "status" TEXT NOT NULL DEFAULT 'queued',
  17. "attempts" INTEGER NOT NULL DEFAULT 0,
  18. "maxAttempts" INTEGER NOT NULL DEFAULT 3,
  19. "payloadJson" TEXT NOT NULL,
  20. "lastError" TEXT,
  21. "runAfter" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  22. "startedAt" DATETIME,
  23. "finishedAt" DATETIME,
  24. "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  25. "updatedAt" DATETIME NOT NULL
  26. );
  27. -- CreateTable
  28. CREATE TABLE "Ticket" (
  29. "id" TEXT NOT NULL PRIMARY KEY,
  30. "conversationId" INTEGER NOT NULL,
  31. "ticketNumber" TEXT NOT NULL,
  32. "reason" TEXT,
  33. "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
  34. );
  35. -- CreateTable
  36. CREATE TABLE "AuditEvent" (
  37. "id" TEXT NOT NULL PRIMARY KEY,
  38. "conversationId" INTEGER,
  39. "messageId" TEXT,
  40. "eventType" TEXT NOT NULL,
  41. "summary" TEXT NOT NULL,
  42. "metaJson" TEXT,
  43. "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
  44. );
  45. -- CreateIndex
  46. CREATE INDEX "ProcessedMessage_conversationId_idx" ON "ProcessedMessage"("conversationId");
  47. -- CreateIndex
  48. CREATE INDEX "ProcessedMessage_status_idx" ON "ProcessedMessage"("status");
  49. -- CreateIndex
  50. CREATE UNIQUE INDEX "ProcessedMessage_source_messageId_key" ON "ProcessedMessage"("source", "messageId");
  51. -- CreateIndex
  52. CREATE INDEX "Job_status_runAfter_idx" ON "Job"("status", "runAfter");
  53. -- CreateIndex
  54. CREATE UNIQUE INDEX "Ticket_conversationId_key" ON "Ticket"("conversationId");
  55. -- CreateIndex
  56. CREATE INDEX "AuditEvent_conversationId_idx" ON "AuditEvent"("conversationId");
  57. -- CreateIndex
  58. CREATE INDEX "AuditEvent_eventType_idx" ON "AuditEvent"("eventType");
  59. -- CreateIndex
  60. CREATE INDEX "AuditEvent_createdAt_idx" ON "AuditEvent"("createdAt");