Comprehensive admin + user dashboards (production-ready)
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "content_flag" ADD COLUMN "severity" TEXT NOT NULL DEFAULT 'medium',
|
||||
ADD COLUMN "source" TEXT NOT NULL DEFAULT 'system';
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "worker_heartbeat" (
|
||||
"name" TEXT NOT NULL,
|
||||
"lastBeatAt" TIMESTAMP(3) NOT NULL,
|
||||
"queued" INTEGER,
|
||||
"running" INTEGER,
|
||||
"meta" JSONB,
|
||||
|
||||
CONSTRAINT "worker_heartbeat_pkey" PRIMARY KEY ("name")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "webhook_event" (
|
||||
"id" TEXT NOT NULL,
|
||||
"provider" TEXT NOT NULL,
|
||||
"eventId" TEXT NOT NULL,
|
||||
"type" TEXT NOT NULL,
|
||||
"status" TEXT NOT NULL DEFAULT 'processed',
|
||||
"error" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "webhook_event_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "webhook_event_eventId_key" ON "webhook_event"("eventId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "webhook_event_provider_createdAt_idx" ON "webhook_event"("provider", "createdAt");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "episode_createdAt_idx" ON "episode"("createdAt");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "subscription_status_idx" ON "subscription"("status");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "subscription_createdAt_idx" ON "subscription"("createdAt");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "user_createdAt_idx" ON "user"("createdAt");
|
||||
@@ -0,0 +1,25 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "episode" ADD COLUMN "shareId" TEXT,
|
||||
ADD COLUMN "sharedAt" TIMESTAMP(3);
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "user" ADD COLUMN "onboardedAt" TIMESTAMP(3);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "user_preferences" (
|
||||
"userId" TEXT NOT NULL,
|
||||
"defaultVoiceId" TEXT,
|
||||
"defaultLanguage" TEXT NOT NULL DEFAULT 'en',
|
||||
"emailOnEpisodeReady" BOOLEAN NOT NULL DEFAULT true,
|
||||
"productEmails" BOOLEAN NOT NULL DEFAULT true,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "user_preferences_pkey" PRIMARY KEY ("userId")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "episode_shareId_key" ON "episode"("shareId");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "user_preferences" ADD CONSTRAINT "user_preferences_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
Reference in New Issue
Block a user