create table if not exists project_activity ( id bigserial primary key, project uuid not null, repo uuid, actor uuid not null, event_type varchar(50) not null, event_id uuid, event_sub_id bigint, title varchar(500) not null, content text, metadata jsonb, is_private boolean default false not null, created_at timestamp with time zone not null ); create index if not exists idx_project_activity_project on project_activity (project); create index if not exists idx_project_activity_created_at on project_activity (created_at desc); create index if not exists idx_project_activity_event_type on project_activity (event_type);