···568 unique (from_at, to_at)
569 );
5700000000000000000000000000000571 create table if not exists migrations (
572 id integer primary key autoincrement,
573 name text unique
···578 create index if not exists idx_notifications_recipient_read on notifications(recipient_did, read);
579 create index if not exists idx_references_from_at on reference_links(from_at);
580 create index if not exists idx_references_to_at on reference_links(to_at);
00581 `)
582 if err != nil {
583 return nil, err
···568 unique (from_at, to_at)
569 );
570571+ create table if not exists webhooks (
572+ id integer primary key autoincrement,
573+ repo_at text not null,
574+ url text not null,
575+ secret text,
576+ active integer not null default 1,
577+ events text not null, -- comma-separated list of events
578+ created_at text not null default (strftime('%Y-%m-%dT%H:%M:%SZ', 'now')),
579+ updated_at text not null default (strftime('%Y-%m-%dT%H:%M:%SZ', 'now')),
580+581+ foreign key (repo_at) references repos(at_uri) on delete cascade
582+ );
583+584+ create table if not exists webhook_deliveries (
585+ id integer primary key autoincrement,
586+ webhook_id integer not null,
587+ event text not null,
588+ delivery_id text not null,
589+ url text not null,
590+ request_body text not null,
591+ response_code integer,
592+ response_body text,
593+ success integer not null default 0,
594+ created_at text not null default (strftime('%Y-%m-%dT%H:%M:%SZ', 'now')),
595+596+ foreign key (webhook_id) references webhooks(id) on delete cascade
597+ );
598+599 create table if not exists migrations (
600 id integer primary key autoincrement,
601 name text unique
···606 create index if not exists idx_notifications_recipient_read on notifications(recipient_did, read);
607 create index if not exists idx_references_from_at on reference_links(from_at);
608 create index if not exists idx_references_to_at on reference_links(to_at);
609+ create index if not exists idx_webhooks_repo_at on webhooks(repo_at);
610+ create index if not exists idx_webhook_deliveries_webhook_id on webhook_deliveries(webhook_id);
611 `)
612 if err != nil {
613 return nil, err