create table if not exists projects ( id bigserial primary key, guid uuid not null default gen_random_uuid(), name text not null unique, description text, created_at timestamptz default now(), last_active_at timestamptz default now(), constraint projects_guid_unique unique (guid) ); alter table thoughts add column if not exists project_id uuid references projects(guid); alter table thoughts add column if not exists archived_at timestamptz; create index if not exists thoughts_project_id_idx on thoughts (project_id); create index if not exists thoughts_archived_at_idx on thoughts (archived_at);