CREATE TABLE IF NOT EXISTS ai_conversation ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), user_id UUID NOT NULL, project_id UUID, scope VARCHAR(16) NOT NULL, title VARCHAR(512), model VARCHAR(128) NOT NULL DEFAULT 'gpt-4', model_config JSONB, status VARCHAR(32) NOT NULL DEFAULT 'active', root_message_id UUID, fork_count INT NOT NULL DEFAULT 0, is_shared BOOLEAN NOT NULL DEFAULT false, message_count INT NOT NULL DEFAULT 0, token_usage_total INT, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() ); CREATE INDEX IF NOT EXISTS idx_ai_conv_user_id ON ai_conversation (user_id); CREATE INDEX IF NOT EXISTS idx_ai_conv_project_id ON ai_conversation (project_id); CREATE INDEX IF NOT EXISTS idx_ai_conv_scope ON ai_conversation (scope); CREATE INDEX IF NOT EXISTS idx_ai_conv_user_created ON ai_conversation (user_id, created_at DESC); CREATE INDEX IF NOT EXISTS idx_ai_conv_project_created ON ai_conversation (project_id, created_at DESC);