Files
triqura-ecd/supabase/migrations/20251126_add_speech_usage_events.sql
2025-11-25 13:37:00 +01:00

31 lines
1.1 KiB
SQL

-- ================================================
-- Speech Usage Telemetry Table
-- Created: 2025-11-26
-- Epic: Performance ROI - Speech telemetry
-- ================================================
CREATE TABLE IF NOT EXISTS speech_usage_events (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL REFERENCES auth.users(id) ON DELETE CASCADE,
patient_id TEXT,
intake_id TEXT,
report_id TEXT,
action TEXT NOT NULL CHECK (action IN ('start', 'stop', 'final')),
context TEXT NOT NULL,
metadata JSONB NOT NULL DEFAULT '{}'::jsonb,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX IF NOT EXISTS idx_speech_usage_events_created ON speech_usage_events(created_at DESC);
CREATE INDEX IF NOT EXISTS idx_speech_usage_events_context ON speech_usage_events(context);
ALTER TABLE speech_usage_events ENABLE ROW LEVEL SECURITY;
CREATE POLICY "Allow insert for authenticated users" ON speech_usage_events
FOR INSERT
WITH CHECK (auth.uid() = user_id);
CREATE POLICY "Allow select own telemetry" ON speech_usage_events
FOR SELECT
USING (auth.uid() = user_id);