package botlink import ( botlinkv1 "scrabble/pkg/proto/botlink/v1" telegramv1 "scrabble/pkg/proto/telegram/v1" ) // NotifyCommand builds an out-of-app push command rendered by the bot in the // recipient's interface language. func NotifyCommand(externalID, kind string, payload []byte, language string) *botlinkv1.Command { return &botlinkv1.Command{ Payload: &botlinkv1.Command_Notify{Notify: &telegramv1.NotifyRequest{ ExternalId: externalID, Kind: kind, Payload: payload, Language: language, }}, } } // SendToUserCommand builds an admin text message addressed to one user. func SendToUserCommand(externalID, text string) *botlinkv1.Command { return &botlinkv1.Command{ Payload: &botlinkv1.Command_SendToUser{SendToUser: &telegramv1.SendToUserRequest{ ExternalId: externalID, Text: text, }}, } } // SendToGameChannelCommand builds an admin text message for the bot's game channel. func SendToGameChannelCommand(text string) *botlinkv1.Command { return &botlinkv1.Command{ Payload: &botlinkv1.Command_SendToChannel{SendToChannel: &telegramv1.SendToGameChannelRequest{ Text: text, }}, } } // ChatGateCommand builds a chat-gate command that sets whether the Telegram user // identified by externalID may write in the moderated discussion chat. The bot // applies it only to a member currently in the chat (guarded on getChatMember). func ChatGateCommand(externalID string, allow bool) *botlinkv1.Command { return &botlinkv1.Command{ Payload: &botlinkv1.Command_ChatGate{ChatGate: &botlinkv1.ChatGateCommand{ ExternalId: externalID, Allow: allow, }}, } }