32 lines
983 B
Go
32 lines
983 B
Go
package database
|
|
|
|
// TargetType represents the type of delivery target
|
|
type TargetType string
|
|
|
|
const (
|
|
TargetTypeHTTP TargetType = "http"
|
|
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 HTTP targets (max_retries=0 means fire-and-forget, >0 enables retries with backoff)
|
|
MaxRetries int `json:"max_retries,omitempty"`
|
|
MaxQueueSize int `json:"max_queue_size,omitempty"`
|
|
|
|
// Relations
|
|
Webhook Webhook `json:"webhook,omitempty"`
|
|
Deliveries []Delivery `json:"deliveries,omitempty"`
|
|
}
|