package models import ( "encoding/json" "fmt" "time" ) // EvalAlertConditionCommand is the command for evaluating a condition type EvalAlertConditionCommand struct { Condition string `json:"condition"` Data []AlertQuery `json:"data"` Now time.Time `json:"now"` } func (cmd *EvalAlertConditionCommand) UnmarshalJSON(b []byte) error { type plain EvalAlertConditionCommand if err := json.Unmarshal(b, (*plain)(cmd)); err != nil { return err } return cmd.validate() } func (cmd *EvalAlertConditionCommand) validate() error { if cmd.Condition == "" { return fmt.Errorf("missing condition") } if len(cmd.Data) == 0 { return fmt.Errorf("missing data") } return nil }