136 lines
4.6 KiB
SQL
136 lines
4.6 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "super_admins" (
|
|
"id" TEXT NOT NULL,
|
|
"email" TEXT NOT NULL,
|
|
"password" TEXT NOT NULL,
|
|
"firstName" TEXT NOT NULL,
|
|
"lastName" TEXT NOT NULL,
|
|
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "super_admins_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "admin_refresh_tokens" (
|
|
"id" TEXT NOT NULL,
|
|
"token" TEXT NOT NULL,
|
|
"adminId" TEXT NOT NULL,
|
|
"expiresAt" TIMESTAMP(3) NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "admin_refresh_tokens_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "platform_audit_logs" (
|
|
"id" TEXT NOT NULL,
|
|
"adminId" TEXT NOT NULL,
|
|
"action" TEXT NOT NULL,
|
|
"target" TEXT,
|
|
"details" JSONB NOT NULL DEFAULT '{}',
|
|
"ipAddress" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "platform_audit_logs_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "support_tickets" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"tenantName" TEXT NOT NULL,
|
|
"tenantSlug" TEXT NOT NULL,
|
|
"createdById" TEXT NOT NULL,
|
|
"createdByName" TEXT NOT NULL,
|
|
"subject" TEXT NOT NULL,
|
|
"description" TEXT NOT NULL,
|
|
"category" TEXT NOT NULL DEFAULT 'general',
|
|
"priority" TEXT NOT NULL DEFAULT 'normal',
|
|
"status" TEXT NOT NULL DEFAULT 'open',
|
|
"assignedToId" TEXT,
|
|
"resolvedAt" TIMESTAMP(3),
|
|
"closedAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "support_tickets_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "support_ticket_comments" (
|
|
"id" TEXT NOT NULL,
|
|
"ticketId" TEXT NOT NULL,
|
|
"authorId" TEXT NOT NULL,
|
|
"authorName" TEXT NOT NULL,
|
|
"authorType" TEXT NOT NULL,
|
|
"content" TEXT NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "support_ticket_comments_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "super_admins_email_key" ON "super_admins"("email");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "admin_refresh_tokens_token_key" ON "admin_refresh_tokens"("token");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "admin_refresh_tokens_adminId_idx" ON "admin_refresh_tokens"("adminId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "admin_refresh_tokens_expiresAt_idx" ON "admin_refresh_tokens"("expiresAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "platform_audit_logs_adminId_idx" ON "platform_audit_logs"("adminId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "platform_audit_logs_action_idx" ON "platform_audit_logs"("action");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "platform_audit_logs_target_idx" ON "platform_audit_logs"("target");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "platform_audit_logs_createdAt_idx" ON "platform_audit_logs"("createdAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "support_tickets_tenantId_idx" ON "support_tickets"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "support_tickets_status_idx" ON "support_tickets"("status");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "support_tickets_category_idx" ON "support_tickets"("category");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "support_tickets_priority_idx" ON "support_tickets"("priority");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "support_tickets_assignedToId_idx" ON "support_tickets"("assignedToId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "support_tickets_createdAt_idx" ON "support_tickets"("createdAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "support_ticket_comments_ticketId_idx" ON "support_ticket_comments"("ticketId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "support_ticket_comments_authorId_idx" ON "support_ticket_comments"("authorId");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "admin_refresh_tokens" ADD CONSTRAINT "admin_refresh_tokens_adminId_fkey" FOREIGN KEY ("adminId") REFERENCES "super_admins"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "platform_audit_logs" ADD CONSTRAINT "platform_audit_logs_adminId_fkey" FOREIGN KEY ("adminId") REFERENCES "super_admins"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "support_tickets" ADD CONSTRAINT "support_tickets_assignedToId_fkey" FOREIGN KEY ("assignedToId") REFERENCES "super_admins"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "support_ticket_comments" ADD CONSTRAINT "support_ticket_comments_ticketId_fkey" FOREIGN KEY ("ticketId") REFERENCES "support_tickets"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "support_ticket_comments" ADD CONSTRAINT "support_ticket_comments_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "super_admins"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|