nxtgauge-backend-rust/crates/db/migrations/20260608000000_ai_conversations.up.sql

28 lines
1.2 KiB
MySQL
Raw Normal View History

-- AI Conversations: persistent log of "Ask Ash" chat interactions
-- Stores per-message context (persona, pillar, intent) and the model's reply.
-- Used by the /api/ai/history endpoint to show recent chats to the user.
BEGIN;
CREATE TABLE IF NOT EXISTS ai_conversations (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
persona VARCHAR(32), -- companies | job_seekers | customers | professionals
pillar VARCHAR(32), -- create | complete | discover | improve
query TEXT NOT NULL,
response TEXT NOT NULL,
intent VARCHAR(64), -- detected intent (e.g. help_search, ticket_creation)
confidence REAL, -- intent confidence in [0, 1]
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
-- Hot path: "last 10 conversations for user X"
CREATE INDEX IF NOT EXISTS idx_ai_conversations_user_id_created_at
ON ai_conversations (user_id, created_at DESC);
-- Optional grouping by conversation thread (frontend may pass a thread id).
CREATE INDEX IF NOT EXISTS idx_ai_conversations_user_pillar
ON ai_conversations (user_id, pillar, created_at DESC);
COMMIT;