package alerts import ( "encoding/json" "github.com/nicklaw5/helix/v2" ) const ConfigKey = "twitch/alerts/config" type eventSubNotification struct { Subscription helix.EventSubSubscription `json:"subscription"` Challenge string `json:"challenge"` Event json.RawMessage `json:"event" desc:"Event payload, as JSON object"` } type subscriptionVariation struct { MinStreak *int `json:"min_streak,omitempty" desc:"Minimum streak to get this message"` IsGifted *bool `json:"is_gifted,omitempty" desc:"If true, only gifted subscriptions will get these messages"` Messages []string `json:"messages" desc:"List of message to write on subscription, one at random will be picked"` } type giftSubVariation struct { MinCumulative *int `json:"min_cumulative,omitempty" desc:"Minimum cumulative amount to get this message"` IsAnonymous *bool `json:"is_anonymous,omitempty" desc:"If true, only anonymous gifts will get these messages"` Messages []string `json:"messages" desc:"List of message to write on gifted subscription, one at random will be picked"` } type raidVariation struct { MinViewers *int `json:"min_viewers,omitempty" desc:"Minimum number of viewers to get this message"` Messages []string `json:"messages" desc:"List of message to write on raid, one at random will be picked"` } type cheerVariation struct { MinAmount *int `json:"min_amount,omitempty" desc:"Minimum amount to get this message"` Messages []string `json:"messages" desc:"List of message to write on cheer, one at random will be picked"` } type Config struct { Follow struct { Enabled bool `json:"enabled" desc:"Enable chat message alert on follow"` Messages []string `json:"messages" desc:"List of message to write on follow, one at random will be picked"` Announce bool `json:"announce" desc:"If true, send as announcement"` } `json:"follow"` Subscription struct { Enabled bool `json:"enabled" desc:"Enable chat message alert on subscription"` Messages []string `json:"messages" desc:"List of message to write on subscription, one at random will be picked"` Announce bool `json:"announce" desc:"If true, send as announcement"` Variations []subscriptionVariation `json:"variations"` } `json:"subscription"` GiftSub struct { Enabled bool `json:"enabled" desc:"Enable chat message alert on gifted subscription"` Messages []string `json:"messages" desc:"List of message to write on gifted subscription, one at random will be picked"` Announce bool `json:"announce" desc:"If true, send as announcement"` Variations []giftSubVariation `json:"variations"` } `json:"gift_sub"` Raid struct { Enabled bool `json:"enabled" desc:"Enable chat message alert on raid"` Messages []string `json:"messages" desc:"List of message to write on raid, one at random will be picked"` Announce bool `json:"announce" desc:"If true, send as announcement"` Variations []raidVariation `json:"variations"` } `json:"raid"` Cheer struct { Enabled bool `json:"enabled" desc:"Enable chat message alert on cheer"` Messages []string `json:"messages" desc:"List of message to write on cheer, one at random will be picked"` Announce bool `json:"announce" desc:"If true, send as announcement"` Variations []cheerVariation `json:"variations"` } `json:"cheer"` }