-- Table for storing message metadata and embeddings
-- Embeddings stored as BLOB for proof-of-concept
-- For production with many contacts, consider using sqlite-vec extension
CREATE TABLE message_embeddings (
    id INTEGER PRIMARY KEY NOT NULL,
    contact TEXT NOT NULL,
    body TEXT NOT NULL,
    timestamp BIGINT NOT NULL,
    is_sent BOOLEAN NOT NULL,
    embedding BLOB NOT NULL,
    created_at BIGINT NOT NULL,
    model_version TEXT NOT NULL,
    -- Prevent duplicate embeddings for the same message
    UNIQUE(contact, body, timestamp)
);

-- Indexes for efficient queries
CREATE INDEX idx_message_embeddings_contact ON message_embeddings(contact);
CREATE INDEX idx_message_embeddings_timestamp ON message_embeddings(timestamp);
