e9f836db87
Tests · Go / test (push) Successful in 9s
Tests · Integration / integration (push) Successful in 10s
Tests · UI / test (push) Successful in 20s
Tests · Go / test (pull_request) Successful in 8s
Tests · Integration / integration (pull_request) Successful in 11s
Tests · UI / test (pull_request) Successful in 19s
Service-agnostic refinement of the owner's idea: the sign-in service returns a set of supported game languages with the user identity, and the lobby gates the New Game variant choice by it (en -> English; ru -> Russian + Эрудит). - Connector hosts two bots in one container (one per service language, each its own token + game channel; the same telegram_id spans both). ValidateInitData tries each token and returns the validating bot's service_language + supported_languages. Per-language config (TELEGRAM_BOT_TOKEN_EN/_RU, channels). - supported_languages rides the Session (fbs, session-scoped, not persisted); the UI offers only the matching variants on New Game — gating only the START of a new game (auto-match + friend invite), not accept/open/play; backend does not enforce. - service_language persisted (accounts.service_language, migration 00010, written every login, last-login-wins) and routes the user-facing Notify push back through the right bot (push-target coalesces with preferred_language). - Admin SendToUser/SendToGameChannel gain an operator-chosen language selector in the console (unrelated to ValidateInitData). - Non-Telegram logins carry the gateway default set (GATEWAY_DEFAULT_SUPPORTED_LANGUAGES, all variants). Wire (committed regen): ValidateInitDataResponse +service_language +supported_languages; Session +supported_languages; SendToUser/SendToGameChannel +language. Docs (ARCHITECTURE/FUNCTIONAL/_ru/READMEs) + PLAN updated; stage marked done.
678 lines
23 KiB
Go
678 lines
23 KiB
Go
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
// versions:
|
|
// protoc-gen-go v1.36.11
|
|
// protoc (unknown)
|
|
// source: telegram/v1/telegram.proto
|
|
|
|
// Package scrabble.telegram.v1 is the RPC contract of the Telegram platform
|
|
// side-service (the "connector"). The connector holds the bot token and is the
|
|
// only component that talks to the Telegram Bot API; gateway and backend reach it
|
|
// over plain gRPC on the trusted internal network (ARCHITECTURE.md §1, §12).
|
|
//
|
|
// The generic delivery methods (Notify, SendToUser, SendToGameChannel) are
|
|
// platform-agnostic: they address a recipient by the identity external_id (as in
|
|
// the backend identities table), so a future VK / MAX connector can implement the
|
|
// same service. ValidateInitData is the one Telegram-specific method (it parses
|
|
// Telegram Web App launch data); it is kept here for now.
|
|
|
|
package telegramv1
|
|
|
|
import (
|
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
|
reflect "reflect"
|
|
sync "sync"
|
|
unsafe "unsafe"
|
|
)
|
|
|
|
const (
|
|
// Verify that this generated code is sufficiently up-to-date.
|
|
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
|
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
|
)
|
|
|
|
// ValidateInitDataRequest carries the raw Telegram Web App initData string.
|
|
type ValidateInitDataRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
InitData string `protobuf:"bytes,1,opt,name=init_data,json=initData,proto3" json:"init_data,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *ValidateInitDataRequest) Reset() {
|
|
*x = ValidateInitDataRequest{}
|
|
mi := &file_telegram_v1_telegram_proto_msgTypes[0]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *ValidateInitDataRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*ValidateInitDataRequest) ProtoMessage() {}
|
|
|
|
func (x *ValidateInitDataRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_telegram_v1_telegram_proto_msgTypes[0]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use ValidateInitDataRequest.ProtoReflect.Descriptor instead.
|
|
func (*ValidateInitDataRequest) Descriptor() ([]byte, []int) {
|
|
return file_telegram_v1_telegram_proto_rawDescGZIP(), []int{0}
|
|
}
|
|
|
|
func (x *ValidateInitDataRequest) GetInitData() string {
|
|
if x != nil {
|
|
return x.InitData
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// ValidateInitDataResponse is the validated identity. external_id is the Telegram
|
|
// user id used as the identities external_id; language_code seeds a new account's
|
|
// preferred (interface) language. service_language (en/ru) is the language tag of
|
|
// the bot that validated the launch data; it is persisted per account and routes
|
|
// the user's out-of-app push back through the right bot (it is NOT the game's
|
|
// language). supported_languages is that bot's set of offered game languages
|
|
// (subset of {en, ru}, at least one — a singleton for a single-language bot); the
|
|
// UI gates the New Game variant choice by it.
|
|
type ValidateInitDataResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
ExternalId string `protobuf:"bytes,1,opt,name=external_id,json=externalId,proto3" json:"external_id,omitempty"`
|
|
Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
|
|
FirstName string `protobuf:"bytes,3,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"`
|
|
LanguageCode string `protobuf:"bytes,4,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
|
|
ServiceLanguage string `protobuf:"bytes,5,opt,name=service_language,json=serviceLanguage,proto3" json:"service_language,omitempty"`
|
|
SupportedLanguages []string `protobuf:"bytes,6,rep,name=supported_languages,json=supportedLanguages,proto3" json:"supported_languages,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *ValidateInitDataResponse) Reset() {
|
|
*x = ValidateInitDataResponse{}
|
|
mi := &file_telegram_v1_telegram_proto_msgTypes[1]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *ValidateInitDataResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*ValidateInitDataResponse) ProtoMessage() {}
|
|
|
|
func (x *ValidateInitDataResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_telegram_v1_telegram_proto_msgTypes[1]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use ValidateInitDataResponse.ProtoReflect.Descriptor instead.
|
|
func (*ValidateInitDataResponse) Descriptor() ([]byte, []int) {
|
|
return file_telegram_v1_telegram_proto_rawDescGZIP(), []int{1}
|
|
}
|
|
|
|
func (x *ValidateInitDataResponse) GetExternalId() string {
|
|
if x != nil {
|
|
return x.ExternalId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ValidateInitDataResponse) GetUsername() string {
|
|
if x != nil {
|
|
return x.Username
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ValidateInitDataResponse) GetFirstName() string {
|
|
if x != nil {
|
|
return x.FirstName
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ValidateInitDataResponse) GetLanguageCode() string {
|
|
if x != nil {
|
|
return x.LanguageCode
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ValidateInitDataResponse) GetServiceLanguage() string {
|
|
if x != nil {
|
|
return x.ServiceLanguage
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ValidateInitDataResponse) GetSupportedLanguages() []string {
|
|
if x != nil {
|
|
return x.SupportedLanguages
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// ValidateLoginWidgetRequest carries the Login Widget result serialized as a URL
|
|
// query string (the widget fields plus the hash, e.g. "auth_date=...&id=...&hash=...").
|
|
type ValidateLoginWidgetRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Data string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *ValidateLoginWidgetRequest) Reset() {
|
|
*x = ValidateLoginWidgetRequest{}
|
|
mi := &file_telegram_v1_telegram_proto_msgTypes[2]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *ValidateLoginWidgetRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*ValidateLoginWidgetRequest) ProtoMessage() {}
|
|
|
|
func (x *ValidateLoginWidgetRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_telegram_v1_telegram_proto_msgTypes[2]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use ValidateLoginWidgetRequest.ProtoReflect.Descriptor instead.
|
|
func (*ValidateLoginWidgetRequest) Descriptor() ([]byte, []int) {
|
|
return file_telegram_v1_telegram_proto_rawDescGZIP(), []int{2}
|
|
}
|
|
|
|
func (x *ValidateLoginWidgetRequest) GetData() string {
|
|
if x != nil {
|
|
return x.Data
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// ValidateLoginWidgetResponse is the validated identity. external_id is the
|
|
// Telegram user id used as the identities external_id. The Login Widget carries no
|
|
// language_code (unlike Mini App initData).
|
|
type ValidateLoginWidgetResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
ExternalId string `protobuf:"bytes,1,opt,name=external_id,json=externalId,proto3" json:"external_id,omitempty"`
|
|
Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
|
|
FirstName string `protobuf:"bytes,3,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *ValidateLoginWidgetResponse) Reset() {
|
|
*x = ValidateLoginWidgetResponse{}
|
|
mi := &file_telegram_v1_telegram_proto_msgTypes[3]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *ValidateLoginWidgetResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*ValidateLoginWidgetResponse) ProtoMessage() {}
|
|
|
|
func (x *ValidateLoginWidgetResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_telegram_v1_telegram_proto_msgTypes[3]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use ValidateLoginWidgetResponse.ProtoReflect.Descriptor instead.
|
|
func (*ValidateLoginWidgetResponse) Descriptor() ([]byte, []int) {
|
|
return file_telegram_v1_telegram_proto_rawDescGZIP(), []int{3}
|
|
}
|
|
|
|
func (x *ValidateLoginWidgetResponse) GetExternalId() string {
|
|
if x != nil {
|
|
return x.ExternalId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ValidateLoginWidgetResponse) GetUsername() string {
|
|
if x != nil {
|
|
return x.Username
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ValidateLoginWidgetResponse) GetFirstName() string {
|
|
if x != nil {
|
|
return x.FirstName
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// NotifyRequest addresses a push event to one recipient. kind is the backend push
|
|
// catalog kind (your_turn, nudge, match_found, notify); payload is the FlatBuffers
|
|
// scrabblefb.* body for that kind; language (en/ru) is the recipient's service
|
|
// language (from their last ValidateInitData) — it both selects the delivering bot
|
|
// and the message template.
|
|
type NotifyRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
ExternalId string `protobuf:"bytes,1,opt,name=external_id,json=externalId,proto3" json:"external_id,omitempty"`
|
|
Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"`
|
|
Payload []byte `protobuf:"bytes,3,opt,name=payload,proto3" json:"payload,omitempty"`
|
|
Language string `protobuf:"bytes,4,opt,name=language,proto3" json:"language,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *NotifyRequest) Reset() {
|
|
*x = NotifyRequest{}
|
|
mi := &file_telegram_v1_telegram_proto_msgTypes[4]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *NotifyRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*NotifyRequest) ProtoMessage() {}
|
|
|
|
func (x *NotifyRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_telegram_v1_telegram_proto_msgTypes[4]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use NotifyRequest.ProtoReflect.Descriptor instead.
|
|
func (*NotifyRequest) Descriptor() ([]byte, []int) {
|
|
return file_telegram_v1_telegram_proto_rawDescGZIP(), []int{4}
|
|
}
|
|
|
|
func (x *NotifyRequest) GetExternalId() string {
|
|
if x != nil {
|
|
return x.ExternalId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *NotifyRequest) GetKind() string {
|
|
if x != nil {
|
|
return x.Kind
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *NotifyRequest) GetPayload() []byte {
|
|
if x != nil {
|
|
return x.Payload
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *NotifyRequest) GetLanguage() string {
|
|
if x != nil {
|
|
return x.Language
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// NotifyResponse reports whether a message was actually sent (false when the kind
|
|
// is not rendered out-of-app or the user has not started the bot).
|
|
type NotifyResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Delivered bool `protobuf:"varint,1,opt,name=delivered,proto3" json:"delivered,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *NotifyResponse) Reset() {
|
|
*x = NotifyResponse{}
|
|
mi := &file_telegram_v1_telegram_proto_msgTypes[5]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *NotifyResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*NotifyResponse) ProtoMessage() {}
|
|
|
|
func (x *NotifyResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_telegram_v1_telegram_proto_msgTypes[5]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use NotifyResponse.ProtoReflect.Descriptor instead.
|
|
func (*NotifyResponse) Descriptor() ([]byte, []int) {
|
|
return file_telegram_v1_telegram_proto_rawDescGZIP(), []int{5}
|
|
}
|
|
|
|
func (x *NotifyResponse) GetDelivered() bool {
|
|
if x != nil {
|
|
return x.Delivered
|
|
}
|
|
return false
|
|
}
|
|
|
|
// SendToUserRequest is an admin text message to one user by external_id. language
|
|
// (en/ru) selects which bot delivers it — an operator choice in the admin console,
|
|
// unrelated to the user's service language.
|
|
type SendToUserRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
ExternalId string `protobuf:"bytes,1,opt,name=external_id,json=externalId,proto3" json:"external_id,omitempty"`
|
|
Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"`
|
|
Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *SendToUserRequest) Reset() {
|
|
*x = SendToUserRequest{}
|
|
mi := &file_telegram_v1_telegram_proto_msgTypes[6]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *SendToUserRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SendToUserRequest) ProtoMessage() {}
|
|
|
|
func (x *SendToUserRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_telegram_v1_telegram_proto_msgTypes[6]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use SendToUserRequest.ProtoReflect.Descriptor instead.
|
|
func (*SendToUserRequest) Descriptor() ([]byte, []int) {
|
|
return file_telegram_v1_telegram_proto_rawDescGZIP(), []int{6}
|
|
}
|
|
|
|
func (x *SendToUserRequest) GetExternalId() string {
|
|
if x != nil {
|
|
return x.ExternalId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SendToUserRequest) GetText() string {
|
|
if x != nil {
|
|
return x.Text
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SendToUserRequest) GetLanguage() string {
|
|
if x != nil {
|
|
return x.Language
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// SendToGameChannelRequest is an admin text message to a game channel. language
|
|
// (en/ru) selects which bot's configured channel receives it — an operator choice
|
|
// in the admin console.
|
|
type SendToGameChannelRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
|
|
Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *SendToGameChannelRequest) Reset() {
|
|
*x = SendToGameChannelRequest{}
|
|
mi := &file_telegram_v1_telegram_proto_msgTypes[7]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *SendToGameChannelRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SendToGameChannelRequest) ProtoMessage() {}
|
|
|
|
func (x *SendToGameChannelRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_telegram_v1_telegram_proto_msgTypes[7]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use SendToGameChannelRequest.ProtoReflect.Descriptor instead.
|
|
func (*SendToGameChannelRequest) Descriptor() ([]byte, []int) {
|
|
return file_telegram_v1_telegram_proto_rawDescGZIP(), []int{7}
|
|
}
|
|
|
|
func (x *SendToGameChannelRequest) GetText() string {
|
|
if x != nil {
|
|
return x.Text
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SendToGameChannelRequest) GetLanguage() string {
|
|
if x != nil {
|
|
return x.Language
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// SendResponse reports whether the message was sent.
|
|
type SendResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Delivered bool `protobuf:"varint,1,opt,name=delivered,proto3" json:"delivered,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *SendResponse) Reset() {
|
|
*x = SendResponse{}
|
|
mi := &file_telegram_v1_telegram_proto_msgTypes[8]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *SendResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SendResponse) ProtoMessage() {}
|
|
|
|
func (x *SendResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_telegram_v1_telegram_proto_msgTypes[8]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use SendResponse.ProtoReflect.Descriptor instead.
|
|
func (*SendResponse) Descriptor() ([]byte, []int) {
|
|
return file_telegram_v1_telegram_proto_rawDescGZIP(), []int{8}
|
|
}
|
|
|
|
func (x *SendResponse) GetDelivered() bool {
|
|
if x != nil {
|
|
return x.Delivered
|
|
}
|
|
return false
|
|
}
|
|
|
|
var File_telegram_v1_telegram_proto protoreflect.FileDescriptor
|
|
|
|
const file_telegram_v1_telegram_proto_rawDesc = "" +
|
|
"\n" +
|
|
"\x1atelegram/v1/telegram.proto\x12\x14scrabble.telegram.v1\"6\n" +
|
|
"\x17ValidateInitDataRequest\x12\x1b\n" +
|
|
"\tinit_data\x18\x01 \x01(\tR\binitData\"\xf7\x01\n" +
|
|
"\x18ValidateInitDataResponse\x12\x1f\n" +
|
|
"\vexternal_id\x18\x01 \x01(\tR\n" +
|
|
"externalId\x12\x1a\n" +
|
|
"\busername\x18\x02 \x01(\tR\busername\x12\x1d\n" +
|
|
"\n" +
|
|
"first_name\x18\x03 \x01(\tR\tfirstName\x12#\n" +
|
|
"\rlanguage_code\x18\x04 \x01(\tR\flanguageCode\x12)\n" +
|
|
"\x10service_language\x18\x05 \x01(\tR\x0fserviceLanguage\x12/\n" +
|
|
"\x13supported_languages\x18\x06 \x03(\tR\x12supportedLanguages\"0\n" +
|
|
"\x1aValidateLoginWidgetRequest\x12\x12\n" +
|
|
"\x04data\x18\x01 \x01(\tR\x04data\"y\n" +
|
|
"\x1bValidateLoginWidgetResponse\x12\x1f\n" +
|
|
"\vexternal_id\x18\x01 \x01(\tR\n" +
|
|
"externalId\x12\x1a\n" +
|
|
"\busername\x18\x02 \x01(\tR\busername\x12\x1d\n" +
|
|
"\n" +
|
|
"first_name\x18\x03 \x01(\tR\tfirstName\"z\n" +
|
|
"\rNotifyRequest\x12\x1f\n" +
|
|
"\vexternal_id\x18\x01 \x01(\tR\n" +
|
|
"externalId\x12\x12\n" +
|
|
"\x04kind\x18\x02 \x01(\tR\x04kind\x12\x18\n" +
|
|
"\apayload\x18\x03 \x01(\fR\apayload\x12\x1a\n" +
|
|
"\blanguage\x18\x04 \x01(\tR\blanguage\".\n" +
|
|
"\x0eNotifyResponse\x12\x1c\n" +
|
|
"\tdelivered\x18\x01 \x01(\bR\tdelivered\"d\n" +
|
|
"\x11SendToUserRequest\x12\x1f\n" +
|
|
"\vexternal_id\x18\x01 \x01(\tR\n" +
|
|
"externalId\x12\x12\n" +
|
|
"\x04text\x18\x02 \x01(\tR\x04text\x12\x1a\n" +
|
|
"\blanguage\x18\x03 \x01(\tR\blanguage\"J\n" +
|
|
"\x18SendToGameChannelRequest\x12\x12\n" +
|
|
"\x04text\x18\x01 \x01(\tR\x04text\x12\x1a\n" +
|
|
"\blanguage\x18\x02 \x01(\tR\blanguage\",\n" +
|
|
"\fSendResponse\x12\x1c\n" +
|
|
"\tdelivered\x18\x01 \x01(\bR\tdelivered2\x92\x04\n" +
|
|
"\bTelegram\x12q\n" +
|
|
"\x10ValidateInitData\x12-.scrabble.telegram.v1.ValidateInitDataRequest\x1a..scrabble.telegram.v1.ValidateInitDataResponse\x12z\n" +
|
|
"\x13ValidateLoginWidget\x120.scrabble.telegram.v1.ValidateLoginWidgetRequest\x1a1.scrabble.telegram.v1.ValidateLoginWidgetResponse\x12S\n" +
|
|
"\x06Notify\x12#.scrabble.telegram.v1.NotifyRequest\x1a$.scrabble.telegram.v1.NotifyResponse\x12Y\n" +
|
|
"\n" +
|
|
"SendToUser\x12'.scrabble.telegram.v1.SendToUserRequest\x1a\".scrabble.telegram.v1.SendResponse\x12g\n" +
|
|
"\x11SendToGameChannel\x12..scrabble.telegram.v1.SendToGameChannelRequest\x1a\".scrabble.telegram.v1.SendResponseB+Z)scrabble/pkg/proto/telegram/v1;telegramv1b\x06proto3"
|
|
|
|
var (
|
|
file_telegram_v1_telegram_proto_rawDescOnce sync.Once
|
|
file_telegram_v1_telegram_proto_rawDescData []byte
|
|
)
|
|
|
|
func file_telegram_v1_telegram_proto_rawDescGZIP() []byte {
|
|
file_telegram_v1_telegram_proto_rawDescOnce.Do(func() {
|
|
file_telegram_v1_telegram_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_telegram_v1_telegram_proto_rawDesc), len(file_telegram_v1_telegram_proto_rawDesc)))
|
|
})
|
|
return file_telegram_v1_telegram_proto_rawDescData
|
|
}
|
|
|
|
var file_telegram_v1_telegram_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
|
|
var file_telegram_v1_telegram_proto_goTypes = []any{
|
|
(*ValidateInitDataRequest)(nil), // 0: scrabble.telegram.v1.ValidateInitDataRequest
|
|
(*ValidateInitDataResponse)(nil), // 1: scrabble.telegram.v1.ValidateInitDataResponse
|
|
(*ValidateLoginWidgetRequest)(nil), // 2: scrabble.telegram.v1.ValidateLoginWidgetRequest
|
|
(*ValidateLoginWidgetResponse)(nil), // 3: scrabble.telegram.v1.ValidateLoginWidgetResponse
|
|
(*NotifyRequest)(nil), // 4: scrabble.telegram.v1.NotifyRequest
|
|
(*NotifyResponse)(nil), // 5: scrabble.telegram.v1.NotifyResponse
|
|
(*SendToUserRequest)(nil), // 6: scrabble.telegram.v1.SendToUserRequest
|
|
(*SendToGameChannelRequest)(nil), // 7: scrabble.telegram.v1.SendToGameChannelRequest
|
|
(*SendResponse)(nil), // 8: scrabble.telegram.v1.SendResponse
|
|
}
|
|
var file_telegram_v1_telegram_proto_depIdxs = []int32{
|
|
0, // 0: scrabble.telegram.v1.Telegram.ValidateInitData:input_type -> scrabble.telegram.v1.ValidateInitDataRequest
|
|
2, // 1: scrabble.telegram.v1.Telegram.ValidateLoginWidget:input_type -> scrabble.telegram.v1.ValidateLoginWidgetRequest
|
|
4, // 2: scrabble.telegram.v1.Telegram.Notify:input_type -> scrabble.telegram.v1.NotifyRequest
|
|
6, // 3: scrabble.telegram.v1.Telegram.SendToUser:input_type -> scrabble.telegram.v1.SendToUserRequest
|
|
7, // 4: scrabble.telegram.v1.Telegram.SendToGameChannel:input_type -> scrabble.telegram.v1.SendToGameChannelRequest
|
|
1, // 5: scrabble.telegram.v1.Telegram.ValidateInitData:output_type -> scrabble.telegram.v1.ValidateInitDataResponse
|
|
3, // 6: scrabble.telegram.v1.Telegram.ValidateLoginWidget:output_type -> scrabble.telegram.v1.ValidateLoginWidgetResponse
|
|
5, // 7: scrabble.telegram.v1.Telegram.Notify:output_type -> scrabble.telegram.v1.NotifyResponse
|
|
8, // 8: scrabble.telegram.v1.Telegram.SendToUser:output_type -> scrabble.telegram.v1.SendResponse
|
|
8, // 9: scrabble.telegram.v1.Telegram.SendToGameChannel:output_type -> scrabble.telegram.v1.SendResponse
|
|
5, // [5:10] is the sub-list for method output_type
|
|
0, // [0:5] is the sub-list for method input_type
|
|
0, // [0:0] is the sub-list for extension type_name
|
|
0, // [0:0] is the sub-list for extension extendee
|
|
0, // [0:0] is the sub-list for field type_name
|
|
}
|
|
|
|
func init() { file_telegram_v1_telegram_proto_init() }
|
|
func file_telegram_v1_telegram_proto_init() {
|
|
if File_telegram_v1_telegram_proto != nil {
|
|
return
|
|
}
|
|
type x struct{}
|
|
out := protoimpl.TypeBuilder{
|
|
File: protoimpl.DescBuilder{
|
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
|
RawDescriptor: unsafe.Slice(unsafe.StringData(file_telegram_v1_telegram_proto_rawDesc), len(file_telegram_v1_telegram_proto_rawDesc)),
|
|
NumEnums: 0,
|
|
NumMessages: 9,
|
|
NumExtensions: 0,
|
|
NumServices: 1,
|
|
},
|
|
GoTypes: file_telegram_v1_telegram_proto_goTypes,
|
|
DependencyIndexes: file_telegram_v1_telegram_proto_depIdxs,
|
|
MessageInfos: file_telegram_v1_telegram_proto_msgTypes,
|
|
}.Build()
|
|
File_telegram_v1_telegram_proto = out.File
|
|
file_telegram_v1_telegram_proto_goTypes = nil
|
|
file_telegram_v1_telegram_proto_depIdxs = nil
|
|
}
|