73 lines
3.3 KiB
Go
73 lines
3.3 KiB
Go
package events
|
|
|
|
import "time"
|
|
|
|
type GoalsEvent struct {
|
|
// An ID that identifies this event.
|
|
Id string `json:"id"`
|
|
|
|
// An ID that uniquely identifies the broadcaster.
|
|
BroadcasterUserId string `json:"broadcaster_user_id"`
|
|
|
|
// The broadcaster's display name.
|
|
BroadcasterUserName string `json:"broadcaster_user_name"`
|
|
|
|
// The broadcaster's user handle.
|
|
BroadcasterUserLogin string `json:"broadcaster_user_login"`
|
|
|
|
// The type of goal. Possible values are:
|
|
//
|
|
// follow — The goal is to increase followers.
|
|
//
|
|
// subscription — The goal is to increase subscriptions. This type shows the net increase or decrease in tier points associated with the subscriptions.
|
|
//
|
|
// subscription_count — The goal is to increase subscriptions. This type shows the net increase or decrease in the number of subscriptions.
|
|
//
|
|
// new_subscription — The goal is to increase subscriptions. This type shows only the net increase in tier points associated with the subscriptions
|
|
// (it does not account for users that unsubscribed since the goal started).
|
|
//
|
|
// new_subscription_count — The goal is to increase subscriptions. This type shows only the net increase in the number of subscriptions
|
|
// (it does not account for users that unsubscribed since the goal started).
|
|
//
|
|
// new_bit — The goal is to increase the amount of Bits used on the channel.
|
|
//
|
|
// new_cheerer — The goal is to increase the number of unique Cheerers to Cheer on the channel.
|
|
Type string `json:"type"`
|
|
|
|
// A description of the goal, if specified. The description may contain a maximum of 40 characters.
|
|
Description string `json:"description"`
|
|
|
|
// A Boolean value that indicates whether the broadcaster achieved their goal. Is true if the goal was achieved; otherwise, false.
|
|
IsAchieved bool `json:"is_achieved"`
|
|
|
|
// The goal's current value.
|
|
//
|
|
// The goal's type determines how this value is increased or decreased.
|
|
//
|
|
// - If type is follow, this field is set to the broadcaster's current number of followers.
|
|
// This number increases with new followers and decreases when users unfollow the broadcaster.
|
|
//
|
|
// - If type is subscription, this field is increased and decreased by the points value associated with the subscription tier.
|
|
// For example, if a tier-two subscription is worth 2 points, this field is increased or decreased by 2, not 1.
|
|
//
|
|
// - If type is subscription_count, this field is increased by 1 for each new subscription and decreased by 1 for each user that unsubscribes.
|
|
//
|
|
// - If type is new_subscription, this field is increased by the points value associated with the subscription tier.
|
|
// For example, if a tier-two subscription is worth 2 points, this field is increased by 2, not 1.
|
|
//
|
|
// - If type is new_subscription_count, this field is increased by 1 for each new subscription.
|
|
CurrentAmount int `json:"current_amount"`
|
|
|
|
// The goal's target value. For example, if the broadcaster has 200 followers before creating the goal,
|
|
// and their goal is to double that number, this field is set to 400.
|
|
TargetAmount int `json:"target_amount"`
|
|
|
|
// The UTC timestamp in RFC 3339 format, which indicates when the broadcaster created the goal.
|
|
StartedAt time.Time `json:"started_at"`
|
|
|
|
// The UTC timestamp in RFC 3339 format, which indicates when the broadcaster ended the goal.
|
|
//
|
|
// Only the channel.goal.end event includes this field.
|
|
EndedAt time.Time `json:"ended_at"`
|
|
}
|