-- AlterEnum
ALTER TYPE "AnalyticsActionType" ADD VALUE IF NOT EXISTS 'WHATSAPP';
ALTER TYPE "AnalyticsActionType" ADD VALUE IF NOT EXISTS 'VIBER';
ALTER TYPE "AnalyticsActionType" ADD VALUE IF NOT EXISTS 'FORM_INQUIRY';
ALTER TYPE "AnalyticsActionType" ADD VALUE IF NOT EXISTS 'FORM_QUOTE';
ALTER TYPE "AnalyticsActionType" ADD VALUE IF NOT EXISTS 'BOOKING';

-- CreateTable
CREATE TABLE IF NOT EXISTS "EntityAnalyticsEvent" (
    "id" TEXT NOT NULL,
    "entityType" "AnalyticsEntityType" NOT NULL,
    "entityId" TEXT NOT NULL,
    "action" "AnalyticsActionType" NOT NULL,
    "channel" TEXT,
    "visitorId" TEXT,
    "city" TEXT,
    "region" TEXT,
    "occurredAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
    "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,

    CONSTRAINT "EntityAnalyticsEvent_pkey" PRIMARY KEY ("id")
);

-- CreateIndex
CREATE INDEX IF NOT EXISTS "EntityAnalyticsEvent_entityType_entityId_occurredAt_idx" ON "EntityAnalyticsEvent"("entityType", "entityId", "occurredAt");

-- CreateIndex
CREATE INDEX IF NOT EXISTS "EntityAnalyticsEvent_action_occurredAt_idx" ON "EntityAnalyticsEvent"("action", "occurredAt");

-- CreateIndex
CREATE INDEX IF NOT EXISTS "EntityAnalyticsEvent_visitorId_occurredAt_idx" ON "EntityAnalyticsEvent"("visitorId", "occurredAt");
