Add automatic VoIP call summaries and sync progress checklist.

When a PBX webhook includes recordingUrl or transcript, queue STT and AI to create a call_result note; mark API, bulk SMS, WooCommerce, and VoIP as done and defer online payments.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-27 15:06:41 +03:30
co-authored by Cursor
parent c06c92b333
commit c5c903d4b4
13 changed files with 615 additions and 22 deletions
@@ -0,0 +1,12 @@
-- AlterTable
ALTER TABLE "VoipCallLog" ADD COLUMN "recordingUrl" TEXT;
ALTER TABLE "VoipCallLog" ADD COLUMN "transcript" TEXT;
ALTER TABLE "VoipCallLog" ADD COLUMN "summary" TEXT;
ALTER TABLE "VoipCallLog" ADD COLUMN "summaryStatus" TEXT NOT NULL DEFAULT 'none';
ALTER TABLE "VoipCallLog" ADD COLUMN "summaryNoteId" TEXT;
ALTER TABLE "VoipCallLog" ADD COLUMN "summaryError" TEXT;
ALTER TABLE "VoipCallLog" ADD COLUMN "summaryAttempts" INTEGER NOT NULL DEFAULT 0;
ALTER TABLE "VoipCallLog" ADD COLUMN "summaryNextAttemptAt" TIMESTAMP(3);
-- CreateIndex
CREATE INDEX "VoipCallLog_summaryStatus_summaryNextAttemptAt_idx" ON "VoipCallLog"("summaryStatus", "summaryNextAttemptAt");
+13
View File
@@ -1855,6 +1855,18 @@ model VoipCallLog {
startedAt DateTime @default(now())
endedAt DateTime?
rawPayload Json?
/// لینک فایل ضبط از سانترال
recordingUrl String?
/// متن خام (از وب‌هوک یا STT)
transcript String?
/// خلاصه فارسی تولیدشده
summary String?
/// none | pending | processing | done | failed | skipped
summaryStatus String @default("none")
summaryNoteId String?
summaryError String?
summaryAttempts Int @default(0)
summaryNextAttemptAt DateTime?
syncedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@ -1863,6 +1875,7 @@ model VoipCallLog {
@@index([organizationId, syncedAt])
@@index([personId])
@@index([activityId])
@@index([summaryStatus, summaryNextAttemptAt])
}
/// خدمت قابل رزرو (مثلاً مشاوره ۳۰ دقیقه‌ای)