38 lines
810 B
Go
38 lines
810 B
Go
package model
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/tech/sendico/pkg/db/storable"
|
|
"go.mongodb.org/mongo-driver/v2/bson"
|
|
)
|
|
|
|
// TaskStatus tracks delivery task lifecycle.
|
|
type TaskStatus string
|
|
|
|
const (
|
|
TaskStatusPending TaskStatus = "PENDING"
|
|
TaskStatusRetry TaskStatus = "RETRY"
|
|
TaskStatusDelivered TaskStatus = "DELIVERED"
|
|
TaskStatusFailed TaskStatus = "FAILED"
|
|
)
|
|
|
|
// Task is one callback delivery job.
|
|
type Task struct {
|
|
storable.Base
|
|
EventID string
|
|
EndpointRef bson.ObjectID
|
|
EndpointURL string
|
|
SigningMode string
|
|
SecretRef string
|
|
Headers map[string]string
|
|
Payload []byte
|
|
Attempt int
|
|
MaxAttempts int
|
|
MinDelay time.Duration
|
|
MaxDelay time.Duration
|
|
RequestTimeout time.Duration
|
|
Status TaskStatus
|
|
NextAttemptAt time.Time
|
|
}
|