-- L17 Pakete (Basis/Profi) & Lotse-Chat-Plätze -- Additiv: Stufe + Platzanzahl + hartes Limit am Mandanten (Default PROFI = bestehende Mandanten unverändert), -- Tabelle lotse_chat_seats (Mandanten-RLS), Index für die Monatszählung der Chat-Nachrichten. -- CreateEnum CREATE TYPE "TenantTier" AS ENUM ('BASIS', 'PROFI'); -- AlterTable ALTER TABLE "tenants" ADD COLUMN "lotse_chat_hard_limit" BOOLEAN NOT NULL DEFAULT false, ADD COLUMN "lotse_chat_seats" INTEGER NOT NULL DEFAULT 0, ADD COLUMN "tier" "TenantTier" NOT NULL DEFAULT 'PROFI'; -- CreateTable CREATE TABLE "lotse_chat_seats" ( "id" TEXT NOT NULL, "tenant_id" TEXT NOT NULL, "user_id" TEXT NOT NULL, "assigned_by_id" TEXT, "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "lotse_chat_seats_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE INDEX "lotse_chat_seats_tenant_id_created_at_idx" ON "lotse_chat_seats"("tenant_id", "created_at"); -- CreateIndex CREATE UNIQUE INDEX "lotse_chat_seats_tenant_id_user_id_key" ON "lotse_chat_seats"("tenant_id", "user_id"); -- CreateIndex CREATE INDEX "lotse_messages_tenant_id_role_created_at_idx" ON "lotse_messages"("tenant_id", "role", "created_at"); -- Mandantentrennung (docs/craftvia/MIGRATIONS.md) SELECT enable_tenant_rls('lotse_chat_seats');