// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v7.35.1
// source: main.proto

package proto

import (
	_ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	httpbody "google.golang.org/genproto/googleapis/api/httpbody"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	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)
)

type PingReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PingReq) Reset() {
	*x = PingReq{}
	mi := &file_main_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PingReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PingReq) ProtoMessage() {}

func (x *PingReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_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 PingReq.ProtoReflect.Descriptor instead.
func (*PingReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{0}
}

type PingRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PingRsp) Reset() {
	*x = PingRsp{}
	mi := &file_main_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PingRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PingRsp) ProtoMessage() {}

func (x *PingRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_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 PingRsp.ProtoReflect.Descriptor instead.
func (*PingRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{1}
}

type EchoReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Text          string                 `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EchoReq) Reset() {
	*x = EchoReq{}
	mi := &file_main_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EchoReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EchoReq) ProtoMessage() {}

func (x *EchoReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_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 EchoReq.ProtoReflect.Descriptor instead.
func (*EchoReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{2}
}

func (x *EchoReq) GetText() string {
	if x != nil {
		return x.Text
	}
	return ""
}

type EchoRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Text          string                 `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EchoRsp) Reset() {
	*x = EchoRsp{}
	mi := &file_main_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EchoRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EchoRsp) ProtoMessage() {}

func (x *EchoRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_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 EchoRsp.ProtoReflect.Descriptor instead.
func (*EchoRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{3}
}

func (x *EchoRsp) GetText() string {
	if x != nil {
		return x.Text
	}
	return ""
}

type SignupReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Username      string                 `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
	Email         string                 `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignupReq) Reset() {
	*x = SignupReq{}
	mi := &file_main_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignupReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignupReq) ProtoMessage() {}

func (x *SignupReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_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 SignupReq.ProtoReflect.Descriptor instead.
func (*SignupReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{4}
}

func (x *SignupReq) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *SignupReq) GetEmail() string {
	if x != nil {
		return x.Email
	}
	return ""
}

type SignupRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignupRsp) Reset() {
	*x = SignupRsp{}
	mi := &file_main_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignupRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignupRsp) ProtoMessage() {}

func (x *SignupRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_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 SignupRsp.ProtoReflect.Descriptor instead.
func (*SignupRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{5}
}

func (x *SignupRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type RefreshPasswordReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Email         string                 `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RefreshPasswordReq) Reset() {
	*x = RefreshPasswordReq{}
	mi := &file_main_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RefreshPasswordReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshPasswordReq) ProtoMessage() {}

func (x *RefreshPasswordReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_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 RefreshPasswordReq.ProtoReflect.Descriptor instead.
func (*RefreshPasswordReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{6}
}

func (x *RefreshPasswordReq) GetEmail() string {
	if x != nil {
		return x.Email
	}
	return ""
}

type RefreshPasswordRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RefreshPasswordRsp) Reset() {
	*x = RefreshPasswordRsp{}
	mi := &file_main_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RefreshPasswordRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshPasswordRsp) ProtoMessage() {}

func (x *RefreshPasswordRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_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 RefreshPasswordRsp.ProtoReflect.Descriptor instead.
func (*RefreshPasswordRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{7}
}

func (x *RefreshPasswordRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type LoginReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Email         string                 `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"`
	Password      string                 `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *LoginReq) Reset() {
	*x = LoginReq{}
	mi := &file_main_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LoginReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LoginReq) ProtoMessage() {}

func (x *LoginReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_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 LoginReq.ProtoReflect.Descriptor instead.
func (*LoginReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{8}
}

func (x *LoginReq) GetEmail() string {
	if x != nil {
		return x.Email
	}
	return ""
}

func (x *LoginReq) GetPassword() string {
	if x != nil {
		return x.Password
	}
	return ""
}

type LoginRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	AccessToken   string                 `protobuf:"bytes,2,opt,name=accessToken,proto3" json:"accessToken,omitempty"`
	RefreshToken  string                 `protobuf:"bytes,3,opt,name=refreshToken,proto3" json:"refreshToken,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *LoginRsp) Reset() {
	*x = LoginRsp{}
	mi := &file_main_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LoginRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LoginRsp) ProtoMessage() {}

func (x *LoginRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[9]
	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 LoginRsp.ProtoReflect.Descriptor instead.
func (*LoginRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{9}
}

func (x *LoginRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *LoginRsp) GetAccessToken() string {
	if x != nil {
		return x.AccessToken
	}
	return ""
}

func (x *LoginRsp) GetRefreshToken() string {
	if x != nil {
		return x.RefreshToken
	}
	return ""
}

type RefreshReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	RefreshToken  string                 `protobuf:"bytes,1,opt,name=refreshToken,proto3" json:"refreshToken,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RefreshReq) Reset() {
	*x = RefreshReq{}
	mi := &file_main_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RefreshReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshReq) ProtoMessage() {}

func (x *RefreshReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[10]
	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 RefreshReq.ProtoReflect.Descriptor instead.
func (*RefreshReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{10}
}

func (x *RefreshReq) GetRefreshToken() string {
	if x != nil {
		return x.RefreshToken
	}
	return ""
}

type RefreshRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	AccessToken   string                 `protobuf:"bytes,2,opt,name=accessToken,proto3" json:"accessToken,omitempty"`
	RefreshToken  string                 `protobuf:"bytes,3,opt,name=refreshToken,proto3" json:"refreshToken,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RefreshRsp) Reset() {
	*x = RefreshRsp{}
	mi := &file_main_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RefreshRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshRsp) ProtoMessage() {}

func (x *RefreshRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[11]
	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 RefreshRsp.ProtoReflect.Descriptor instead.
func (*RefreshRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{11}
}

func (x *RefreshRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *RefreshRsp) GetAccessToken() string {
	if x != nil {
		return x.AccessToken
	}
	return ""
}

func (x *RefreshRsp) GetRefreshToken() string {
	if x != nil {
		return x.RefreshToken
	}
	return ""
}

type GetUsersReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetUsersReq) Reset() {
	*x = GetUsersReq{}
	mi := &file_main_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetUsersReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetUsersReq) ProtoMessage() {}

func (x *GetUsersReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[12]
	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 GetUsersReq.ProtoReflect.Descriptor instead.
func (*GetUsersReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{12}
}

type GetUsersRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	Users         []*User                `protobuf:"bytes,2,rep,name=users,proto3" json:"users,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetUsersRsp) Reset() {
	*x = GetUsersRsp{}
	mi := &file_main_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetUsersRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetUsersRsp) ProtoMessage() {}

func (x *GetUsersRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[13]
	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 GetUsersRsp.ProtoReflect.Descriptor instead.
func (*GetUsersRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{13}
}

func (x *GetUsersRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *GetUsersRsp) GetUsers() []*User {
	if x != nil {
		return x.Users
	}
	return nil
}

type User struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Username      string                 `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
	Email         string                 `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"`
	Roles         []string               `protobuf:"bytes,4,rep,name=roles,proto3" json:"roles,omitempty"`
	IsActive      bool                   `protobuf:"varint,5,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"`
	CreatedAt     *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *User) Reset() {
	*x = User{}
	mi := &file_main_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *User) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*User) ProtoMessage() {}

func (x *User) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[14]
	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 User.ProtoReflect.Descriptor instead.
func (*User) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{14}
}

func (x *User) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *User) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *User) GetEmail() string {
	if x != nil {
		return x.Email
	}
	return ""
}

func (x *User) GetRoles() []string {
	if x != nil {
		return x.Roles
	}
	return nil
}

func (x *User) GetIsActive() bool {
	if x != nil {
		return x.IsActive
	}
	return false
}

func (x *User) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

type GetUserByIdReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetUserByIdReq) Reset() {
	*x = GetUserByIdReq{}
	mi := &file_main_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetUserByIdReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetUserByIdReq) ProtoMessage() {}

func (x *GetUserByIdReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[15]
	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 GetUserByIdReq.ProtoReflect.Descriptor instead.
func (*GetUserByIdReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{15}
}

func (x *GetUserByIdReq) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type GetUserByIdRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	User          *User                  `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetUserByIdRsp) Reset() {
	*x = GetUserByIdRsp{}
	mi := &file_main_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetUserByIdRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetUserByIdRsp) ProtoMessage() {}

func (x *GetUserByIdRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[16]
	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 GetUserByIdRsp.ProtoReflect.Descriptor instead.
func (*GetUserByIdRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{16}
}

func (x *GetUserByIdRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *GetUserByIdRsp) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

type GetMeReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetMeReq) Reset() {
	*x = GetMeReq{}
	mi := &file_main_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetMeReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetMeReq) ProtoMessage() {}

func (x *GetMeReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[17]
	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 GetMeReq.ProtoReflect.Descriptor instead.
func (*GetMeReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{17}
}

type GetMeRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	User          *User                  `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetMeRsp) Reset() {
	*x = GetMeRsp{}
	mi := &file_main_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetMeRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetMeRsp) ProtoMessage() {}

func (x *GetMeRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[18]
	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 GetMeRsp.ProtoReflect.Descriptor instead.
func (*GetMeRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{18}
}

func (x *GetMeRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *GetMeRsp) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

type AddUserRoleReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Role          string                 `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddUserRoleReq) Reset() {
	*x = AddUserRoleReq{}
	mi := &file_main_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddUserRoleReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddUserRoleReq) ProtoMessage() {}

func (x *AddUserRoleReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[19]
	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 AddUserRoleReq.ProtoReflect.Descriptor instead.
func (*AddUserRoleReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{19}
}

func (x *AddUserRoleReq) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *AddUserRoleReq) GetRole() string {
	if x != nil {
		return x.Role
	}
	return ""
}

type AddUserRoleRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddUserRoleRsp) Reset() {
	*x = AddUserRoleRsp{}
	mi := &file_main_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddUserRoleRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddUserRoleRsp) ProtoMessage() {}

func (x *AddUserRoleRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[20]
	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 AddUserRoleRsp.ProtoReflect.Descriptor instead.
func (*AddUserRoleRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{20}
}

func (x *AddUserRoleRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type DeleteUserRoleReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Role          string                 `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteUserRoleReq) Reset() {
	*x = DeleteUserRoleReq{}
	mi := &file_main_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteUserRoleReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteUserRoleReq) ProtoMessage() {}

func (x *DeleteUserRoleReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[21]
	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 DeleteUserRoleReq.ProtoReflect.Descriptor instead.
func (*DeleteUserRoleReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{21}
}

func (x *DeleteUserRoleReq) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *DeleteUserRoleReq) GetRole() string {
	if x != nil {
		return x.Role
	}
	return ""
}

type DeleteUserRoleRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteUserRoleRsp) Reset() {
	*x = DeleteUserRoleRsp{}
	mi := &file_main_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteUserRoleRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteUserRoleRsp) ProtoMessage() {}

