migrations/0018_audio_messages.sql
Rama main · réplica de lectura del repositorio original.
-- Audio Messages: agent-generated TTS clips delivered into a conversation and
-- rendered inline like Svelte artifacts. Clips are owner-scoped, stored in R2,
-- and expire after 7 days. Expiry is enforced on read; physical deletion is a
-- best-effort delete plus an R2 lifecycle rule on the uploads bucket.
CREATE TABLE IF NOT EXISTS audio_messages (
id TEXT PRIMARY KEY,
owner_email TEXT NOT NULL,
session_id TEXT NOT NULL,
storage_key TEXT NOT NULL,
text TEXT NOT NULL,
voice TEXT NOT NULL,
mime TEXT NOT NULL,
bytes INTEGER NOT NULL,
created_at TEXT NOT NULL,
expires_at TEXT NOT NULL
);
CREATE INDEX IF NOT EXISTS idx_audio_messages_owner_created ON audio_messages(owner_email, created_at DESC);
CREATE INDEX IF NOT EXISTS idx_audio_messages_session ON audio_messages(session_id);
CREATE INDEX IF NOT EXISTS idx_audio_messages_expires ON audio_messages(expires_at);