"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
//////////////////////////////////////////////////////////////////////////////
Server通用接口定义
//////////////////////////////////////////////////////////////////////////////
"""

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import sys
import typing

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _ResponseCode:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _ResponseCodeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ResponseCode.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    RC_SUCCESS: _ResponseCode.ValueType  # 0
    """成功"""
    RC_ERROR: _ResponseCode.ValueType  # 1
    """错误"""

class ResponseCode(_ResponseCode, metaclass=_ResponseCodeEnumTypeWrapper):
    """//////////////////////////////////////////////////////////////////////////////
    数据定义
    //////////////////////////////////////////////////////////////////////////////

    返回代码
    """

RC_SUCCESS: ResponseCode.ValueType  # 0
"""成功"""
RC_ERROR: ResponseCode.ValueType  # 1
"""错误"""
global___ResponseCode = ResponseCode

class _ProductType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _ProductTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ProductType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    PT_PC: _ProductType.ValueType  # 0
    """PC"""
    PT_IOS: _ProductType.ValueType  # 1
    """iOS"""
    PT_ANDROID: _ProductType.ValueType  # 2
    """Android"""
    PT_H5: _ProductType.ValueType  # 3
    """H5"""

class ProductType(_ProductType, metaclass=_ProductTypeEnumTypeWrapper):
    """产品类型"""

PT_PC: ProductType.ValueType  # 0
"""PC"""
PT_IOS: ProductType.ValueType  # 1
"""iOS"""
PT_ANDROID: ProductType.ValueType  # 2
"""Android"""
PT_H5: ProductType.ValueType  # 3
"""H5"""
global___ProductType = ProductType

class _CommonInterface:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _CommonInterfaceEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_CommonInterface.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    CI_UNKNOWN: _CommonInterface.ValueType  # 0
    """占位"""
    CI_HEARTBEAT: _CommonInterface.ValueType  # 110001
    """心跳"""
    CI_SPEED_TEST: _CommonInterface.ValueType  # 110002
    """测速"""
    CI_LOGIN: _CommonInterface.ValueType  # 110003
    """登录"""
    CI_GET_SERVER_INFO: _CommonInterface.ValueType  # 110004
    """取服务器信息"""
    CI_GET_SERVER_TIME: _CommonInterface.ValueType  # 110005
    """取服务器时间"""
    CI_PUSH_SESSION_KEY: _CommonInterface.ValueType  # 310001
    """推送会话密钥"""

class CommonInterface(_CommonInterface, metaclass=_CommonInterfaceEnumTypeWrapper):
    """//////////////////////////////////////////////////////////////////////////////
    接口定义
    //////////////////////////////////////////////////////////////////////////////

    接口编码定义：协议类型(0) + 消息类型(0) + 消息编号(0000)
    协议类型：请求/应答(1)，定阅/应答(2)，推送(3)，
    消息类型：通用((1))，行情(2)，交易(3)，资讯(4)
    消息编号：编号(0001-9999)
    """

CI_UNKNOWN: CommonInterface.ValueType  # 0
"""占位"""
CI_HEARTBEAT: CommonInterface.ValueType  # 110001
"""心跳"""
CI_SPEED_TEST: CommonInterface.ValueType  # 110002
"""测速"""
CI_LOGIN: CommonInterface.ValueType  # 110003
"""登录"""
CI_GET_SERVER_INFO: CommonInterface.ValueType  # 110004
"""取服务器信息"""
CI_GET_SERVER_TIME: CommonInterface.ValueType  # 110005
"""取服务器时间"""
CI_PUSH_SESSION_KEY: CommonInterface.ValueType  # 310001
"""推送会话密钥"""
global___CommonInterface = CommonInterface

@typing.final
class ResponseInfo(google.protobuf.message.Message):
    """//////////////////////////////////////////////////////////////////////////////
    消息定义
    //////////////////////////////////////////////////////////////////////////////

    返回信息
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CODE_FIELD_NUMBER: builtins.int
    MESSAGE_FIELD_NUMBER: builtins.int
    code: global___ResponseCode.ValueType
    """返回代码"""
    message: builtins.str
    """返回消息"""
    def __init__(
        self,
        *,
        code: global___ResponseCode.ValueType = ...,
        message: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["code", b"code", "message", b"message"]) -> None: ...

global___ResponseInfo = ResponseInfo