func (x *DeleteUserRoleRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[22]
	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 DeleteUserRoleRsp.ProtoReflect.Descriptor instead.
func (*DeleteUserRoleRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{22}
}

func (x *DeleteUserRoleRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type GetPermissionsReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetPermissionsReq) Reset() {
	*x = GetPermissionsReq{}
	mi := &file_main_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetPermissionsReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetPermissionsReq) ProtoMessage() {}

func (x *GetPermissionsReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[23]
	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 GetPermissionsReq.ProtoReflect.Descriptor instead.
func (*GetPermissionsReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{23}
}

type GetPermissionsRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	Permissions   []string               `protobuf:"bytes,2,rep,name=permissions,proto3" json:"permissions,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetPermissionsRsp) Reset() {
	*x = GetPermissionsRsp{}
	mi := &file_main_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetPermissionsRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetPermissionsRsp) ProtoMessage() {}

func (x *GetPermissionsRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[24]
	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 GetPermissionsRsp.ProtoReflect.Descriptor instead.
func (*GetPermissionsRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{24}
}

func (x *GetPermissionsRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *GetPermissionsRsp) GetPermissions() []string {
	if x != nil {
		return x.Permissions
	}
	return nil
}

type UploadFileReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Filename      string                 `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"`
	Data          []byte                 `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UploadFileReq) Reset() {
	*x = UploadFileReq{}
	mi := &file_main_proto_msgTypes[25]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UploadFileReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UploadFileReq) ProtoMessage() {}

func (x *UploadFileReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[25]
	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 UploadFileReq.ProtoReflect.Descriptor instead.
func (*UploadFileReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{25}
}

func (x *UploadFileReq) GetFilename() string {
	if x != nil {
		return x.Filename
	}
	return ""
}

func (x *UploadFileReq) GetData() []byte {
	if x != nil {
		return x.Data
	}
	return nil
}

type UploadFileRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	Filename      string                 `protobuf:"bytes,2,opt,name=filename,proto3" json:"filename,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UploadFileRsp) Reset() {
	*x = UploadFileRsp{}
	mi := &file_main_proto_msgTypes[26]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UploadFileRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UploadFileRsp) ProtoMessage() {}

func (x *UploadFileRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[26]
	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 UploadFileRsp.ProtoReflect.Descriptor instead.
func (*UploadFileRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{26}
}

func (x *UploadFileRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *UploadFileRsp) GetFilename() string {
	if x != nil {
		return x.Filename
	}
	return ""
}

type DownloadFileReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Filename      string                 `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DownloadFileReq) Reset() {
	*x = DownloadFileReq{}
	mi := &file_main_proto_msgTypes[27]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DownloadFileReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DownloadFileReq) ProtoMessage() {}

func (x *DownloadFileReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[27]
	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 DownloadFileReq.ProtoReflect.Descriptor instead.
func (*DownloadFileReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{27}
}

func (x *DownloadFileReq) GetFilename() string {
	if x != nil {
		return x.Filename
	}
	return ""
}

type AddScenarioReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddScenarioReq) Reset() {
	*x = AddScenarioReq{}
	mi := &file_main_proto_msgTypes[28]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddScenarioReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddScenarioReq) ProtoMessage() {}

func (x *AddScenarioReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[28]
	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 AddScenarioReq.ProtoReflect.Descriptor instead.
func (*AddScenarioReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{28}
}

func (x *AddScenarioReq) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

type AddScenarioRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	Id            int32                  `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddScenarioRsp) Reset() {
	*x = AddScenarioRsp{}
	mi := &file_main_proto_msgTypes[29]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddScenarioRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddScenarioRsp) ProtoMessage() {}

func (x *AddScenarioRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[29]
	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 AddScenarioRsp.ProtoReflect.Descriptor instead.
func (*AddScenarioRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{29}
}

func (x *AddScenarioRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *AddScenarioRsp) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type GetMyScenariosReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetMyScenariosReq) Reset() {
	*x = GetMyScenariosReq{}
	mi := &file_main_proto_msgTypes[30]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetMyScenariosReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetMyScenariosReq) ProtoMessage() {}

func (x *GetMyScenariosReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[30]
	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 GetMyScenariosReq.ProtoReflect.Descriptor instead.
func (*GetMyScenariosReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{30}
}

type GetMyScenariosRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	Scenarios     []*Scenario            `protobuf:"bytes,2,rep,name=scenarios,proto3" json:"scenarios,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetMyScenariosRsp) Reset() {
	*x = GetMyScenariosRsp{}
	mi := &file_main_proto_msgTypes[31]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetMyScenariosRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetMyScenariosRsp) ProtoMessage() {}

func (x *GetMyScenariosRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[31]
	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 GetMyScenariosRsp.ProtoReflect.Descriptor instead.
func (*GetMyScenariosRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{31}
}

func (x *GetMyScenariosRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *GetMyScenariosRsp) GetScenarios() []*Scenario {
	if x != nil {
		return x.Scenarios
	}
	return nil
}

type GetScenariosCatalogReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetScenariosCatalogReq) Reset() {
	*x = GetScenariosCatalogReq{}
	mi := &file_main_proto_msgTypes[32]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetScenariosCatalogReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetScenariosCatalogReq) ProtoMessage() {}

func (x *GetScenariosCatalogReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[32]
	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 GetScenariosCatalogReq.ProtoReflect.Descriptor instead.
func (*GetScenariosCatalogReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{32}
}

type GetScenariosCatalogRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	Scenarios     []*Scenario            `protobuf:"bytes,2,rep,name=scenarios,proto3" json:"scenarios,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetScenariosCatalogRsp) Reset() {
	*x = GetScenariosCatalogRsp{}
	mi := &file_main_proto_msgTypes[33]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetScenariosCatalogRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetScenariosCatalogRsp) ProtoMessage() {}

func (x *GetScenariosCatalogRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[33]
	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 GetScenariosCatalogRsp.ProtoReflect.Descriptor instead.
func (*GetScenariosCatalogRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{33}
}

func (x *GetScenariosCatalogRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *GetScenariosCatalogRsp) GetScenarios() []*Scenario {
	if x != nil {
		return x.Scenarios
	}
	return nil
}

type GetScenarioReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetScenarioReq) Reset() {
	*x = GetScenarioReq{}
	mi := &file_main_proto_msgTypes[34]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetScenarioReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetScenarioReq) ProtoMessage() {}

func (x *GetScenarioReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[34]
	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 GetScenarioReq.ProtoReflect.Descriptor instead.
func (*GetScenarioReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{34}
}

func (x *GetScenarioReq) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type GetScenarioRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	Scenario      *Scenario              `protobuf:"bytes,2,opt,name=scenario,proto3" json:"scenario,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetScenarioRsp) Reset() {
	*x = GetScenarioRsp{}
	mi := &file_main_proto_msgTypes[35]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetScenarioRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetScenarioRsp) ProtoMessage() {}

func (x *GetScenarioRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[35]
	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 GetScenarioRsp.ProtoReflect.Descriptor instead.
func (*GetScenarioRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{35}
}

func (x *GetScenarioRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *GetScenarioRsp) GetScenario() *Scenario {
	if x != nil {
		return x.Scenario
	}
	return nil
}

type Scenario struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Description   *string                `protobuf:"bytes,3,opt,name=description,proto3,oneof" json:"description,omitempty"`
	Image         *string                `protobuf:"bytes,4,opt,name=image,proto3,oneof" json:"image,omitempty"`
	Story         *Story                 `protobuf:"bytes,5,opt,name=story,proto3" json:"story,omitempty"`
	Status        string                 `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"`
	Author        *User                  `protobuf:"bytes,7,opt,name=author,proto3" json:"author,omitempty"`
	UpdatedAt     *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	CreatedAt     *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	PublishedAt   *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=published_at,json=publishedAt,proto3" json:"published_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Scenario) Reset() {
	*x = Scenario{}
	mi := &file_main_proto_msgTypes[36]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Scenario) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Scenario) ProtoMessage() {}

func (x *Scenario) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[36]
	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 Scenario.ProtoReflect.Descriptor instead.
func (*Scenario) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{36}
}

func (x *Scenario) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *Scenario) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Scenario) GetDescription() string {
	if x != nil && x.Description != nil {
		return *x.Description
	}
	return ""
}

func (x *Scenario) GetImage() string {
	if x != nil && x.Image != nil {
		return *x.Image
	}
	return ""
}

func (x *Scenario) GetStory() *Story {
	if x != nil {
		return x.Story
	}
	return nil
}

func (x *Scenario) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *Scenario) GetAuthor() *User {
	if x != nil {
		return x.Author
	}
	return nil
}

func (x *Scenario) GetUpdatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdatedAt
	}
	return nil
}

func (x *Scenario) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

func (x *Scenario) GetPublishedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.PublishedAt
	}
	return nil
}

type Story struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Places        []*Place               `protobuf:"bytes,1,rep,name=places,proto3" json:"places,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Story) Reset() {
	*x = Story{}
	mi := &file_main_proto_msgTypes[37]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Story) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Story) ProtoMessage() {}

func (x *Story) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[37]
	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 Story.ProtoReflect.Descriptor instead.
func (*Story) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{37}
}

func (x *Story) GetPlaces() []*Place {
	if x != nil {
		return x.Places
	}
	return nil
}

type Place struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Code          string                 `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"`
	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Text          string                 `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty"`
	Image         string                 `protobuf:"bytes,4,opt,name=image,proto3" json:"image,omitempty"`
	Hidden        bool                   `protobuf:"varint,5,opt,name=hidden,proto3" json:"hidden,omitempty"`
	Applications  []*Application         `protobuf:"bytes,6,rep,name=applications,proto3" json:"applications,omitempty"`
	Doors         []*Door                `protobuf:"bytes,7,rep,name=doors,proto3" json:"doors,omitempty"`
	Keys          []*Key                 `protobuf:"bytes,8,rep,name=keys,proto3" json:"keys,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Place) Reset() {
	*x = Place{}
	mi := &file_main_proto_msgTypes[38]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Place) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Place) ProtoMessage() {}

func (x *Place) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[38]
	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 Place.ProtoReflect.Descriptor instead.
func (*Place) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{38}
}

func (x *Place) GetCode() string {
	if x != nil {
		return x.Code
	}
	return ""
}

func (x *Place) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Place) GetText() string {
	if x != nil {
		return x.Text
	}
	return ""
}

func (x *Place) GetImage() string {
	if x != nil {
		return x.Image
	}
	return ""
}

func (x *Place) GetHidden() bool {
	if x != nil {
		return x.Hidden
	}
	return false
}

func (x *Place) GetApplications() []*Application {
	if x != nil {
		return x.Applications
	}
	return nil
}

func (x *Place) GetDoors() []*Door {
	if x != nil {
		return x.Doors
	}
	return nil
}

func (x *Place) GetKeys() []*Key {
	if x != nil {
		return x.Keys
	}
	return nil
}

type Application struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Image         string                 `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Application) Reset() {
	*x = Application{}
	mi := &file_main_proto_msgTypes[39]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Application) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Application) ProtoMessage() {}

func (x *Application) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[39]
	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 Application.ProtoReflect.Descriptor instead.
func (*Application) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{39}
}

func (x *Application) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Application) GetImage() string {
	if x != nil {
		return x.Image
	}
	return ""
}

type Door struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Code          string                 `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"`
	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Keys          []*Key                 `protobuf:"bytes,3,rep,name=keys,proto3" json:"keys,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Door) Reset() {
	*x = Door{}
	mi := &file_main_proto_msgTypes[40]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Door) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Door) ProtoMessage() {}

func (x *Door) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[40]
	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 Door.ProtoReflect.Descriptor instead.
func (*Door) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{40}
}

func (x *Door) GetCode() string {
	if x != nil {
		return x.Code
	}
	return ""
}

func (x *Door) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Door) GetKeys() []*Key {
	if x != nil {
		return x.Keys
	}
	return nil
}

type Key struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Key) Reset() {
	*x = Key{}
	mi := &file_main_proto_msgTypes[41]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Key) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Key) ProtoMessage() {}

func (x *Key) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[41]
	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 Key.ProtoReflect.Descriptor instead.
func (*Key) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{41}
}

func (x *Key) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

type UpdateScenarioReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Description   string                 `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	Image         string                 `protobuf:"bytes,4,opt,name=image,proto3" json:"image,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UpdateScenarioReq) Reset() {
	*x = UpdateScenarioReq{}
	mi := &file_main_proto_msgTypes[42]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdateScenarioReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateScenarioReq) ProtoMessage() {}

func (x *UpdateScenarioReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[42]
	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 UpdateScenarioReq.ProtoReflect.Descriptor instead.
func (*UpdateScenarioReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{42}
}

func (x *UpdateScenarioReq) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *UpdateScenarioReq) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *UpdateScenarioReq) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *UpdateScenarioReq) GetImage() string {
	if x != nil {
		return x.Image
	}
	return ""
}

type UpdateScenarioRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UpdateScenarioRsp) Reset() {
	*x = UpdateScenarioRsp{}
	mi := &file_main_proto_msgTypes[43]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdateScenarioRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateScenarioRsp) ProtoMessage() {}

func (x *UpdateScenarioRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[43]
	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 UpdateScenarioRsp.ProtoReflect.Descriptor instead.
func (*UpdateScenarioRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{43}
}

func (x *UpdateScenarioRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type PublicScenarioReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PublicScenarioReq) Reset() {
	*x = PublicScenarioReq{}
	mi := &file_main_proto_msgTypes[44]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PublicScenarioReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PublicScenarioReq) ProtoMessage() {}

func (x *PublicScenarioReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[44]
	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 PublicScenarioReq.ProtoReflect.Descriptor instead.
func (*PublicScenarioReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{44}
}

func (x *PublicScenarioReq) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type PublicScenarioRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PublicScenarioRsp) Reset() {
	*x = PublicScenarioRsp{}
	mi := &file_main_proto_msgTypes[45]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PublicScenarioRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PublicScenarioRsp) ProtoMessage() {}

func (x *PublicScenarioRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[45]
	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 PublicScenarioRsp.ProtoReflect.Descriptor instead.
func (*PublicScenarioRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{45}
}

func (x *PublicScenarioRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type DraftScenarioReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DraftScenarioReq) Reset() {
	*x = DraftScenarioReq{}
	mi := &file_main_proto_msgTypes[46]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DraftScenarioReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DraftScenarioReq) ProtoMessage() {}

func (x *DraftScenarioReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[46]
	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 DraftScenarioReq.ProtoReflect.Descriptor instead.
func (*DraftScenarioReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{46}
}

func (x *DraftScenarioReq) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type DraftScenarioRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DraftScenarioRsp) Reset() {
	*x = DraftScenarioRsp{}
	mi := &file_main_proto_msgTypes[47]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DraftScenarioRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DraftScenarioRsp) ProtoMessage() {}

func (x *DraftScenarioRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[47]
	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 DraftScenarioRsp.ProtoReflect.Descriptor instead.
func (*DraftScenarioRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{47}
}

func (x *DraftScenarioRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type DeleteScenarioReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteScenarioReq) Reset() {
	*x = DeleteScenarioReq{}
	mi := &file_main_proto_msgTypes[48]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteScenarioReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteScenarioReq) ProtoMessage() {}

func (x *DeleteScenarioReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[48]
	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 DeleteScenarioReq.ProtoReflect.Descriptor instead.
func (*DeleteScenarioReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{48}
}

func (x *DeleteScenarioReq) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type DeleteScenarioRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteScenarioRsp) Reset() {
	*x = DeleteScenarioRsp{}
	mi := &file_main_proto_msgTypes[49]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteScenarioRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteScenarioRsp) ProtoMessage() {}

func (x *DeleteScenarioRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[49]
	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 DeleteScenarioRsp.ProtoReflect.Descriptor instead.
func (*DeleteScenarioRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{49}
}

func (x *DeleteScenarioRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type AddScenarioPlaceReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Place         *Place                 `protobuf:"bytes,2,opt,name=place,proto3" json:"place,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddScenarioPlaceReq) Reset() {
	*x = AddScenarioPlaceReq{}
	mi := &file_main_proto_msgTypes[50]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddScenarioPlaceReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddScenarioPlaceReq) ProtoMessage() {}

