Files
streamctl/pkg/streamcontrol/event.go
Dmitrii Okunev c03b71b4c7
Some checks failed
rolling-release / build (push) Has been cancelled
rolling-release / rolling-release (push) Has been cancelled
Display the event type if it's not a chat message
2025-07-13 19:15:16 +01:00

70 lines
1.3 KiB
Go

package streamcontrol
import (
"fmt"
"time"
)
type ChatUserID string
type ChatMessageID string
type ChatMessage struct {
CreatedAt time.Time
EventType EventType
UserID ChatUserID
Username string
MessageID ChatMessageID
Message string
Paid Money
}
type EventType int
const (
EventTypeUndefined = EventType(iota)
EventTypeChatMessage
EventTypeCheer
EventTypeAutoModHold
EventTypeAdBreak
EventTypeBan
EventTypeFollow
EventTypeRaid
EventTypeChannelShoutoutReceive
EventTypeSubscribe
EventTypeStreamOnline
EventTypeStreamOffline
EventTypeOther
)
func (t EventType) String() string {
switch t {
case EventTypeUndefined:
return "undefined"
case EventTypeChatMessage:
return "chat_message"
case EventTypeCheer:
return "cheer"
case EventTypeAutoModHold:
return "automod_hold"
case EventTypeAdBreak:
return "ad_break"
case EventTypeBan:
return "ban"
case EventTypeFollow:
return "follow"
case EventTypeRaid:
return "raid"
case EventTypeChannelShoutoutReceive:
return "channel_shoutout_receive"
case EventTypeSubscribe:
return "subscribe"
case EventTypeStreamOnline:
return "stream_online"
case EventTypeStreamOffline:
return "stream_offline"
case EventTypeOther:
return "other"
}
return fmt.Sprintf("unknown_%d", int(t))
}