-- CreateTable CREATE TABLE "chat_sessions" ( "id" BIGSERIAL NOT NULL, "user_id" BIGINT NOT NULL, "title" VARCHAR(200), "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMP(3) NOT NULL, CONSTRAINT "chat_sessions_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "chat_messages" ( "id" BIGSERIAL NOT NULL, "session_id" BIGINT NOT NULL, "role" VARCHAR(20) NOT NULL, "content" TEXT NOT NULL, "token_count" INTEGER NOT NULL DEFAULT 0, "provider" VARCHAR(64), "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "chat_messages_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE INDEX "chat_sessions_user_id_idx" ON "chat_sessions"("user_id"); -- CreateIndex CREATE INDEX "chat_messages_session_id_idx" ON "chat_messages"("session_id"); -- AddForeignKey ALTER TABLE "chat_sessions" ADD CONSTRAINT "chat_sessions_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "chat_messages" ADD CONSTRAINT "chat_messages_session_id_fkey" FOREIGN KEY ("session_id") REFERENCES "chat_sessions"("id") ON DELETE CASCADE ON UPDATE CASCADE;