package database // TargetType represents the type of delivery target type TargetType string const ( TargetTypeHTTP TargetType = "http" TargetTypeRetry TargetType = "retry" TargetTypeDatabase TargetType = "database" TargetTypeLog TargetType = "log" ) // Target represents a delivery target for a webhook type Target struct { BaseModel WebhookID string `gorm:"type:uuid;not null" json:"webhook_id"` Name string `gorm:"not null" json:"name"` Type TargetType `gorm:"not null" json:"type"` Active bool `gorm:"default:true" json:"active"` // Configuration fields (JSON stored based on type) Config string `gorm:"type:text" json:"config"` // JSON configuration // For retry targets MaxRetries int `json:"max_retries,omitempty"` MaxQueueSize int `json:"max_queue_size,omitempty"` // Relations Webhook Webhook `json:"webhook,omitempty"` Deliveries []Delivery `json:"deliveries,omitempty"` }