func (x *AddScenarioPlaceReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[50]
	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 AddScenarioPlaceReq.ProtoReflect.Descriptor instead.
func (*AddScenarioPlaceReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{50}
}

func (x *AddScenarioPlaceReq) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *AddScenarioPlaceReq) GetPlace() *Place {
	if x != nil {
		return x.Place
	}
	return nil
}

type AddScenarioPlaceRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddScenarioPlaceRsp) Reset() {
	*x = AddScenarioPlaceRsp{}
	mi := &file_main_proto_msgTypes[51]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddScenarioPlaceRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddScenarioPlaceRsp) ProtoMessage() {}

func (x *AddScenarioPlaceRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[51]
	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 AddScenarioPlaceRsp.ProtoReflect.Descriptor instead.
func (*AddScenarioPlaceRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{51}
}

func (x *AddScenarioPlaceRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type UpdateScenarioPlaceReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Code          string                 `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
	Place         *Place                 `protobuf:"bytes,3,opt,name=place,proto3" json:"place,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UpdateScenarioPlaceReq) Reset() {
	*x = UpdateScenarioPlaceReq{}
	mi := &file_main_proto_msgTypes[52]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdateScenarioPlaceReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateScenarioPlaceReq) ProtoMessage() {}

func (x *UpdateScenarioPlaceReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[52]
	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 UpdateScenarioPlaceReq.ProtoReflect.Descriptor instead.
func (*UpdateScenarioPlaceReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{52}
}

func (x *UpdateScenarioPlaceReq) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *UpdateScenarioPlaceReq) GetCode() string {
	if x != nil {
		return x.Code
	}
	return ""
}

func (x *UpdateScenarioPlaceReq) GetPlace() *Place {
	if x != nil {
		return x.Place
	}
	return nil
}

type UpdateScenarioPlaceRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UpdateScenarioPlaceRsp) Reset() {
	*x = UpdateScenarioPlaceRsp{}
	mi := &file_main_proto_msgTypes[53]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdateScenarioPlaceRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateScenarioPlaceRsp) ProtoMessage() {}

func (x *UpdateScenarioPlaceRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[53]
	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 UpdateScenarioPlaceRsp.ProtoReflect.Descriptor instead.
func (*UpdateScenarioPlaceRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{53}
}

func (x *UpdateScenarioPlaceRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type DeleteScenarioPlaceReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Code          string                 `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteScenarioPlaceReq) Reset() {
	*x = DeleteScenarioPlaceReq{}
	mi := &file_main_proto_msgTypes[54]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteScenarioPlaceReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteScenarioPlaceReq) ProtoMessage() {}

func (x *DeleteScenarioPlaceReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[54]
	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 DeleteScenarioPlaceReq.ProtoReflect.Descriptor instead.
func (*DeleteScenarioPlaceReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{54}
}

func (x *DeleteScenarioPlaceReq) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *DeleteScenarioPlaceReq) GetCode() string {
	if x != nil {
		return x.Code
	}
	return ""
}

type DeleteScenarioPlaceRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteScenarioPlaceRsp) Reset() {
	*x = DeleteScenarioPlaceRsp{}
	mi := &file_main_proto_msgTypes[55]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteScenarioPlaceRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteScenarioPlaceRsp) ProtoMessage() {}

func (x *DeleteScenarioPlaceRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[55]
	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 DeleteScenarioPlaceRsp.ProtoReflect.Descriptor instead.
func (*DeleteScenarioPlaceRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{55}
}

func (x *DeleteScenarioPlaceRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type AddGameReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Description   string                 `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	StartAt       *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=start_at,json=startAt,proto3" json:"start_at,omitempty"`
	ScenarioId    int32                  `protobuf:"varint,4,opt,name=scenario_id,json=scenarioId,proto3" json:"scenario_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddGameReq) Reset() {
	*x = AddGameReq{}
	mi := &file_main_proto_msgTypes[56]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddGameReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddGameReq) ProtoMessage() {}

func (x *AddGameReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[56]
	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 AddGameReq.ProtoReflect.Descriptor instead.
func (*AddGameReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{56}
}

func (x *AddGameReq) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *AddGameReq) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *AddGameReq) GetStartAt() *timestamppb.Timestamp {
	if x != nil {
		return x.StartAt
	}
	return nil
}

func (x *AddGameReq) GetScenarioId() int32 {
	if x != nil {
		return x.ScenarioId
	}
	return 0
}

type AddGameRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	Id            int32                  `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddGameRsp) Reset() {
	*x = AddGameRsp{}
	mi := &file_main_proto_msgTypes[57]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddGameRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddGameRsp) ProtoMessage() {}

func (x *AddGameRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[57]
	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 AddGameRsp.ProtoReflect.Descriptor instead.
func (*AddGameRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{57}
}

func (x *AddGameRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *AddGameRsp) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type GetGamesReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetGamesReq) Reset() {
	*x = GetGamesReq{}
	mi := &file_main_proto_msgTypes[58]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetGamesReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetGamesReq) ProtoMessage() {}

func (x *GetGamesReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[58]
	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 GetGamesReq.ProtoReflect.Descriptor instead.
func (*GetGamesReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{58}
}

type GetGamesRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	Games         []*Game                `protobuf:"bytes,2,rep,name=games,proto3" json:"games,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetGamesRsp) Reset() {
	*x = GetGamesRsp{}
	mi := &file_main_proto_msgTypes[59]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetGamesRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetGamesRsp) ProtoMessage() {}

func (x *GetGamesRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[59]
	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 GetGamesRsp.ProtoReflect.Descriptor instead.
func (*GetGamesRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{59}
}

func (x *GetGamesRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *GetGamesRsp) GetGames() []*Game {
	if x != nil {
		return x.Games
	}
	return nil
}

type Game struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Description   string                 `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	StartAt       *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=start_at,json=startAt,proto3" json:"start_at,omitempty"`
	Status        string                 `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"`
	Scenario      *Scenario              `protobuf:"bytes,6,opt,name=scenario,proto3" json:"scenario,omitempty"`
	Teams         []*Team                `protobuf:"bytes,7,rep,name=teams,proto3" json:"teams,omitempty"`
	StartedAt     *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=started_at,json=startedAt,proto3,oneof" json:"started_at,omitempty"`
	EndedAt       *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=ended_at,json=endedAt,proto3,oneof" json:"ended_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Game) Reset() {
	*x = Game{}
	mi := &file_main_proto_msgTypes[60]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Game) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Game) ProtoMessage() {}

func (x *Game) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[60]
	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 Game.ProtoReflect.Descriptor instead.
func (*Game) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{60}
}

func (x *Game) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *Game) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Game) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *Game) GetStartAt() *timestamppb.Timestamp {
	if x != nil {
		return x.StartAt
	}
	return nil
}

func (x *Game) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *Game) GetScenario() *Scenario {
	if x != nil {
		return x.Scenario
	}
	return nil
}

func (x *Game) GetTeams() []*Team {
	if x != nil {
		return x.Teams
	}
	return nil
}

func (x *Game) GetStartedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.StartedAt
	}
	return nil
}

func (x *Game) GetEndedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.EndedAt
	}
	return nil
}

type Team struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Status        string                 `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
	Password      string                 `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"`
	ActionsCount  int32                  `protobuf:"varint,5,opt,name=actions_count,json=actionsCount,proto3" json:"actions_count,omitempty"`
	Applications  []*Application         `protobuf:"bytes,6,rep,name=applications,proto3" json:"applications,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Team) Reset() {
	*x = Team{}
	mi := &file_main_proto_msgTypes[61]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Team) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Team) ProtoMessage() {}

func (x *Team) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[61]
	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 Team.ProtoReflect.Descriptor instead.
func (*Team) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{61}
}

func (x *Team) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *Team) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Team) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *Team) GetPassword() string {
	if x != nil {
		return x.Password
	}
	return ""
}

func (x *Team) GetActionsCount() int32 {
	if x != nil {
		return x.ActionsCount
	}
	return 0
}

func (x *Team) GetApplications() []*Application {
	if x != nil {
		return x.Applications
	}
	return nil
}

type GetGameReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetGameReq) Reset() {
	*x = GetGameReq{}
	mi := &file_main_proto_msgTypes[62]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetGameReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetGameReq) ProtoMessage() {}

func (x *GetGameReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[62]
	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 GetGameReq.ProtoReflect.Descriptor instead.
func (*GetGameReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{62}
}

func (x *GetGameReq) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type GetGameRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	Game          *Game                  `protobuf:"bytes,2,opt,name=game,proto3" json:"game,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetGameRsp) Reset() {
	*x = GetGameRsp{}
	mi := &file_main_proto_msgTypes[63]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetGameRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetGameRsp) ProtoMessage() {}

