package models import ( "time" "github.com/bluesky-social/indigo/atproto/syntax" ) // Webhook configuration and delivery types are view models: webhooks are now // owned and delivered by the repo's spindle, and the appview only renders them // (populated from spindle's XRPC responses). The wire payload structs live in // spindle/models. type WebhookEvent string const ( WebhookEventPush WebhookEvent = "push" WebhookEventRepoRenamed WebhookEvent = "repository:renamed" WebhookEventPullRequestCreated WebhookEvent = "pull_request:created" WebhookEventPullRequestResubmitted WebhookEvent = "pull_request:resubmitted" WebhookEventPullRequestMerged WebhookEvent = "pull_request:merged" WebhookEventPullRequestClosed WebhookEvent = "pull_request:closed" WebhookEventPullRequestReopened WebhookEvent = "pull_request:reopened" ) type Webhook struct { Id int64 RepoDid syntax.DID Url string Active bool Events []string CreatedAt time.Time UpdatedAt time.Time } type WebhookDelivery struct { Id int64 WebhookId int64 Event string DeliveryId string // UUID for tracking Url string RequestBody string ResponseCode int ResponseBody string Success bool CreatedAt time.Time }