-- Migration 011: Create talents table -- Stores global talent profiles (Actors, Real-world identities). -- Create extension for vector if not exists (usually in 009 or similar) CREATE EXTENSION IF NOT EXISTS vector; CREATE TABLE IF NOT EXISTS talents ( id SERIAL PRIMARY KEY, name VARCHAR(255) NOT NULL UNIQUE, embedding VECTOR(768), -- Face feature vector metadata JSONB DEFAULT '{}', created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP ); -- Ensure identity_bindings references talents if needed -- Current structure is generic: talent_id (bigint), identity_id (integer - likely person_id?), etc. -- We will use talent_id to store the ID of the talent, and identity_id to store the ID of the person in person_identities (or we use uuid/identity_value). -- Let's check current identity_bindings usage. -- The columns are: talent_id, identity_id, uuid, identity_type, identity_value, binding_type, binding_value. -- We will use: -- talent_id: ID from talents table. -- identity_id: ID of the row in person_identities (if we can map it) OR we rely on identity_value = person_id. -- identity_type: 'person_id' -- identity_value: 'Person_0' -- binding_type: 'named' -- Add index for faster lookups CREATE INDEX IF NOT EXISTS idx_identity_bindings_talent_id ON identity_bindings(talent_id); CREATE INDEX IF NOT EXISTS idx_identity_bindings_identity ON identity_bindings(identity_type, identity_value);