create table if not exists thoughts ( id bigserial primary key, guid uuid not null default gen_random_uuid(), content text not null, embedding vector(1536), metadata jsonb default '{}'::jsonb, created_at timestamptz default now(), updated_at timestamptz default now(), constraint thoughts_guid_unique unique (guid) ); create index if not exists thoughts_embedding_hnsw_idx on thoughts using hnsw (embedding vector_cosine_ops); create index if not exists thoughts_metadata_gin_idx on thoughts using gin (metadata); create index if not exists thoughts_created_at_idx on thoughts (created_at desc);