func (x *GetGameRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[63]
	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 GetGameRsp.ProtoReflect.Descriptor instead.
func (*GetGameRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{63}
}

func (x *GetGameRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *GetGameRsp) GetGame() *Game {
	if x != nil {
		return x.Game
	}
	return nil
}

type UpdateGameReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Description   string                 `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	StartAt       *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=start_at,json=startAt,proto3" json:"start_at,omitempty"`
	ScenarioId    int32                  `protobuf:"varint,5,opt,name=scenario_id,json=scenarioId,proto3" json:"scenario_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UpdateGameReq) Reset() {
	*x = UpdateGameReq{}
	mi := &file_main_proto_msgTypes[64]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdateGameReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateGameReq) ProtoMessage() {}

func (x *UpdateGameReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[64]
	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 UpdateGameReq.ProtoReflect.Descriptor instead.
func (*UpdateGameReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{64}
}

func (x *UpdateGameReq) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *UpdateGameReq) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *UpdateGameReq) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *UpdateGameReq) GetStartAt() *timestamppb.Timestamp {
	if x != nil {
		return x.StartAt
	}
	return nil
}

func (x *UpdateGameReq) GetScenarioId() int32 {
	if x != nil {
		return x.ScenarioId
	}
	return 0
}

type UpdateGameRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UpdateGameRsp) Reset() {
	*x = UpdateGameRsp{}
	mi := &file_main_proto_msgTypes[65]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdateGameRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateGameRsp) ProtoMessage() {}

func (x *UpdateGameRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[65]
	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 UpdateGameRsp.ProtoReflect.Descriptor instead.
func (*UpdateGameRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{65}
}

func (x *UpdateGameRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type StartGameReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StartGameReq) Reset() {
	*x = StartGameReq{}
	mi := &file_main_proto_msgTypes[66]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *StartGameReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StartGameReq) ProtoMessage() {}

func (x *StartGameReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[66]
	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 StartGameReq.ProtoReflect.Descriptor instead.
func (*StartGameReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{66}
}

func (x *StartGameReq) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type StartGameRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StartGameRsp) Reset() {
	*x = StartGameRsp{}
	mi := &file_main_proto_msgTypes[67]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *StartGameRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StartGameRsp) ProtoMessage() {}

func (x *StartGameRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[67]
	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 StartGameRsp.ProtoReflect.Descriptor instead.
func (*StartGameRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{67}
}

func (x *StartGameRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type PauseGameReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PauseGameReq) Reset() {
	*x = PauseGameReq{}
	mi := &file_main_proto_msgTypes[68]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PauseGameReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PauseGameReq) ProtoMessage() {}

func (x *PauseGameReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[68]
	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 PauseGameReq.ProtoReflect.Descriptor instead.
func (*PauseGameReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{68}
}

func (x *PauseGameReq) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type PauseGameRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PauseGameRsp) Reset() {
	*x = PauseGameRsp{}
	mi := &file_main_proto_msgTypes[69]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PauseGameRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PauseGameRsp) ProtoMessage() {}

func (x *PauseGameRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[69]
	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 PauseGameRsp.ProtoReflect.Descriptor instead.
func (*PauseGameRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{69}
}

func (x *PauseGameRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type FinishGameReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FinishGameReq) Reset() {
	*x = FinishGameReq{}
	mi := &file_main_proto_msgTypes[70]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FinishGameReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FinishGameReq) ProtoMessage() {}

func (x *FinishGameReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[70]
	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 FinishGameReq.ProtoReflect.Descriptor instead.
func (*FinishGameReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{70}
}

func (x *FinishGameReq) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type FinishGameRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FinishGameRsp) Reset() {
	*x = FinishGameRsp{}
	mi := &file_main_proto_msgTypes[71]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FinishGameRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FinishGameRsp) ProtoMessage() {}

func (x *FinishGameRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[71]
	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 FinishGameRsp.ProtoReflect.Descriptor instead.
func (*FinishGameRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{71}
}

func (x *FinishGameRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type ResetGameReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ResetGameReq) Reset() {
	*x = ResetGameReq{}
	mi := &file_main_proto_msgTypes[72]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResetGameReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResetGameReq) ProtoMessage() {}

func (x *ResetGameReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[72]
	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 ResetGameReq.ProtoReflect.Descriptor instead.
func (*ResetGameReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{72}
}

func (x *ResetGameReq) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type ResetGameRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ResetGameRsp) Reset() {
	*x = ResetGameRsp{}
	mi := &file_main_proto_msgTypes[73]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResetGameRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResetGameRsp) ProtoMessage() {}

func (x *ResetGameRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[73]
	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 ResetGameRsp.ProtoReflect.Descriptor instead.
func (*ResetGameRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{73}
}

func (x *ResetGameRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type DeleteGameReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteGameReq) Reset() {
	*x = DeleteGameReq{}
	mi := &file_main_proto_msgTypes[74]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteGameReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteGameReq) ProtoMessage() {}

func (x *DeleteGameReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[74]
	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 DeleteGameReq.ProtoReflect.Descriptor instead.
func (*DeleteGameReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{74}
}

func (x *DeleteGameReq) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type DeleteGameRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteGameRsp) Reset() {
	*x = DeleteGameRsp{}
	mi := &file_main_proto_msgTypes[75]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteGameRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteGameRsp) ProtoMessage() {}

func (x *DeleteGameRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[75]
	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 DeleteGameRsp.ProtoReflect.Descriptor instead.
func (*DeleteGameRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{75}
}

func (x *DeleteGameRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type AddTeamReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	GameId        int32                  `protobuf:"varint,1,opt,name=game_id,json=gameId,proto3" json:"game_id,omitempty"`
	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddTeamReq) Reset() {
	*x = AddTeamReq{}
	mi := &file_main_proto_msgTypes[76]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddTeamReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddTeamReq) ProtoMessage() {}

func (x *AddTeamReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[76]
	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 AddTeamReq.ProtoReflect.Descriptor instead.
func (*AddTeamReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{76}
}

func (x *AddTeamReq) GetGameId() int32 {
	if x != nil {
		return x.GameId
	}
	return 0
}

func (x *AddTeamReq) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

type AddTeamRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	Id            int32                  `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"`
	Password      string                 `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddTeamRsp) Reset() {
	*x = AddTeamRsp{}
	mi := &file_main_proto_msgTypes[77]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddTeamRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddTeamRsp) ProtoMessage() {}

func (x *AddTeamRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[77]
	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 AddTeamRsp.ProtoReflect.Descriptor instead.
func (*AddTeamRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{77}
}

func (x *AddTeamRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *AddTeamRsp) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *AddTeamRsp) GetPassword() string {
	if x != nil {
		return x.Password
	}
	return ""
}

type UpdateTeamReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UpdateTeamReq) Reset() {
	*x = UpdateTeamReq{}
	mi := &file_main_proto_msgTypes[78]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdateTeamReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateTeamReq) ProtoMessage() {}

func (x *UpdateTeamReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[78]
	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 UpdateTeamReq.ProtoReflect.Descriptor instead.
func (*UpdateTeamReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{78}
}

func (x *UpdateTeamReq) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *UpdateTeamReq) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

type UpdateTeamRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UpdateTeamRsp) Reset() {
	*x = UpdateTeamRsp{}
	mi := &file_main_proto_msgTypes[79]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdateTeamRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateTeamRsp) ProtoMessage() {}

func (x *UpdateTeamRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[79]
	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 UpdateTeamRsp.ProtoReflect.Descriptor instead.
func (*UpdateTeamRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{79}
}

func (x *UpdateTeamRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type DeleteTeamReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteTeamReq) Reset() {
	*x = DeleteTeamReq{}
	mi := &file_main_proto_msgTypes[80]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteTeamReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteTeamReq) ProtoMessage() {}

func (x *DeleteTeamReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[80]
	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 DeleteTeamReq.ProtoReflect.Descriptor instead.
func (*DeleteTeamReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{80}
}

func (x *DeleteTeamReq) GetId() int64 {
	if x != nil {
		return x.Id
	}
	return 0
}

type DeleteTeamRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteTeamRsp) Reset() {
	*x = DeleteTeamRsp{}
	mi := &file_main_proto_msgTypes[81]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteTeamRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteTeamRsp) ProtoMessage() {}

func (x *DeleteTeamRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[81]
	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 DeleteTeamRsp.ProtoReflect.Descriptor instead.
func (*DeleteTeamRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{81}
}

func (x *DeleteTeamRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type GiveTeamApplicationsReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GiveTeamApplicationsReq) Reset() {
	*x = GiveTeamApplicationsReq{}
	mi := &file_main_proto_msgTypes[82]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GiveTeamApplicationsReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GiveTeamApplicationsReq) ProtoMessage() {}

func (x *GiveTeamApplicationsReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[82]
	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 GiveTeamApplicationsReq.ProtoReflect.Descriptor instead.
func (*GiveTeamApplicationsReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{82}
}

func (x *GiveTeamApplicationsReq) GetId() int64 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *GiveTeamApplicationsReq) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

type GiveTeamApplicationsRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GiveTeamApplicationsRsp) Reset() {
	*x = GiveTeamApplicationsRsp{}
	mi := &file_main_proto_msgTypes[83]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GiveTeamApplicationsRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GiveTeamApplicationsRsp) ProtoMessage() {}

func (x *GiveTeamApplicationsRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[83]
	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 GiveTeamApplicationsRsp.ProtoReflect.Descriptor instead.
func (*GiveTeamApplicationsRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{83}
}

func (x *GiveTeamApplicationsRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type GetTeamStoryReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Password      string                 `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetTeamStoryReq) Reset() {
	*x = GetTeamStoryReq{}
	mi := &file_main_proto_msgTypes[84]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetTeamStoryReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetTeamStoryReq) ProtoMessage() {}

func (x *GetTeamStoryReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[84]
	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 GetTeamStoryReq.ProtoReflect.Descriptor instead.
func (*GetTeamStoryReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{84}
}

func (x *GetTeamStoryReq) GetId() int64 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *GetTeamStoryReq) GetPassword() string {
	if x != nil {
		return x.Password
	}
	return ""
}

type GetTeamStoryRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	Story         *Story                 `protobuf:"bytes,2,opt,name=story,proto3" json:"story,omitempty"`
	Game          *Game                  `protobuf:"bytes,3,opt,name=game,proto3" json:"game,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetTeamStoryRsp) Reset() {
	*x = GetTeamStoryRsp{}
	mi := &file_main_proto_msgTypes[85]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetTeamStoryRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetTeamStoryRsp) ProtoMessage() {}

func (x *GetTeamStoryRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[85]
	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 GetTeamStoryRsp.ProtoReflect.Descriptor instead.
func (*GetTeamStoryRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{85}
}

func (x *GetTeamStoryRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *GetTeamStoryRsp) GetStory() *Story {
	if x != nil {
		return x.Story
	}
	return nil
}

func (x *GetTeamStoryRsp) GetGame() *Game {
	if x != nil {
		return x.Game
	}
	return nil
}

type AddTeamActionReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Password      string                 `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
	Code          string                 `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddTeamActionReq) Reset() {
	*x = AddTeamActionReq{}
	mi := &file_main_proto_msgTypes[86]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddTeamActionReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddTeamActionReq) ProtoMessage() {}

func (x *AddTeamActionReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[86]
	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 AddTeamActionReq.ProtoReflect.Descriptor instead.
func (*AddTeamActionReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{86}
}

func (x *AddTeamActionReq) GetId() int64 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *AddTeamActionReq) GetPassword() string {
	if x != nil {
		return x.Password
	}
	return ""
}

func (x *AddTeamActionReq) GetCode() string {
	if x != nil {
		return x.Code
	}
	return ""
}

type AddTeamActionRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddTeamActionRsp) Reset() {
	*x = AddTeamActionRsp{}
	mi := &file_main_proto_msgTypes[87]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddTeamActionRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddTeamActionRsp) ProtoMessage() {}

func (x *AddTeamActionRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[87]
	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 AddTeamActionRsp.ProtoReflect.Descriptor instead.
func (*AddTeamActionRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{87}
}

func (x *AddTeamActionRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type DeleteLastTeamActionReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int64                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteLastTeamActionReq) Reset() {
	*x = DeleteLastTeamActionReq{}
	mi := &file_main_proto_msgTypes[88]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteLastTeamActionReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteLastTeamActionReq) ProtoMessage() {}

func (x *DeleteLastTeamActionReq) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[88]
	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 DeleteLastTeamActionReq.ProtoReflect.Descriptor instead.
func (*DeleteLastTeamActionReq) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{88}
}

func (x *DeleteLastTeamActionReq) GetId() int64 {
	if x != nil {
		return x.Id
	}
	return 0
}

type DeleteLastTeamActionRsp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Error         string                 `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteLastTeamActionRsp) Reset() {
	*x = DeleteLastTeamActionRsp{}
	mi := &file_main_proto_msgTypes[89]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteLastTeamActionRsp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteLastTeamActionRsp) ProtoMessage() {}

