33 lines
968 B
Go
33 lines
968 B
Go
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 processor
|
|
type Target struct {
|
|
BaseModel
|
|
|
|
ProcessorID string `gorm:"type:uuid;not null" json:"processor_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
|
|
Processor Processor `json:"processor,omitempty"`
|
|
Deliveries []Delivery `json:"deliveries,omitempty"`
|
|
}
|