package types

// CallbackState is callback state
type CallbackState string

// CallbackState
const (
	CallbackNone    CallbackState = "NONE"
	CallbackNew                   = "NEW"
	CallbackRunning               = "RUNNING"
	CallbackSuccess               = "SUCCESS"
	CallbackFailed                = "FAILED"
)

// Callback is callback types
type Callback struct {
	Status CallbackState `json:"status"`
	Name   string        `json:"name"`
}

// IsNew is true if callback status was new
func (c *Callback) IsNew() bool {
	return c.Status == CallbackNew
}

// IsRunning is true if callback status was running
func (c *Callback) IsRunning() bool {
	return c.Status == CallbackRunning
}

// IsSuccess is true if callback status was running
func (c *Callback) IsSuccess() bool {
	return c.Status == CallbackSuccess
}

// IsFailed is true if callback status was failed
func (c *Callback) IsFailed() bool {
	return c.Status == CallbackFailed
}