func (x *DeleteLastTeamActionRsp) ProtoReflect() protoreflect.Message {
	mi := &file_main_proto_msgTypes[89]
	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 DeleteLastTeamActionRsp.ProtoReflect.Descriptor instead.
func (*DeleteLastTeamActionRsp) Descriptor() ([]byte, []int) {
	return file_main_proto_rawDescGZIP(), []int{89}
}

func (x *DeleteLastTeamActionRsp) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

var File_main_proto protoreflect.FileDescriptor

const file_main_proto_rawDesc = "" +
	"\n" +
	"\n" +
	"main.proto\x12\x1ecrabs.evening_detective_server\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x19google/api/httpbody.proto\"\t\n" +
	"\aPingReq\"\t\n" +
	"\aPingRsp\"\x1d\n" +
	"\aEchoReq\x12\x12\n" +
	"\x04text\x18\x01 \x01(\tR\x04text\"\x1d\n" +
	"\aEchoRsp\x12\x12\n" +
	"\x04text\x18\x01 \x01(\tR\x04text\"=\n" +
	"\tSignupReq\x12\x1a\n" +
	"\busername\x18\x01 \x01(\tR\busername\x12\x14\n" +
	"\x05email\x18\x02 \x01(\tR\x05email\"!\n" +
	"\tSignupRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\"*\n" +
	"\x12RefreshPasswordReq\x12\x14\n" +
	"\x05email\x18\x01 \x01(\tR\x05email\"*\n" +
	"\x12RefreshPasswordRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\"<\n" +
	"\bLoginReq\x12\x14\n" +
	"\x05email\x18\x01 \x01(\tR\x05email\x12\x1a\n" +
	"\bpassword\x18\x02 \x01(\tR\bpassword\"f\n" +
	"\bLoginRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\x12 \n" +
	"\vaccessToken\x18\x02 \x01(\tR\vaccessToken\x12\"\n" +
	"\frefreshToken\x18\x03 \x01(\tR\frefreshToken\"0\n" +
	"\n" +
	"RefreshReq\x12\"\n" +
	"\frefreshToken\x18\x01 \x01(\tR\frefreshToken\"h\n" +
	"\n" +
	"RefreshRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\x12 \n" +
	"\vaccessToken\x18\x02 \x01(\tR\vaccessToken\x12\"\n" +
	"\frefreshToken\x18\x03 \x01(\tR\frefreshToken\"\r\n" +
	"\vGetUsersReq\"_\n" +
	"\vGetUsersRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\x12:\n" +
	"\x05users\x18\x02 \x03(\v2$.crabs.evening_detective_server.UserR\x05users\"\xb6\x01\n" +
	"\x04User\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\x12\x1a\n" +
	"\busername\x18\x02 \x01(\tR\busername\x12\x14\n" +
	"\x05email\x18\x03 \x01(\tR\x05email\x12\x14\n" +
	"\x05roles\x18\x04 \x03(\tR\x05roles\x12\x1b\n" +
	"\tis_active\x18\x05 \x01(\bR\bisActive\x129\n" +
	"\n" +
	"created_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\" \n" +
	"\x0eGetUserByIdReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\"`\n" +
	"\x0eGetUserByIdRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\x128\n" +
	"\x04user\x18\x02 \x01(\v2$.crabs.evening_detective_server.UserR\x04user\"\n" +
	"\n" +
	"\bGetMeReq\"Z\n" +
	"\bGetMeRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\x128\n" +
	"\x04user\x18\x02 \x01(\v2$.crabs.evening_detective_server.UserR\x04user\"4\n" +
	"\x0eAddUserRoleReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\x12\x12\n" +
	"\x04role\x18\x02 \x01(\tR\x04role\"&\n" +
	"\x0eAddUserRoleRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\"7\n" +
	"\x11DeleteUserRoleReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\x12\x12\n" +
	"\x04role\x18\x02 \x01(\tR\x04role\")\n" +
	"\x11DeleteUserRoleRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\"\x13\n" +
	"\x11GetPermissionsReq\"K\n" +
	"\x11GetPermissionsRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\x12 \n" +
	"\vpermissions\x18\x02 \x03(\tR\vpermissions\"?\n" +
	"\rUploadFileReq\x12\x1a\n" +
	"\bfilename\x18\x01 \x01(\tR\bfilename\x12\x12\n" +
	"\x04data\x18\x02 \x01(\fR\x04data\"A\n" +
	"\rUploadFileRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\x12\x1a\n" +
	"\bfilename\x18\x02 \x01(\tR\bfilename\"-\n" +
	"\x0fDownloadFileReq\x12\x1a\n" +
	"\bfilename\x18\x01 \x01(\tR\bfilename\"$\n" +
	"\x0eAddScenarioReq\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\"6\n" +
	"\x0eAddScenarioRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\x12\x0e\n" +
	"\x02id\x18\x02 \x01(\x05R\x02id\"\x13\n" +
	"\x11GetMyScenariosReq\"q\n" +
	"\x11GetMyScenariosRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\x12F\n" +
	"\tscenarios\x18\x02 \x03(\v2(.crabs.evening_detective_server.ScenarioR\tscenarios\"\x18\n" +
	"\x16GetScenariosCatalogReq\"v\n" +
	"\x16GetScenariosCatalogRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\x12F\n" +
	"\tscenarios\x18\x02 \x03(\v2(.crabs.evening_detective_server.ScenarioR\tscenarios\" \n" +
	"\x0eGetScenarioReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\"l\n" +
	"\x0eGetScenarioRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\x12D\n" +
	"\bscenario\x18\x02 \x01(\v2(.crabs.evening_detective_server.ScenarioR\bscenario\"\xd2\x03\n" +
	"\bScenario\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\x12%\n" +
	"\vdescription\x18\x03 \x01(\tH\x00R\vdescription\x88\x01\x01\x12\x19\n" +
	"\x05image\x18\x04 \x01(\tH\x01R\x05image\x88\x01\x01\x12;\n" +
	"\x05story\x18\x05 \x01(\v2%.crabs.evening_detective_server.StoryR\x05story\x12\x16\n" +
	"\x06status\x18\x06 \x01(\tR\x06status\x12<\n" +
	"\x06author\x18\a \x01(\v2$.crabs.evening_detective_server.UserR\x06author\x129\n" +
	"\n" +
	"updated_at\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\x129\n" +
	"\n" +
	"created_at\x18\t \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12=\n" +
	"\fpublished_at\x18\n" +
	" \x01(\v2\x1a.google.protobuf.TimestampR\vpublishedAtB\x0e\n" +
	"\f_descriptionB\b\n" +
	"\x06_image\"F\n" +
	"\x05Story\x12=\n" +
	"\x06places\x18\x01 \x03(\v2%.crabs.evening_detective_server.PlaceR\x06places\"\xb7\x02\n" +
	"\x05Place\x12\x12\n" +
	"\x04code\x18\x01 \x01(\tR\x04code\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\x12\x12\n" +
	"\x04text\x18\x03 \x01(\tR\x04text\x12\x14\n" +
	"\x05image\x18\x04 \x01(\tR\x05image\x12\x16\n" +
	"\x06hidden\x18\x05 \x01(\bR\x06hidden\x12O\n" +
	"\fapplications\x18\x06 \x03(\v2+.crabs.evening_detective_server.ApplicationR\fapplications\x12:\n" +
	"\x05doors\x18\a \x03(\v2$.crabs.evening_detective_server.DoorR\x05doors\x127\n" +
	"\x04keys\x18\b \x03(\v2#.crabs.evening_detective_server.KeyR\x04keys\"7\n" +
	"\vApplication\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" +
	"\x05image\x18\x02 \x01(\tR\x05image\"g\n" +
	"\x04Door\x12\x12\n" +
	"\x04code\x18\x01 \x01(\tR\x04code\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\x127\n" +
	"\x04keys\x18\x03 \x03(\v2#.crabs.evening_detective_server.KeyR\x04keys\"\x19\n" +
	"\x03Key\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\"o\n" +
	"\x11UpdateScenarioReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\x12 \n" +
	"\vdescription\x18\x03 \x01(\tR\vdescription\x12\x14\n" +
	"\x05image\x18\x04 \x01(\tR\x05image\")\n" +
	"\x11UpdateScenarioRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\"#\n" +
	"\x11PublicScenarioReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\")\n" +
	"\x11PublicScenarioRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\"\"\n" +
	"\x10DraftScenarioReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\"(\n" +
	"\x10DraftScenarioRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\"#\n" +
	"\x11DeleteScenarioReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\")\n" +
	"\x11DeleteScenarioRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\"b\n" +
	"\x13AddScenarioPlaceReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\x12;\n" +
	"\x05place\x18\x02 \x01(\v2%.crabs.evening_detective_server.PlaceR\x05place\"+\n" +
	"\x13AddScenarioPlaceRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\"y\n" +
	"\x16UpdateScenarioPlaceReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\x12\x12\n" +
	"\x04code\x18\x02 \x01(\tR\x04code\x12;\n" +
	"\x05place\x18\x03 \x01(\v2%.crabs.evening_detective_server.PlaceR\x05place\".\n" +
	"\x16UpdateScenarioPlaceRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\"<\n" +
	"\x16DeleteScenarioPlaceReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\x12\x12\n" +
	"\x04code\x18\x02 \x01(\tR\x04code\".\n" +
	"\x16DeleteScenarioPlaceRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\"\x9a\x01\n" +
	"\n" +
	"AddGameReq\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12 \n" +
	"\vdescription\x18\x02 \x01(\tR\vdescription\x125\n" +
	"\bstart_at\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\astartAt\x12\x1f\n" +
	"\vscenario_id\x18\x04 \x01(\x05R\n" +
	"scenarioId\"2\n" +
	"\n" +
	"AddGameRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\x12\x0e\n" +
	"\x02id\x18\x02 \x01(\x05R\x02id\"\r\n" +
	"\vGetGamesReq\"_\n" +
	"\vGetGamesRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\x12:\n" +
	"\x05games\x18\x02 \x03(\v2$.crabs.evening_detective_server.GameR\x05games\"\xb5\x03\n" +
	"\x04Game\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\x12 \n" +
	"\vdescription\x18\x03 \x01(\tR\vdescription\x125\n" +
	"\bstart_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\astartAt\x12\x16\n" +
	"\x06status\x18\x05 \x01(\tR\x06status\x12D\n" +
	"\bscenario\x18\x06 \x01(\v2(.crabs.evening_detective_server.ScenarioR\bscenario\x12:\n" +
	"\x05teams\x18\a \x03(\v2$.crabs.evening_detective_server.TeamR\x05teams\x12>\n" +
	"\n" +
	"started_at\x18\b \x01(\v2\x1a.google.protobuf.TimestampH\x00R\tstartedAt\x88\x01\x01\x12:\n" +
	"\bended_at\x18\t \x01(\v2\x1a.google.protobuf.TimestampH\x01R\aendedAt\x88\x01\x01B\r\n" +
	"\v_started_atB\v\n" +
	"\t_ended_at\"\xd4\x01\n" +
	"\x04Team\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\x12\x16\n" +
	"\x06status\x18\x03 \x01(\tR\x06status\x12\x1a\n" +
	"\bpassword\x18\x04 \x01(\tR\bpassword\x12#\n" +
	"\ractions_count\x18\x05 \x01(\x05R\factionsCount\x12O\n" +
	"\fapplications\x18\x06 \x03(\v2+.crabs.evening_detective_server.ApplicationR\fapplications\"\x1c\n" +
	"\n" +
	"GetGameReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\"\\\n" +
	"\n" +
	"GetGameRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\x128\n" +
	"\x04game\x18\x02 \x01(\v2$.crabs.evening_detective_server.GameR\x04game\"\xad\x01\n" +
	"\rUpdateGameReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\x12 \n" +
	"\vdescription\x18\x03 \x01(\tR\vdescription\x125\n" +
	"\bstart_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\astartAt\x12\x1f\n" +
	"\vscenario_id\x18\x05 \x01(\x05R\n" +
	"scenarioId\"%\n" +
	"\rUpdateGameRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\"\x1e\n" +
	"\fStartGameReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\"$\n" +
	"\fStartGameRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\"\x1e\n" +
	"\fPauseGameReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\"$\n" +
	"\fPauseGameRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\"\x1f\n" +
	"\rFinishGameReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\"%\n" +
	"\rFinishGameRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\"\x1e\n" +
	"\fResetGameReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\"$\n" +
	"\fResetGameRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\"\x1f\n" +
	"\rDeleteGameReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\"%\n" +
	"\rDeleteGameRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\"9\n" +
	"\n" +
	"AddTeamReq\x12\x17\n" +
	"\agame_id\x18\x01 \x01(\x05R\x06gameId\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\"N\n" +
	"\n" +
	"AddTeamRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\x12\x0e\n" +
	"\x02id\x18\x02 \x01(\x05R\x02id\x12\x1a\n" +
	"\bpassword\x18\x03 \x01(\tR\bpassword\"3\n" +
	"\rUpdateTeamReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\"%\n" +
	"\rUpdateTeamRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\"\x1f\n" +
	"\rDeleteTeamReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x03R\x02id\"%\n" +
	"\rDeleteTeamRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\"=\n" +
	"\x17GiveTeamApplicationsReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\"/\n" +
	"\x17GiveTeamApplicationsRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\"=\n" +
	"\x0fGetTeamStoryReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x1a\n" +
	"\bpassword\x18\x02 \x01(\tR\bpassword\"\x9e\x01\n" +
	"\x0fGetTeamStoryRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\x12;\n" +
	"\x05story\x18\x02 \x01(\v2%.crabs.evening_detective_server.StoryR\x05story\x128\n" +
	"\x04game\x18\x03 \x01(\v2$.crabs.evening_detective_server.GameR\x04game\"R\n" +
	"\x10AddTeamActionReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x1a\n" +
	"\bpassword\x18\x02 \x01(\tR\bpassword\x12\x12\n" +
	"\x04code\x18\x03 \x01(\tR\x04code\"(\n" +
	"\x10AddTeamActionRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error\")\n" +
	"\x17DeleteLastTeamActionReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x03R\x02id\"/\n" +
	"\x17DeleteLastTeamActionRsp\x12\x14\n" +
	"\x05error\x18\x01 \x01(\tR\x05error2\xceC\n" +
	"\x16EveningDetectiveServer\x12\xa6\x01\n" +
	"\x04Ping\x12'.crabs.evening_detective_server.PingReq\x1a'.crabs.evening_detective_server.PingRsp\"L\x92A3\x12)Проверить доступностьb\x06\n" +
	"\x04\n" +
	"\x00\x12\x00\x82\xd3\xe4\x93\x02\x10\x12\x0e/api/test/ping\x12\xaf\x01\n" +
	"\x04Echo\x12'.crabs.evening_detective_server.EchoReq\x1a'.crabs.evening_detective_server.EchoRsp\"U\x92A<\x122Проверить обработку данныхb\x06\n" +
	"\x04\n" +
	"\x00\x12\x00\x82\xd3\xe4\x93\x02\x10\"\x0e/api/test/echo\x12\xd0\x01\n" +
	"\x06Signup\x12).crabs.evening_detective_server.SignupReq\x1a).crabs.evening_detective_server.SignupRsp\"p\x92AR\n" +
	"\"Регистрация и вход\x12$Зарегистрироватьсяb\x06\n" +
	"\x04\n" +
	"\x00\x12\x00\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/api/auth/signup\x12\xee\x01\n" +
	"\x0fRefreshPassword\x122.crabs.evening_detective_server.RefreshPasswordReq\x1a2.crabs.evening_detective_server.RefreshPasswordRsp\"s\x92AK\n" +
	"\"Регистрация и вход\x12\x1dОбновить парольb\x06\n" +
	"\x04\n" +
	"\x00\x12\x00\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/auth/refresh-password\x12\xe3\x01\n" +
	"\x05Login\x12(.crabs.evening_detective_server.LoginReq\x1a(.crabs.evening_detective_server.LoginRsp\"\x85\x01\x92Ah\n" +
	"\"Регистрация и вход\x12:Войти и получить токена доступаb\x06\n" +
	"\x04\n" +
	"\x00\x12\x00\x82\xd3\xe4\x93\x02\x14:\x01*\"\x0f/api/auth/login\x12\xdc\x01\n" +
	"\aRefresh\x12*.crabs.evening_detective_server.RefreshReq\x1a*.crabs.evening_detective_server.RefreshRsp\"y\x92AZ\n" +
	"\"Регистрация и вход\x12,Обновить токена доступаb\x06\n" +
	"\x04\n" +
	"\x00\x12\x00\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/api/auth/refresh\x12\xcb\x01\n" +
	"\bGetUsers\x12+.crabs.evening_detective_server.GetUsersReq\x1a+.crabs.evening_detective_server.GetUsersRsp\"e\x92AP\n" +
	"\x18Пользователи\x124Получить всех пользователей\x82\xd3\xe4\x93\x02\f\x12\n" +
	"/api/users\x12\xd6\x01\n" +
	"\vGetUserById\x12..crabs.evening_detective_server.GetUserByIdReq\x1a..crabs.evening_detective_server.GetUserByIdRsp\"g\x92AM\n" +
	"\x18Пользователи\x121Получить пользователя по id\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/users/{id}\x12\xc2\x01\n" +
	"\x05GetMe\x12(.crabs.evening_detective_server.GetMeReq\x1a(.crabs.evening_detective_server.GetMeRsp\"e\x92AM\n" +
	"\x18Пользователи\x121Получить информацию о себе\x82\xd3\xe4\x93\x02\x0f\x12\r/api/users/me\x12\xe3\x01\n" +
	"\vAddUserRole\x12..crabs.evening_detective_server.AddUserRoleReq\x1a..crabs.evening_detective_server.AddUserRoleRsp\"t\x92AN\n" +
	"\x18Пользователи\x122Добавить пользователю роль\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/api/users/{id}/role/add\x12\xf0\x01\n" +
	"\x0eDeleteUserRole\x121.crabs.evening_detective_server.DeleteUserRoleReq\x1a1.crabs.evening_detective_server.DeleteUserRoleRsp\"x\x92AO\n" +
	"\x18Пользователи\x123Забрать у пользователя роль\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/api/users/{id}/role/delete\x12\x81\x02\n" +
	"\x0eGetPermissions\x121.crabs.evening_detective_server.GetPermissionsReq\x1a1.crabs.evening_detective_server.GetPermissionsRsp\"\x88\x01\x92Aj\n" +
	"\x0eДоступы\x12XПолучить список доступных элементов интерфейса\x82\xd3\xe4\x93\x02\x15\x12\x13/api/ui/permissions\x12\xb4\x01\n" +
	"\n" +
	"UploadFile\x12-.crabs.evening_detective_server.UploadFileReq\x1a-.crabs.evening_detective_server.UploadFileRsp\"H\x92A)\n" +
	"\n" +
	"Файлы\x12\x1bЗагрузить файл\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/api/files/upload\x12\x9e\x01\n" +
	"\fDownloadFile\x12/.crabs.evening_detective_server.DownloadFileReq\x1a\x14.google.api.HttpBody\"G\x92A'\n" +
	"\n" +
	"Файлы\x12\x19Получить файл\x82\xd3\xe4\x93\x02\x17\x12\x15/api/files/{filename}\x12\xbd\x01\n" +
	"\vAddScenario\x12..crabs.evening_detective_server.AddScenarioReq\x1a..crabs.evening_detective_server.AddScenarioRsp\"N\x92A3\n" +
	"\x10Сценарии\x12\x1fСоздать сценарий\x82\xd3\xe4\x93\x02\x12:\x01*\"\r/api/scenario\x12\xd2\x01\n" +
	"\x0eGetMyScenarios\x121.crabs.evening_detective_server.GetMyScenariosReq\x1a1.crabs.evening_detective_server.GetMyScenariosRsp\"Z\x92A>\n" +
	"\x10Сценарии\x12*Получить свои сценарии\x82\xd3\xe4\x93\x02\x13\x12\x11/api/my-scenarios\x12\xe4\x01\n" +
	"\x13GetScenariosCatalog\x126.crabs.evening_detective_server.GetScenariosCatalogReq\x1a6.crabs.evening_detective_server.GetScenariosCatalogRsp\"]\x92AF\n" +
	"\x10Сценарии\x122Получить каталог сценариев\x82\xd3\xe4\x93\x02\x0e\x12\f/api/catalog\x12\xf5\x01\n" +
	"\x0fGetFullScenario\x12..crabs.evening_detective_server.GetScenarioReq\x1a..crabs.evening_detective_server.GetScenarioRsp\"\x81\x01\x92A^\n" +
	"\x10Сценарии\x12JПолучить сценарий со всеми деталями по id\x82\xd3\xe4\x93\x02\x1a\x12\x18/api/scenarios/{id}/full\x12\xca\x01\n" +
	"\vGetScenario\x12..crabs.evening_detective_server.GetScenarioReq\x1a..crabs.evening_detective_server.GetScenarioRsp\"[\x92A=\n" +
	"\x10Сценарии\x12)Получить сценарий по id\x82\xd3\xe4\x93\x02\x15\x12\x13/api/scenarios/{id}\x12\xd8\x01\n" +
	"\x0eUpdateScenario\x121.crabs.evening_detective_server.UpdateScenarioReq\x1a1.crabs.evening_detective_server.UpdateScenarioRsp\"`\x92A?\n" +
	"\x10Сценарии\x12+Редактировать сценарий\x82\xd3\xe4\x93\x02\x18:\x01*\x1a\x13/api/scenarios/{id}\x12\xdd\x01\n" +
	"\x0ePublicScenario\x121.crabs.evening_detective_server.PublicScenarioReq\x1a1.crabs.evening_detective_server.PublicScenarioRsp\"e\x92A=\n" +
	"\x10Сценарии\x12)Опубликовать сценарий\x82\xd3\xe4\x93\x02\x1f:\x01*\x1a\x1a/api/scenarios/{id}/public\x12\xe3\x01\n" +
	"\rDraftScenario\x120.crabs.evening_detective_server.DraftScenarioReq\x1a0.crabs.evening_detective_server.DraftScenarioRsp\"n\x92AG\n" +
	"\x10Сценарии\x123Снять с публикации сценарий\x82\xd3\xe4\x93\x02\x1e:\x01*\x1a\x19/api/scenarios/{id}/draft\x12\xc9\x01\n" +
	"\x0eDeleteScenario\x121.crabs.evening_detective_server.DeleteScenarioReq\x1a1.crabs.evening_detective_server.DeleteScenarioRsp\"Q\x92A3\n" +
	"\x10Сценарии\x12\x1fУдалить сценарий\x82\xd3\xe4\x93\x02\x15*\x13/api/scenarios/{id}\x12\xef\x01\n" +
	"\x10AddScenarioPlace\x123.crabs.evening_detective_server.AddScenarioPlaceReq\x1a3.crabs.evening_detective_server.AddScenarioPlaceRsp\"q\x92AI\n" +
	"\x1bТочки сценария\x12*Создать точку сценария\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/scenarios/{id}/places\x12\x81\x02\n" +
	"\x13UpdateScenarioPlace\x126.crabs.evening_detective_server.UpdateScenarioPlaceReq\x1a6.crabs.evening_detective_server.UpdateScenarioPlaceRsp\"z\x92AK\n" +
	"\x1bТочки сценария\x12,Обновить точку сценария\x82\xd3\xe4\x93\x02&:\x01*\x1a!/api/scenarios/{id}/places/{code}\x12\xfc\x01\n" +
	"\x13DeleteScenarioPlace\x126.crabs.evening_detective_server.DeleteScenarioPlaceReq\x1a6.crabs.evening_detective_server.DeleteScenarioPlaceRsp\"u\x92AI\n" +
	"\x1bТочки сценария\x12*Удалить точку сценария\x82\xd3\xe4\x93\x02#*!/api/scenarios/{id}/places/{code}\x12\x9e\x01\n" +
	"\aAddGame\x12*.crabs.evening_detective_server.AddGameReq\x1a*.crabs.evening_detective_server.AddGameRsp\";\x92A#\n" +
	"\bИгры\x12\x17Создать игру\x82\xd3\xe4\x93\x02\x0f:\x01*\"\n" +
	"/api/games\x12\xa0\x01\n" +
	"\bGetGames\x12+.crabs.evening_detective_server.GetGamesReq\x1a+.crabs.evening_detective_server.GetGamesRsp\":\x92A%\n" +
	"\bИгры\x12\x19Получить игры\x82\xd3\xe4\x93\x02\f\x12\n" +
	"/api/games\x12\xa2\x01\n" +
	"\aGetGame\x12*.crabs.evening_detective_server.GetGameReq\x1a*.crabs.evening_detective_server.GetGameRsp\"?\x92A%\n" +
	"\bИгры\x12\x19Получить игру\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/games/{id}\x12\xae\x01\n" +
	"\n" +
	"UpdateGame\x12-.crabs.evening_detective_server.UpdateGameReq\x1a-.crabs.evening_detective_server.UpdateGameRsp\"B\x92A%\n" +
	"\bИгры\x12\x19Обновить игру\x82\xd3\xe4\x93\x02\x14:\x01*\x1a\x0f/api/games/{id}\x12\xad\x01\n" +
	"\tStartGame\x12,.crabs.evening_detective_server.StartGameReq\x1a,.crabs.evening_detective_server.StartGameRsp\"D\x92A!\n" +
	"\bИгры\x12\x15Начать игру\x82\xd3\xe4\x93\x02\x1a:\x01*\x1a\x15/api/games/{id}/start\x12\xb5\x01\n" +
	"\tPauseGame\x12,.crabs.evening_detective_server.PauseGameReq\x1a,.crabs.evening_detective_server.PauseGameRsp\"L\x92A)\n" +
	"\bИгры\x12\x1dОстановить игру\x82\xd3\xe4\x93\x02\x1a:\x01*\x1a\x15/api/games/{id}/pause\x12\xb7\x01\n" +
	"\n" +
	"FinishGame\x12-.crabs.evening_detective_server.FinishGameReq\x1a-.crabs.evening_detective_server.FinishGameRsp\"K\x92A'\n" +
	"\bИгры\x12\x1bЗакончить игру\x82\xd3\xe4\x93\x02\x1b:\x01*\x1a\x16/api/games/{id}/finish\x12\xb1\x01\n" +
	"\tResetGame\x12,.crabs.evening_detective_server.ResetGameReq\x1a,.crabs.evening_detective_server.ResetGameRsp\"H\x92A%\n" +
	"\bИгры\x12\x19Сбросить игру\x82\xd3\xe4\x93\x02\x1a:\x01*\x1a\x15/api/games/{id}/reset\x12\xa9\x01\n" +
	"\n" +
	"DeleteGame\x12-.crabs.evening_detective_server.DeleteGameReq\x1a-.crabs.evening_detective_server.DeleteGameRsp\"=\x92A#\n" +
	"\bИгры\x12\x17Удалить игру\x82\xd3\xe4\x93\x02\x11*\x0f/api/games/{id}\x12\xaa\x01\n" +
	"\aAddTeam\x12*.crabs.evening_detective_server.AddTeamReq\x1a*.crabs.evening_detective_server.AddTeamRsp\"G\x92A/\n" +
	"\x0eКоманда\x12\x1dСоздать команду\x82\xd3\xe4\x93\x02\x0f:\x01*\"\n" +
	"/api/teams\x12\xba\x01\n" +
	"\n" +
	"UpdateTeam\x12-.crabs.evening_detective_server.UpdateTeamReq\x1a-.crabs.evening_detective_server.UpdateTeamRsp\"N\x92A1\n" +
	"\x0eКоманда\x12\x1fОбновить команду\x82\xd3\xe4\x93\x02\x14:\x01*\x1a\x0f/api/teams/{id}\x12\xb5\x01\n" +
	"\n" +
	"DeleteTeam\x12-.crabs.evening_detective_server.DeleteTeamReq\x1a-.crabs.evening_detective_server.DeleteTeamRsp\"I\x92A/\n" +
	"\x0eКоманда\x12\x1dУдалить команду\x82\xd3\xe4\x93\x02\x11*\x0f/api/teams/{id}\x12\xdd\x01\n" +
	"\x14GiveTeamApplications\x127.crabs.evening_detective_server.GiveTeamApplicationsReq\x1a7.crabs.evening_detective_server.GiveTeamApplicationsRsp\"S\x92A)\n" +
	"\x0eКоманда\x12\x17Выдать улику\x82\xd3\xe4\x93\x02!:\x01*\"\x1c/api/teams/{id}/applications\x12\xbf\x01\n" +
	"\fGetTeamStory\x12/.crabs.evening_detective_server.GetTeamStoryReq\x1a/.crabs.evening_detective_server.GetTeamStoryRsp\"M\x92A-\n" +
	"\bХоды\x12\x19Получить ходыb\x06\n" +
	"\x04\n" +
	"\x00\x12\x00\x82\xd3\xe4\x93\x02\x17\x12\x15/api/teams/{id}/story\x12\xc3\x01\n" +
	"\rAddTeamAction\x120.crabs.evening_detective_server.AddTeamActionReq\x1a0.crabs.evening_detective_server.AddTeamActionRsp\"N\x92A)\n" +
	"\bХоды\x12\x15Сделать ходb\x06\n" +
	"\x04\n" +
	"\x00\x12\x00\x82\xd3\xe4\x93\x02\x1c:\x01*\"\x17/api/teams/{id}/actions\x12\xe5\x01\n" +
	"\x14DeleteLastTeamAction\x127.crabs.evening_detective_server.DeleteLastTeamActionReq\x1a7.crabs.evening_detective_server.DeleteLastTeamActionRsp\"[\x92A4\n" +
	"\bХоды\x12(Удалить последний ход\x82\xd3\xe4\x93\x02\x1e*\x1c/api/teams/{id}/last-actionsB\xd7\x01\x92A\xc8\x01\x12U\n" +
	"KДокументация сервиса \"Вечерний детектив\"2\x06v0.1.0Z]\n" +
	"[\n" +
	"\n" +
	"BearerAuth\x12M\b\x02\x128Authentication token, prefixed by Bearer: Bearer <token>\x1a\rAuthorization \x02b\x10\n" +
	"\x0e\n" +
	"\n" +
	"BearerAuth\x12\x00Z\tpkg/protob\x06proto3"

var (
	file_main_proto_rawDescOnce sync.Once
	file_main_proto_rawDescData []byte
)

func file_main_proto_rawDescGZIP() []byte {
	file_main_proto_rawDescOnce.Do(func() {
		file_main_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_main_proto_rawDesc), len(file_main_proto_rawDesc)))
	})
	return file_main_proto_rawDescData
}

