314 lines
10 KiB
Go
314 lines
10 KiB
Go
|
package events
|
|||
|
|
|||
|
import "time"
|
|||
|
|
|||
|
type MaxPerStream struct {
|
|||
|
// Is the setting enabled.
|
|||
|
IsEnabled bool `json:"is_enabled"`
|
|||
|
|
|||
|
// The max per stream limit.
|
|||
|
Value int `json:"value"`
|
|||
|
}
|
|||
|
|
|||
|
type MaxPerUserPerStream struct {
|
|||
|
// Is the setting enabled.
|
|||
|
IsEnabled bool `json:"is_enabled"`
|
|||
|
|
|||
|
// The max per user per stream limit.
|
|||
|
Value int `json:"value"`
|
|||
|
}
|
|||
|
|
|||
|
type Image struct {
|
|||
|
// URL for the image at 1x size.
|
|||
|
URL1x string `json:"url_1x"`
|
|||
|
|
|||
|
// URL for the image at 2x size.
|
|||
|
URL2x string `json:"url_2x"`
|
|||
|
|
|||
|
// URL for the image at 4x size.
|
|||
|
URL4x string `json:"url_4x"`
|
|||
|
}
|
|||
|
|
|||
|
type GlobalCooldown struct {
|
|||
|
// Is the setting enabled.
|
|||
|
IsEnabled bool `json:"is_enabled"`
|
|||
|
|
|||
|
// The cooldown in seconds.
|
|||
|
Seconds int `json:"seconds"`
|
|||
|
}
|
|||
|
|
|||
|
type ChannelPointsCustomRewardAddEvent struct {
|
|||
|
// The reward identifier.
|
|||
|
ID string `json:"id"`
|
|||
|
|
|||
|
// The requested broadcaster ID.
|
|||
|
BroadcasterUserID string `json:"broadcaster_user_id"`
|
|||
|
|
|||
|
// The requested broadcaster login.
|
|||
|
BroadcasterUserLogin string `json:"broadcaster_user_login"`
|
|||
|
|
|||
|
// The requested broadcaster display name.
|
|||
|
BroadcasterUserName string `json:"broadcaster_user_name"`
|
|||
|
|
|||
|
// Is the reward currently enabled. If false, the reward won’t show up to viewers.
|
|||
|
IsEnabled bool `json:"is_enabled"`
|
|||
|
|
|||
|
// Is the reward currently paused. If true, viewers can’t redeem.
|
|||
|
IsPaused bool `json:"is_paused"`
|
|||
|
|
|||
|
// Is the reward currently in stock. If false, viewers can’t redeem.
|
|||
|
IsInStock bool `json:"is_in_stock"`
|
|||
|
|
|||
|
// The reward title.
|
|||
|
Title string `json:"title"`
|
|||
|
|
|||
|
// The reward cost.
|
|||
|
Cost int `json:"cost"`
|
|||
|
|
|||
|
// The reward description.
|
|||
|
Prompt string `json:"prompt"`
|
|||
|
|
|||
|
// Does the viewer need to enter information when redeeming the reward.
|
|||
|
IsUserInputRequired bool `json:"is_user_input_required"`
|
|||
|
|
|||
|
// Should redemptions be set to fulfilled status immediately when redeemed and skip the request queue instead of the normal unfulfilled status.
|
|||
|
ShouldRedemptionsSkipRequestQueue bool `json:"should_redemptions_skip_request_queue"`
|
|||
|
|
|||
|
// Whether a maximum per stream is enabled and what the maximum is.
|
|||
|
MaxPerStream MaxPerStream `json:"max_per_stream"`
|
|||
|
|
|||
|
// Whether a maximum per user per stream is enabled and what the maximum is.
|
|||
|
MaxPerUserPerStream MaxPerUserPerStream `json:"max_per_user_per_stream"`
|
|||
|
|
|||
|
// Custom background color for the reward. Format: Hex with # prefix. Example: #FA1ED2.
|
|||
|
BackgroundColor string `json:"background_color"`
|
|||
|
|
|||
|
// Set of custom images of 1x, 2x and 4x sizes for the reward. Can be null if no images have been uploaded.
|
|||
|
Image *Image `json:"image"`
|
|||
|
|
|||
|
// Set of default images of 1x, 2x and 4x sizes for the reward.
|
|||
|
DefaultImage Image `json:"default_image"`
|
|||
|
|
|||
|
// Whether a cooldown is enabled and what the cooldown is in seconds.
|
|||
|
GlobalCooldown GlobalCooldown `json:"global_cooldown"`
|
|||
|
|
|||
|
// Timestamp of the cooldown expiration. null if the reward isn’t on cooldown.
|
|||
|
CooldownExpiresAt *time.Time `json:"cooldown_expires_at"`
|
|||
|
|
|||
|
// The number of redemptions redeemed during the current live stream. Counts against the max_per_stream limit.
|
|||
|
// null if the broadcasters stream isn’t live or max_per_stream isn’t enabled.
|
|||
|
RedemptionsRedeemedCurrentStream *int `json:"redemptions_redeemed_current_stream"`
|
|||
|
}
|
|||
|
|
|||
|
type ChannelPointsCustomRewardUpdateEvent struct {
|
|||
|
// The reward identifier.
|
|||
|
Id string `json:"id"`
|
|||
|
|
|||
|
// The requested broadcaster ID.
|
|||
|
BroadcasterUserId string `json:"broadcaster_user_id"`
|
|||
|
|
|||
|
// The requested broadcaster login.
|
|||
|
BroadcasterUserLogin string `json:"broadcaster_user_login"`
|
|||
|
|
|||
|
// The requested broadcaster display name.
|
|||
|
BroadcasterUserName string `json:"broadcaster_user_name"`
|
|||
|
|
|||
|
// Is the reward currently enabled. If false, the reward won’t show up to viewers.
|
|||
|
IsEnabled bool `json:"is_enabled"`
|
|||
|
|
|||
|
// Is the reward currently paused. If true, viewers can’t redeem.
|
|||
|
IsPaused bool `json:"is_paused"`
|
|||
|
|
|||
|
// Is the reward currently in stock. If false, viewers can’t redeem.
|
|||
|
IsInStock bool `json:"is_in_stock"`
|
|||
|
|
|||
|
// The reward title.
|
|||
|
Title string `json:"title"`
|
|||
|
|
|||
|
// The reward cost.
|
|||
|
Cost int `json:"cost"`
|
|||
|
|
|||
|
// The reward description.
|
|||
|
Prompt string `json:"prompt"`
|
|||
|
|
|||
|
// Does the viewer need to enter information when redeeming the reward.
|
|||
|
IsUserInputRequired bool `json:"is_user_input_required"`
|
|||
|
|
|||
|
// Should redemptions be set to fulfilled status immediately when redeemed and skip the request queue instead of the normal unfulfilled status.
|
|||
|
ShouldRedemptionsSkipRequestQueue bool `json:"should_redemptions_skip_request_queue"`
|
|||
|
|
|||
|
// Whether a maximum per stream is enabled and what the maximum is.
|
|||
|
MaxPerStream MaxPerStream `json:"max_per_stream"`
|
|||
|
|
|||
|
// Whether a maximum per user per stream is enabled and what the maximum is.
|
|||
|
MaxPerUserPerStream MaxPerUserPerStream `json:"max_per_user_per_stream"`
|
|||
|
|
|||
|
// Custom background color for the reward. Format: Hex with # prefix. Example: #FA1ED2.
|
|||
|
BackgroundColor string `json:"background_color"`
|
|||
|
|
|||
|
// Set of custom images of 1x, 2x and 4x sizes for the reward. Can be null if no images have been uploaded.
|
|||
|
Image *Image `json:"image"`
|
|||
|
|
|||
|
// Set of default images of 1x, 2x and 4x sizes for the reward.
|
|||
|
DefaultImage Image `json:"default_image"`
|
|||
|
|
|||
|
// Whether a cooldown is enabled and what the cooldown is in seconds.
|
|||
|
GlobalCooldown GlobalCooldown `json:"global_cooldown"`
|
|||
|
|
|||
|
// Timestamp of the cooldown expiration. null if the reward isn’t on cooldown.
|
|||
|
CooldownExpiresAt *time.Time `json:"cooldown_expires_at"`
|
|||
|
|
|||
|
// The number of redemptions redeemed during the current live stream. Counts against the max_per_stream limit.
|
|||
|
// null if the broadcasters stream isn’t live or max_per_stream isn’t enabled.
|
|||
|
RedemptionsRedeemedCurrentStream *int `json:"redemptions_redeemed_current_stream"`
|
|||
|
}
|
|||
|
|
|||
|
type ChannelPointsCustomRewardRemoveEvent struct {
|
|||
|
// The reward identifier.
|
|||
|
Id string `json:"id"`
|
|||
|
|
|||
|
// The requested broadcaster ID.
|
|||
|
BroadcasterUserId string `json:"broadcaster_user_id"`
|
|||
|
|
|||
|
// The requested broadcaster login.
|
|||
|
BroadcasterUserLogin string `json:"broadcaster_user_login"`
|
|||
|
|
|||
|
// The requested broadcaster display name.
|
|||
|
BroadcasterUserName string `json:"broadcaster_user_name"`
|
|||
|
|
|||
|
// Is the reward currently enabled. If false, the reward won’t show up to viewers.
|
|||
|
IsEnabled bool `json:"is_enabled"`
|
|||
|
|
|||
|
// Is the reward currently paused. If true, viewers can’t redeem.
|
|||
|
IsPaused bool `json:"is_paused"`
|
|||
|
|
|||
|
// Is the reward currently in stock. If false, viewers can’t redeem.
|
|||
|
IsInStock bool `json:"is_in_stock"`
|
|||
|
|
|||
|
// The reward title.
|
|||
|
Title string `json:"title"`
|
|||
|
|
|||
|
// The reward cost.
|
|||
|
Cost int `json:"cost"`
|
|||
|
|
|||
|
// The reward description.
|
|||
|
Prompt string `json:"prompt"`
|
|||
|
|
|||
|
// Does the viewer need to enter information when redeeming the reward.
|
|||
|
IsUserInputRequired bool `json:"is_user_input_required"`
|
|||
|
|
|||
|
// Should redemptions be set to fulfilled status immediately when redeemed and skip the request queue instead of the normal unfulfilled status.
|
|||
|
ShouldRedemptionsSkipRequestQueue bool `json:"should_redemptions_skip_request_queue"`
|
|||
|
|
|||
|
// Whether a maximum per stream is enabled and what the maximum is.
|
|||
|
MaxPerStream MaxPerStream `json:"max_per_stream"`
|
|||
|
|
|||
|
// Whether a maximum per user per stream is enabled and what the maximum is.
|
|||
|
MaxPerUserPerStream MaxPerStream `json:"max_per_user_per_stream"`
|
|||
|
|
|||
|
// Custom background color for the reward. Format: Hex with # prefix. Example: #FA1ED2.
|
|||
|
BackgroundColor string `json:"background_color"`
|
|||
|
|
|||
|
// Set of custom images of 1x, 2x and 4x sizes for the reward. Can be null if no images have been uploaded.
|
|||
|
Image *Image `json:"image"`
|
|||
|
|
|||
|
// Set of default images of 1x, 2x and 4x sizes for the reward.
|
|||
|
DefaultImage Image `json:"default_image"`
|
|||
|
|
|||
|
// Whether a cooldown is enabled and what the cooldown is in seconds.
|
|||
|
GlobalCooldown GlobalCooldown `json:"global_cooldown"`
|
|||
|
|
|||
|
// Timestamp of the cooldown expiration. null if the reward isn’t on cooldown.
|
|||
|
CooldownExpiresAt *time.Time `json:"cooldown_expires_at"`
|
|||
|
|
|||
|
// The number of redemptions redeemed during the current live stream. Counts against the max_per_stream limit.
|
|||
|
// null if the broadcasters stream isn’t live or max_per_stream isn’t enabled.
|
|||
|
RedemptionsRedeemedCurrentStream *int `json:"redemptions_redeemed_current_stream"`
|
|||
|
}
|
|||
|
|
|||
|
type Reward struct {
|
|||
|
// The reward identifier.
|
|||
|
Id string `json:"id"`
|
|||
|
|
|||
|
// The reward title.
|
|||
|
Title string `json:"title"`
|
|||
|
|
|||
|
// The reward cost.
|
|||
|
Cost int `json:"cost"`
|
|||
|
|
|||
|
// The reward prompt.
|
|||
|
Prompt string `json:"prompt"`
|
|||
|
}
|
|||
|
|
|||
|
type ChannelPointsCustomRewardRedemptionAddEvent struct {
|
|||
|
|
|||
|
// The redemption identifier.
|
|||
|
Id string `json:"id"`
|
|||
|
|
|||
|
// The requested broadcaster ID.
|
|||
|
BroadcasterUserId string `json:"broadcaster_user_id"`
|
|||
|
|
|||
|
// The requested broadcaster login.
|
|||
|
BroadcasterUserLogin string `json:"broadcaster_user_login"`
|
|||
|
|
|||
|
// The requested broadcaster display name.
|
|||
|
BroadcasterUserName string `json:"broadcaster_user_name"`
|
|||
|
|
|||
|
// User ID of the user that redeemed the reward.
|
|||
|
UserId string `json:"user_id"`
|
|||
|
|
|||
|
// Login of the user that redeemed the reward.
|
|||
|
UserLogin string `json:"user_login"`
|
|||
|
|
|||
|
// Display name of the user that redeemed the reward.
|
|||
|
UserName string `json:"user_name"`
|
|||
|
|
|||
|
// The user input provided. Empty string if not provided.
|
|||
|
UserInput string `json:"user_input"`
|
|||
|
|
|||
|
// Defaults to unfulfilled. Possible values are unknown, unfulfilled, fulfilled, and canceled.
|
|||
|
Status string `json:"status"`
|
|||
|
|
|||
|
// Basic information about the reward that was redeemed, at the time it was redeemed.
|
|||
|
Reward Reward `json:"reward"`
|
|||
|
|
|||
|
// RFC3339 timestamp of when the reward was redeemed.
|
|||
|
RedeemedAt time.Time `json:"redeemed_at"`
|
|||
|
}
|
|||
|
|
|||
|
type ChannelPointsCustomRewardRedemptionUpdateEvent struct {
|
|||
|
|
|||
|
// The redemption identifier.
|
|||
|
Id string `json:"id"`
|
|||
|
|
|||
|
// The requested broadcaster ID.
|
|||
|
BroadcasterUserId string `json:"broadcaster_user_id"`
|
|||
|
|
|||
|
// The requested broadcaster login.
|
|||
|
BroadcasterUserLogin string `json:"broadcaster_user_login"`
|
|||
|
|
|||
|
// The requested broadcaster display name.
|
|||
|
BroadcasterUserName string `json:"broadcaster_user_name"`
|
|||
|
|
|||
|
// User ID of the user that redeemed the reward.
|
|||
|
UserId string `json:"user_id"`
|
|||
|
|
|||
|
// Login of the user that redeemed the reward.
|
|||
|
UserLogin string `json:"user_login"`
|
|||
|
|
|||
|
// Display name of the user that redeemed the reward.
|
|||
|
UserName string `json:"user_name"`
|
|||
|
|
|||
|
// The user input provided. Empty string if not provided.
|
|||
|
UserInput string `json:"user_input"`
|
|||
|
|
|||
|
// Defaults to unfulfilled. Possible values are unknown, unfulfilled, fulfilled, and canceled.
|
|||
|
Status string `json:"status"`
|
|||
|
|
|||
|
// Basic information about the reward that was redeemed, at the time it was redeemed.
|
|||
|
Reward Reward `json:"reward"`
|
|||
|
|
|||
|
// RFC3339 timestamp of when the reward was redeemed.
|
|||
|
RedeemedAt time.Time `json:"redeemed_at"`
|
|||
|
}
|