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"`
|
||
}
|