var file_main_proto_msgTypes = make([]protoimpl.MessageInfo, 90)
var file_main_proto_goTypes = []any{
	(*PingReq)(nil),                 // 0: crabs.evening_detective_server.PingReq
	(*PingRsp)(nil),                 // 1: crabs.evening_detective_server.PingRsp
	(*EchoReq)(nil),                 // 2: crabs.evening_detective_server.EchoReq
	(*EchoRsp)(nil),                 // 3: crabs.evening_detective_server.EchoRsp
	(*SignupReq)(nil),               // 4: crabs.evening_detective_server.SignupReq
	(*SignupRsp)(nil),               // 5: crabs.evening_detective_server.SignupRsp
	(*RefreshPasswordReq)(nil),      // 6: crabs.evening_detective_server.RefreshPasswordReq
	(*RefreshPasswordRsp)(nil),      // 7: crabs.evening_detective_server.RefreshPasswordRsp
	(*LoginReq)(nil),                // 8: crabs.evening_detective_server.LoginReq
	(*LoginRsp)(nil),                // 9: crabs.evening_detective_server.LoginRsp
	(*RefreshReq)(nil),              // 10: crabs.evening_detective_server.RefreshReq
	(*RefreshRsp)(nil),              // 11: crabs.evening_detective_server.RefreshRsp
	(*GetUsersReq)(nil),             // 12: crabs.evening_detective_server.GetUsersReq
	(*GetUsersRsp)(nil),             // 13: crabs.evening_detective_server.GetUsersRsp
	(*User)(nil),                    // 14: crabs.evening_detective_server.User
	(*GetUserByIdReq)(nil),          // 15: crabs.evening_detective_server.GetUserByIdReq
	(*GetUserByIdRsp)(nil),          // 16: crabs.evening_detective_server.GetUserByIdRsp
	(*GetMeReq)(nil),                // 17: crabs.evening_detective_server.GetMeReq
	(*GetMeRsp)(nil),                // 18: crabs.evening_detective_server.GetMeRsp
	(*AddUserRoleReq)(nil),          // 19: crabs.evening_detective_server.AddUserRoleReq
	(*AddUserRoleRsp)(nil),          // 20: crabs.evening_detective_server.AddUserRoleRsp
	(*DeleteUserRoleReq)(nil),       // 21: crabs.evening_detective_server.DeleteUserRoleReq
	(*DeleteUserRoleRsp)(nil),       // 22: crabs.evening_detective_server.DeleteUserRoleRsp
	(*GetPermissionsReq)(nil),       // 23: crabs.evening_detective_server.GetPermissionsReq
	(*GetPermissionsRsp)(nil),       // 24: crabs.evening_detective_server.GetPermissionsRsp
	(*UploadFileReq)(nil),           // 25: crabs.evening_detective_server.UploadFileReq
	(*UploadFileRsp)(nil),           // 26: crabs.evening_detective_server.UploadFileRsp
	(*DownloadFileReq)(nil),         // 27: crabs.evening_detective_server.DownloadFileReq
	(*AddScenarioReq)(nil),          // 28: crabs.evening_detective_server.AddScenarioReq
	(*AddScenarioRsp)(nil),          // 29: crabs.evening_detective_server.AddScenarioRsp
	(*GetMyScenariosReq)(nil),       // 30: crabs.evening_detective_server.GetMyScenariosReq
	(*GetMyScenariosRsp)(nil),       // 31: crabs.evening_detective_server.GetMyScenariosRsp
	(*GetScenariosCatalogReq)(nil),  // 32: crabs.evening_detective_server.GetScenariosCatalogReq
	(*GetScenariosCatalogRsp)(nil),  // 33: crabs.evening_detective_server.GetScenariosCatalogRsp
	(*GetScenarioReq)(nil),          // 34: crabs.evening_detective_server.GetScenarioReq
	(*GetScenarioRsp)(nil),          // 35: crabs.evening_detective_server.GetScenarioRsp
	(*Scenario)(nil),                // 36: crabs.evening_detective_server.Scenario
	(*Story)(nil),                   // 37: crabs.evening_detective_server.Story
	(*Place)(nil),                   // 38: crabs.evening_detective_server.Place
	(*Application)(nil),             // 39: crabs.evening_detective_server.Application
	(*Door)(nil),                    // 40: crabs.evening_detective_server.Door
	(*Key)(nil),                     // 41: crabs.evening_detective_server.Key
	(*UpdateScenarioReq)(nil),       // 42: crabs.evening_detective_server.UpdateScenarioReq
	(*UpdateScenarioRsp)(nil),       // 43: crabs.evening_detective_server.UpdateScenarioRsp
	(*PublicScenarioReq)(nil),       // 44: crabs.evening_detective_server.PublicScenarioReq
	(*PublicScenarioRsp)(nil),       // 45: crabs.evening_detective_server.PublicScenarioRsp
	(*DraftScenarioReq)(nil),        // 46: crabs.evening_detective_server.DraftScenarioReq
	(*DraftScenarioRsp)(nil),        // 47: crabs.evening_detective_server.DraftScenarioRsp
	(*DeleteScenarioReq)(nil),       // 48: crabs.evening_detective_server.DeleteScenarioReq
	(*DeleteScenarioRsp)(nil),       // 49: crabs.evening_detective_server.DeleteScenarioRsp
	(*AddScenarioPlaceReq)(nil),     // 50: crabs.evening_detective_server.AddScenarioPlaceReq
	(*AddScenarioPlaceRsp)(nil),     // 51: crabs.evening_detective_server.AddScenarioPlaceRsp
	(*UpdateScenarioPlaceReq)(nil),  // 52: crabs.evening_detective_server.UpdateScenarioPlaceReq
	(*UpdateScenarioPlaceRsp)(nil),  // 53: crabs.evening_detective_server.UpdateScenarioPlaceRsp
	(*DeleteScenarioPlaceReq)(nil),  // 54: crabs.evening_detective_server.DeleteScenarioPlaceReq
	(*DeleteScenarioPlaceRsp)(nil),  // 55: crabs.evening_detective_server.DeleteScenarioPlaceRsp
	(*AddGameReq)(nil),              // 56: crabs.evening_detective_server.AddGameReq
	(*AddGameRsp)(nil),              // 57: crabs.evening_detective_server.AddGameRsp
	(*GetGamesReq)(nil),             // 58: crabs.evening_detective_server.GetGamesReq
	(*GetGamesRsp)(nil),             // 59: crabs.evening_detective_server.GetGamesRsp
	(*Game)(nil),                    // 60: crabs.evening_detective_server.Game
	(*Team)(nil),                    // 61: crabs.evening_detective_server.Team
	(*GetGameReq)(nil),              // 62: crabs.evening_detective_server.GetGameReq
	(*GetGameRsp)(nil),              // 63: crabs.evening_detective_server.GetGameRsp
	(*UpdateGameReq)(nil),           // 64: crabs.evening_detective_server.UpdateGameReq
	(*UpdateGameRsp)(nil),           // 65: crabs.evening_detective_server.UpdateGameRsp
	(*StartGameReq)(nil),            // 66: crabs.evening_detective_server.StartGameReq
	(*StartGameRsp)(nil),            // 67: crabs.evening_detective_server.StartGameRsp
	(*PauseGameReq)(nil),            // 68: crabs.evening_detective_server.PauseGameReq
	(*PauseGameRsp)(nil),            // 69: crabs.evening_detective_server.PauseGameRsp
	(*FinishGameReq)(nil),           // 70: crabs.evening_detective_server.FinishGameReq
	(*FinishGameRsp)(nil),           // 71: crabs.evening_detective_server.FinishGameRsp
	(*ResetGameReq)(nil),            // 72: crabs.evening_detective_server.ResetGameReq
	(*ResetGameRsp)(nil),            // 73: crabs.evening_detective_server.ResetGameRsp
	(*DeleteGameReq)(nil),           // 74: crabs.evening_detective_server.DeleteGameReq
	(*DeleteGameRsp)(nil),           // 75: crabs.evening_detective_server.DeleteGameRsp
	(*AddTeamReq)(nil),              // 76: crabs.evening_detective_server.AddTeamReq
	(*AddTeamRsp)(nil),              // 77: crabs.evening_detective_server.AddTeamRsp
	(*UpdateTeamReq)(nil),           // 78: crabs.evening_detective_server.UpdateTeamReq
	(*UpdateTeamRsp)(nil),           // 79: crabs.evening_detective_server.UpdateTeamRsp
	(*DeleteTeamReq)(nil),           // 80: crabs.evening_detective_server.DeleteTeamReq
	(*DeleteTeamRsp)(nil),           // 81: crabs.evening_detective_server.DeleteTeamRsp
	(*GiveTeamApplicationsReq)(nil), // 82: crabs.evening_detective_server.GiveTeamApplicationsReq
	(*GiveTeamApplicationsRsp)(nil), // 83: crabs.evening_detective_server.GiveTeamApplicationsRsp
	(*GetTeamStoryReq)(nil),         // 84: crabs.evening_detective_server.GetTeamStoryReq
	(*GetTeamStoryRsp)(nil),         // 85: crabs.evening_detective_server.GetTeamStoryRsp
	(*AddTeamActionReq)(nil),        // 86: crabs.evening_detective_server.AddTeamActionReq
	(*AddTeamActionRsp)(nil),        // 87: crabs.evening_detective_server.AddTeamActionRsp
	(*DeleteLastTeamActionReq)(nil), // 88: crabs.evening_detective_server.DeleteLastTeamActionReq
	(*DeleteLastTeamActionRsp)(nil), // 89: crabs.evening_detective_server.DeleteLastTeamActionRsp
	(*timestamppb.Timestamp)(nil),   // 90: google.protobuf.Timestamp
	(*httpbody.HttpBody)(nil),       // 91: google.api.HttpBody
}
var file_main_proto_depIdxs = []int32{
	14, // 0: crabs.evening_detective_server.GetUsersRsp.users:type_name -> crabs.evening_detective_server.User
	90, // 1: crabs.evening_detective_server.User.created_at:type_name -> google.protobuf.Timestamp
	14, // 2: crabs.evening_detective_server.GetUserByIdRsp.user:type_name -> crabs.evening_detective_server.User
	14, // 3: crabs.evening_detective_server.GetMeRsp.user:type_name -> crabs.evening_detective_server.User
	36, // 4: crabs.evening_detective_server.GetMyScenariosRsp.scenarios:type_name -> crabs.evening_detective_server.Scenario
	36, // 5: crabs.evening_detective_server.GetScenariosCatalogRsp.scenarios:type_name -> crabs.evening_detective_server.Scenario
	36, // 6: crabs.evening_detective_server.GetScenarioRsp.scenario:type_name -> crabs.evening_detective_server.Scenario
	37, // 7: crabs.evening_detective_server.Scenario.story:type_name -> crabs.evening_detective_server.Story
	14, // 8: crabs.evening_detective_server.Scenario.author:type_name -> crabs.evening_detective_server.User
	90, // 9: crabs.evening_detective_server.Scenario.updated_at:type_name -> google.protobuf.Timestamp
	90, // 10: crabs.evening_detective_server.Scenario.created_at:type_name -> google.protobuf.Timestamp
	90, // 11: crabs.evening_detective_server.Scenario.published_at:type_name -> google.protobuf.Timestamp
	38, // 12: crabs.evening_detective_server.Story.places:type_name -> crabs.evening_detective_server.Place
	39, // 13: crabs.evening_detective_server.Place.applications:type_name -> crabs.evening_detective_server.Application
	40, // 14: crabs.evening_detective_server.Place.doors:type_name -> crabs.evening_detective_server.Door
	41, // 15: crabs.evening_detective_server.Place.keys:type_name -> crabs.evening_detective_server.Key
	41, // 16: crabs.evening_detective_server.Door.keys:type_name -> crabs.evening_detective_server.Key
	38, // 17: crabs.evening_detective_server.AddScenarioPlaceReq.place:type_name -> crabs.evening_detective_server.Place
	38, // 18: crabs.evening_detective_server.UpdateScenarioPlaceReq.place:type_name -> crabs.evening_detective_server.Place
	90, // 19: crabs.evening_detective_server.AddGameReq.start_at:type_name -> google.protobuf.Timestamp
	60, // 20: crabs.evening_detective_server.GetGamesRsp.games:type_name -> crabs.evening_detective_server.Game
	90, // 21: crabs.evening_detective_server.Game.start_at:type_name -> google.protobuf.Timestamp
	36, // 22: crabs.evening_detective_server.Game.scenario:type_name -> crabs.evening_detective_server.Scenario
	61, // 23: crabs.evening_detective_server.Game.teams:type_name -> crabs.evening_detective_server.Team
	90, // 24: crabs.evening_detective_server.Game.started_at:type_name -> google.protobuf.Timestamp
	90, // 25: crabs.evening_detective_server.Game.ended_at:type_name -> google.protobuf.Timestamp
	39, // 26: crabs.evening_detective_server.Team.applications:type_name -> crabs.evening_detective_server.Application
	60, // 27: crabs.evening_detective_server.GetGameRsp.game:type_name -> crabs.evening_detective_server.Game
	90, // 28: crabs.evening_detective_server.UpdateGameReq.start_at:type_name -> google.protobuf.Timestamp
	37, // 29: crabs.evening_detective_server.GetTeamStoryRsp.story:type_name -> crabs.evening_detective_server.Story
	60, // 30: crabs.evening_detective_server.GetTeamStoryRsp.game:type_name -> crabs.evening_detective_server.Game
	0,  // 31: crabs.evening_detective_server.EveningDetectiveServer.Ping:input_type -> crabs.evening_detective_server.PingReq
	2,  // 32: crabs.evening_detective_server.EveningDetectiveServer.Echo:input_type -> crabs.evening_detective_server.EchoReq
	4,  // 33: crabs.evening_detective_server.EveningDetectiveServer.Signup:input_type -> crabs.evening_detective_server.SignupReq
	6,  // 34: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:input_type -> crabs.evening_detective_server.RefreshPasswordReq
	8,  // 35: crabs.evening_detective_server.EveningDetectiveServer.Login:input_type -> crabs.evening_detective_server.LoginReq
	10, // 36: crabs.evening_detective_server.EveningDetectiveServer.Refresh:input_type -> crabs.evening_detective_server.RefreshReq
	12, // 37: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:input_type -> crabs.evening_detective_server.GetUsersReq
	15, // 38: crabs.evening_detective_server.EveningDetectiveServer.GetUserById:input_type -> crabs.evening_detective_server.GetUserByIdReq
	17, // 39: crabs.evening_detective_server.EveningDetectiveServer.GetMe:input_type -> crabs.evening_detective_server.GetMeReq
	19, // 40: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:input_type -> crabs.evening_detective_server.AddUserRoleReq
	21, // 41: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:input_type -> crabs.evening_detective_server.DeleteUserRoleReq
	23, // 42: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:input_type -> crabs.evening_detective_server.GetPermissionsReq
	25, // 43: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:input_type -> crabs.evening_detective_server.UploadFileReq
	27, // 44: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:input_type -> crabs.evening_detective_server.DownloadFileReq
	28, // 45: crabs.evening_detective_server.EveningDetectiveServer.AddScenario:input_type -> crabs.evening_detective_server.AddScenarioReq
	30, // 46: crabs.evening_detective_server.EveningDetectiveServer.GetMyScenarios:input_type -> crabs.evening_detective_server.GetMyScenariosReq
	32, // 47: crabs.evening_detective_server.EveningDetectiveServer.GetScenariosCatalog:input_type -> crabs.evening_detective_server.GetScenariosCatalogReq
	34, // 48: crabs.evening_detective_server.EveningDetectiveServer.GetFullScenario:input_type -> crabs.evening_detective_server.GetScenarioReq
	34, // 49: crabs.evening_detective_server.EveningDetectiveServer.GetScenario:input_type -> crabs.evening_detective_server.GetScenarioReq
	42, // 50: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenario:input_type -> crabs.evening_detective_server.UpdateScenarioReq
	44, // 51: crabs.evening_detective_server.EveningDetectiveServer.PublicScenario:input_type -> crabs.evening_detective_server.PublicScenarioReq
	46, // 52: crabs.evening_detective_server.EveningDetectiveServer.DraftScenario:input_type -> crabs.evening_detective_server.DraftScenarioReq
	48, // 53: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenario:input_type -> crabs.evening_detective_server.DeleteScenarioReq
	50, // 54: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioPlace:input_type -> crabs.evening_detective_server.AddScenarioPlaceReq
	52, // 55: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioPlace:input_type -> crabs.evening_detective_server.UpdateScenarioPlaceReq
	54, // 56: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioPlace:input_type -> crabs.evening_detective_server.DeleteScenarioPlaceReq
	56, // 57: crabs.evening_detective_server.EveningDetectiveServer.AddGame:input_type -> crabs.evening_detective_server.AddGameReq
	58, // 58: crabs.evening_detective_server.EveningDetectiveServer.GetGames:input_type -> crabs.evening_detective_server.GetGamesReq
	62, // 59: crabs.evening_detective_server.EveningDetectiveServer.GetGame:input_type -> crabs.evening_detective_server.GetGameReq
	64, // 60: crabs.evening_detective_server.EveningDetectiveServer.UpdateGame:input_type -> crabs.evening_detective_server.UpdateGameReq
	66, // 61: crabs.evening_detective_server.EveningDetectiveServer.StartGame:input_type -> crabs.evening_detective_server.StartGameReq
	68, // 62: crabs.evening_detective_server.EveningDetectiveServer.PauseGame:input_type -> crabs.evening_detective_server.PauseGameReq
	70, // 63: crabs.evening_detective_server.EveningDetectiveServer.FinishGame:input_type -> crabs.evening_detective_server.FinishGameReq
	72, // 64: crabs.evening_detective_server.EveningDetectiveServer.ResetGame:input_type -> crabs.evening_detective_server.ResetGameReq
	74, // 65: crabs.evening_detective_server.EveningDetectiveServer.DeleteGame:input_type -> crabs.evening_detective_server.DeleteGameReq
	76, // 66: crabs.evening_detective_server.EveningDetectiveServer.AddTeam:input_type -> crabs.evening_detective_server.AddTeamReq
	78, // 67: crabs.evening_detective_server.EveningDetectiveServer.UpdateTeam:input_type -> crabs.evening_detective_server.UpdateTeamReq
	80, // 68: crabs.evening_detective_server.EveningDetectiveServer.DeleteTeam:input_type -> crabs.evening_detective_server.DeleteTeamReq
	82, // 69: crabs.evening_detective_server.EveningDetectiveServer.GiveTeamApplications:input_type -> crabs.evening_detective_server.GiveTeamApplicationsReq
	84, // 70: crabs.evening_detective_server.EveningDetectiveServer.GetTeamStory:input_type -> crabs.evening_detective_server.GetTeamStoryReq
	86, // 71: crabs.evening_detective_server.EveningDetectiveServer.AddTeamAction:input_type -> crabs.evening_detective_server.AddTeamActionReq
	88, // 72: crabs.evening_detective_server.EveningDetectiveServer.DeleteLastTeamAction:input_type -> crabs.evening_detective_server.DeleteLastTeamActionReq
	1,  // 73: crabs.evening_detective_server.EveningDetectiveServer.Ping:output_type -> crabs.evening_detective_server.PingRsp
	3,  // 74: crabs.evening_detective_server.EveningDetectiveServer.Echo:output_type -> crabs.evening_detective_server.EchoRsp
	5,  // 75: crabs.evening_detective_server.EveningDetectiveServer.Signup:output_type -> crabs.evening_detective_server.SignupRsp
	7,  // 76: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:output_type -> crabs.evening_detective_server.RefreshPasswordRsp
	9,  // 77: crabs.evening_detective_server.EveningDetectiveServer.Login:output_type -> crabs.evening_detective_server.LoginRsp
	11, // 78: crabs.evening_detective_server.EveningDetectiveServer.Refresh:output_type -> crabs.evening_detective_server.RefreshRsp
	13, // 79: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:output_type -> crabs.evening_detective_server.GetUsersRsp
	16, // 80: crabs.evening_detective_server.EveningDetectiveServer.GetUserById:output_type -> crabs.evening_detective_server.GetUserByIdRsp
	18, // 81: crabs.evening_detective_server.EveningDetectiveServer.GetMe:output_type -> crabs.evening_detective_server.GetMeRsp
	20, // 82: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:output_type -> crabs.evening_detective_server.AddUserRoleRsp
	22, // 83: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:output_type -> crabs.evening_detective_server.DeleteUserRoleRsp
	24, // 84: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:output_type -> crabs.evening_detective_server.GetPermissionsRsp
	26, // 85: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:output_type -> crabs.evening_detective_server.UploadFileRsp
	91, // 86: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:output_type -> google.api.HttpBody
	29, // 87: crabs.evening_detective_server.EveningDetectiveServer.AddScenario:output_type -> crabs.evening_detective_server.AddScenarioRsp
	31, // 88: crabs.evening_detective_server.EveningDetectiveServer.GetMyScenarios:output_type -> crabs.evening_detective_server.GetMyScenariosRsp
	33, // 89: crabs.evening_detective_server.EveningDetectiveServer.GetScenariosCatalog:output_type -> crabs.evening_detective_server.GetScenariosCatalogRsp
	35, // 90: crabs.evening_detective_server.EveningDetectiveServer.GetFullScenario:output_type -> crabs.evening_detective_server.GetScenarioRsp
	35, // 91: crabs.evening_detective_server.EveningDetectiveServer.GetScenario:output_type -> crabs.evening_detective_server.GetScenarioRsp
	43, // 92: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenario:output_type -> crabs.evening_detective_server.UpdateScenarioRsp
	45, // 93: crabs.evening_detective_server.EveningDetectiveServer.PublicScenario:output_type -> crabs.evening_detective_server.PublicScenarioRsp
	47, // 94: crabs.evening_detective_server.EveningDetectiveServer.DraftScenario:output_type -> crabs.evening_detective_server.DraftScenarioRsp
	49, // 95: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenario:output_type -> crabs.evening_detective_server.DeleteScenarioRsp
	51, // 96: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioPlace:output_type -> crabs.evening_detective_server.AddScenarioPlaceRsp
	53, // 97: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioPlace:output_type -> crabs.evening_detective_server.UpdateScenarioPlaceRsp
	55, // 98: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioPlace:output_type -> crabs.evening_detective_server.DeleteScenarioPlaceRsp
	57, // 99: crabs.evening_detective_server.EveningDetectiveServer.AddGame:output_type -> crabs.evening_detective_server.AddGameRsp
	59, // 100: crabs.evening_detective_server.EveningDetectiveServer.GetGames:output_type -> crabs.evening_detective_server.GetGamesRsp
	63, // 101: crabs.evening_detective_server.EveningDetectiveServer.GetGame:output_type -> crabs.evening_detective_server.GetGameRsp
	65, // 102: crabs.evening_detective_server.EveningDetectiveServer.UpdateGame:output_type -> crabs.evening_detective_server.UpdateGameRsp
	67, // 103: crabs.evening_detective_server.EveningDetectiveServer.StartGame:output_type -> crabs.evening_detective_server.StartGameRsp
	69, // 104: crabs.evening_detective_server.EveningDetectiveServer.PauseGame:output_type -> crabs.evening_detective_server.PauseGameRsp
	71, // 105: crabs.evening_detective_server.EveningDetectiveServer.FinishGame:output_type -> crabs.evening_detective_server.FinishGameRsp
	73, // 106: crabs.evening_detective_server.EveningDetectiveServer.ResetGame:output_type -> crabs.evening_detective_server.ResetGameRsp
	75, // 107: crabs.evening_detective_server.EveningDetectiveServer.DeleteGame:output_type -> crabs.evening_detective_server.DeleteGameRsp
	77, // 108: crabs.evening_detective_server.EveningDetectiveServer.AddTeam:output_type -> crabs.evening_detective_server.AddTeamRsp
	79, // 109: crabs.evening_detective_server.EveningDetectiveServer.UpdateTeam:output_type -> crabs.evening_detective_server.UpdateTeamRsp
	81, // 110: crabs.evening_detective_server.EveningDetectiveServer.DeleteTeam:output_type -> crabs.evening_detective_server.DeleteTeamRsp
	83, // 111: crabs.evening_detective_server.EveningDetectiveServer.GiveTeamApplications:output_type -> crabs.evening_detective_server.GiveTeamApplicationsRsp
	85, // 112: crabs.evening_detective_server.EveningDetectiveServer.GetTeamStory:output_type -> crabs.evening_detective_server.GetTeamStoryRsp
	87, // 113: crabs.evening_detective_server.EveningDetectiveServer.AddTeamAction:output_type -> crabs.evening_detective_server.AddTeamActionRsp
	89, // 114: crabs.evening_detective_server.EveningDetectiveServer.DeleteLastTeamAction:output_type -> crabs.evening_detective_server.DeleteLastTeamActionRsp
	73, // [73:115] is the sub-list for method output_type
	31, // [31:73] is the sub-list for method input_type
	31, // [31:31] is the sub-list for extension type_name
	31, // [31:31] is the sub-list for extension extendee
	0,  // [0:31] is the sub-list for field type_name
}

func init() { file_main_proto_init() }
func file_main_proto_init() {
	if File_main_proto != nil {
		return
	}
	file_main_proto_msgTypes[36].OneofWrappers = []any{}
	file_main_proto_msgTypes[60].OneofWrappers = []any{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_main_proto_rawDesc), len(file_main_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   90,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_main_proto_goTypes,
		DependencyIndexes: file_main_proto_depIdxs,
		MessageInfos:      file_main_proto_msgTypes,
	}.Build()
	File_main_proto = out.File
	file_main_proto_goTypes = nil
	file_main_proto_depIdxs = nil
}