@typing.final
class EmptyResponse(google.protobuf.message.Message):
    """空返回消息"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESPONSE_INFO_FIELD_NUMBER: builtins.int
    @property
    def response_info(self) -> global___ResponseInfo:
        """返回信息"""

    def __init__(
        self,
        *,
        response_info: global___ResponseInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["response_info", b"response_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["response_info", b"response_info"]) -> None: ...

global___EmptyResponse = EmptyResponse

@typing.final
class LoginRequest(google.protobuf.message.Message):
    """//////////////////////////////////////////////////////////////////////////////
    登录
    //////////////////////////////////////////////////////////////////////////////

    登录（请求消息）
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USERNAME_FIELD_NUMBER: builtins.int
    ACCESS_TOKEN_FIELD_NUMBER: builtins.int
    CHANNEL_ID_FIELD_NUMBER: builtins.int
    PRODUCT_TYPE_FIELD_NUMBER: builtins.int
    VERSION_ID_FIELD_NUMBER: builtins.int
    MAC_ADDRESS_FIELD_NUMBER: builtins.int
    USER_TOKEN_FIELD_NUMBER: builtins.int
    username: builtins.str
    """用户名"""
    access_token: builtins.str
    """访问凭证"""
    channel_id: builtins.str
    """渠道号"""
    product_type: global___ProductType.ValueType
    """终端类型"""
    version_id: builtins.str
    """版本号"""
    mac_address: builtins.str
    """MAC地址"""
    user_token: builtins.str
    """用户登录令牌"""
    def __init__(
        self,
        *,
        username: builtins.str = ...,
        access_token: builtins.str = ...,
        channel_id: builtins.str = ...,
        product_type: global___ProductType.ValueType = ...,
        version_id: builtins.str = ...,
        mac_address: builtins.str = ...,
        user_token: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["access_token", b"access_token", "channel_id", b"channel_id", "mac_address", b"mac_address", "product_type", b"product_type", "user_token", b"user_token", "username", b"username", "version_id", b"version_id"]) -> None: ...

global___LoginRequest = LoginRequest

@typing.final
class LoginResponse(google.protobuf.message.Message):
    """登录（返回消息）"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESPONSE_INFO_FIELD_NUMBER: builtins.int
    MARKET_ACCESS_TOKENS_FIELD_NUMBER: builtins.int
    COMMENT_FIELD_NUMBER: builtins.int
    comment: builtins.str
    """备注"""
    @property
    def response_info(self) -> global___ResponseInfo:
        """返回信息"""

    @property
    def market_access_tokens(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """市场访问令牌"""

    def __init__(
        self,
        *,
        response_info: global___ResponseInfo | None = ...,
        market_access_tokens: collections.abc.Iterable[builtins.str] | None = ...,
        comment: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["response_info", b"response_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["comment", b"comment", "market_access_tokens", b"market_access_tokens", "response_info", b"response_info"]) -> None: ...

global___LoginResponse = LoginResponse

@typing.final
class GetServerInfoResponse(google.protobuf.message.Message):
    """取服务器信息（请求消息）
    无

    取服务器信息（返回消息）
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESPONSE_INFO_FIELD_NUMBER: builtins.int
    COMMON_INTERFACE_VERSION_FIELD_NUMBER: builtins.int
    MARKET_INTERFACE_VERSION_FIELD_NUMBER: builtins.int
    common_interface_version: builtins.str
    """通用接口版本号"""
    market_interface_version: builtins.str
    """行情接口版本号"""
    @property
    def response_info(self) -> global___ResponseInfo:
        """返回信息"""

    def __init__(
        self,
        *,
        response_info: global___ResponseInfo | None = ...,
        common_interface_version: builtins.str = ...,
        market_interface_version: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["response_info", b"response_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["common_interface_version", b"common_interface_version", "market_interface_version", b"market_interface_version", "response_info", b"response_info"]) -> None: ...

global___GetServerInfoResponse = GetServerInfoResponse

@typing.final
class GetServerTimeResponse(google.protobuf.message.Message):
    """取服务器时间（请求消息）
    无

    取服务器时间（返回消息）
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESPONSE_INFO_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    timestamp: builtins.int
    """时间戳"""
    @property
    def response_info(self) -> global___ResponseInfo:
        """返回信息"""

    def __init__(
        self,
        *,
        response_info: global___ResponseInfo | None = ...,
        timestamp: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["response_info", b"response_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["response_info", b"response_info", "timestamp", b"timestamp"]) -> None: ...

global___GetServerTimeResponse = GetServerTimeResponse

@typing.final
class PushSessionKey(google.protobuf.message.Message):
    """//////////////////////////////////////////////////////////////////////////////
    推送会话密钥
    //////////////////////////////////////////////////////////////////////////////

    推送会话密钥（推送消息）
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SESSION_KEY_FIELD_NUMBER: builtins.int
    session_key: builtins.str
    """会话密钥"""
    def __init__(
        self,
        *,
        session_key: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["session_key", b"session_key"]) -> None: ...

global___PushSessionKey = PushSessionKey
