from protobuf3.message import Message
from protobuf3.fields import StringField, Int64Field, Int32Field, UInt64Field, MessageField
from .structures import Mail, Notice, Marquee, GameItemEntry, Activity, RechargeButton


class C_Heartbeat(Message):
    pass


class S_Heartbeat(Message):
    pass


class C_Login(Message):
    pass


class S_Login(Message):
    pass


class C_Logout(Message):
    pass


class S_Logout(Message):
    pass


class S_HotGames(Message):
    pass


class C_ChildrenItemsOf(Message):
    pass


class S_ChildrenItemsOf(Message):
    pass


class S_Ntf_ItemsChanged(Message):
    pass


class C_EnterGame(Message):
    pass


class S_EnterGame(Message):
    pass


class C_LeaveGame(Message):
    pass


class S_LeaveGame(Message):
    pass


class S_Announcement(Message):
    pass


class S_Marquee(Message):
    pass


class C_UserSettings(Message):
    pass


class S_UserSettings(Message):
    pass


class C_UpdatePassword(Message):
    pass


class S_UpdatePassword(Message):
    pass


class C_UpdateBankBalance(Message):
    pass


class S_UpdateBankBalance(Message):
    pass


class C_UpdateBankPassword(Message):
    pass


class S_UpdateBankPassword(Message):
    pass


class C_AuthBank(Message):
    pass


class S_AuthBank(Message):
    pass


class C_UserBalance(Message):
    pass


class S_Ntf_UserBalance(Message):
    pass


class C_VerifiCode(Message):
    pass


class S_VerifiCode(Message):
    pass


class C_BindPhone(Message):
    pass


class S_BindPhone(Message):
    pass


class C_BindAlipay(Message):
    pass


class S_BindAlipay(Message):
    pass


class C_PrivateMail(Message):
    pass


class S_PrivateMail(Message):
    pass


class C_RemPrivateMail(Message):
    pass


class S_RemPrivateMail(Message):
    pass


class S_Ntf_NewPrivateMails(Message):
    pass


class C_Activity(Message):
    pass


class S_Activity(Message):
    pass


class C_Notice(Message):
    pass


class S_Notice(Message):
    pass


class S_Ntf_UserBank(Message):
    pass


class S_Default(Message):
    pass


class S_Offline(Message):
    pass


class C_Marquee(Message):
    pass


class S_Ntf_Marquee(Message):
    pass


class S_Ntf_Config(Message):
    pass

C_Heartbeat.add_field('ts', Int64Field(field_number=1, optional=True))
S_Heartbeat.add_field('ts', Int64Field(field_number=1, optional=True))
C_Login.add_field('token', StringField(field_number=1, optional=True))
S_Login.add_field('ec', Int32Field(field_number=1, optional=True))
S_Login.add_field('account', StringField(field_number=2, optional=True))
S_Login.add_field('nickname', StringField(field_number=3, optional=True))
S_Login.add_field('guid', UInt64Field(field_number=4, optional=True))
S_Login.add_field('icon', Int32Field(field_number=5, optional=True))
S_Login.add_field('balance', Int64Field(field_number=7, optional=True))
S_Login.add_field('bank', Int64Field(field_number=8, optional=True))
S_Login.add_field('freezed', Int64Field(field_number=10, optional=True))
S_Login.add_field('area', StringField(field_number=11, optional=True))
S_Login.add_field('ip', StringField(field_number=12, optional=True))
S_Login.add_field('phone', StringField(field_number=13, optional=True))
S_Login.add_field('vip', Int32Field(field_number=15, optional=True))
S_Login.add_field('qq', StringField(field_number=18, optional=True))
S_Login.add_field('wechat', StringField(field_number=19, optional=True))
S_Login.add_field('bets', Int64Field(field_number=20, optional=True))
S_Login.add_field('nextVipNeed', Int64Field(field_number=21, optional=True))
S_Login.add_field('bankPass', StringField(field_number=22, optional=True))
S_Login.add_field('name', StringField(field_number=23, optional=True))
S_Login.add_field('alipay', StringField(field_number=24, optional=True))
S_Logout.add_field('ec', Int32Field(field_number=1, optional=True))
S_HotGames.add_field('hots', MessageField(field_number=1, repeated=True, message_cls=GameItemEntry))
C_ChildrenItemsOf.add_field('parentId', Int64Field(field_number=1, optional=True))
S_ChildrenItemsOf.add_field('parentId', Int64Field(field_number=1, optional=True))
S_ChildrenItemsOf.add_field('list', MessageField(field_number=5, repeated=True, message_cls=GameItemEntry))
S_Ntf_ItemsChanged.add_field('newList', MessageField(field_number=1, repeated=True, message_cls=GameItemEntry))
C_EnterGame.add_field('gameId', Int64Field(field_number=1, optional=True))
S_EnterGame.add_field('ec', Int32Field(field_number=1, optional=True))
S_EnterGame.add_field('gameId', Int64Field(field_number=2, optional=True))
S_EnterGame.add_field('url', StringField(field_number=3, optional=True))
S_EnterGame.add_field('reserved', StringField(field_number=4, optional=True))
C_LeaveGame.add_field('gameId', Int64Field(field_number=1, optional=True))
S_LeaveGame.add_field('ec', Int32Field(field_number=1, optional=True))
S_LeaveGame.add_field('gameId', Int64Field(field_number=2, optional=True))
S_Announcement.add_field('title', StringField(field_number=1, optional=True))
S_Announcement.add_field('body', StringField(field_number=3, optional=True))
S_Announcement.add_field('url', StringField(field_number=4, optional=True))
S_Announcement.add_field('date', Int64Field(field_number=6, optional=True))
S_Announcement.add_field('sender', Int64Field(field_number=7, optional=True))
S_Marquee.add_field('times', Int32Field(field_number=1, optional=True))
S_Marquee.add_field('text', StringField(field_number=4, repeated=True))
C_UserSettings.add_field('nickname', StringField(field_number=1, optional=True))
C_UserSettings.add_field('icon', Int32Field(field_number=7, optional=True))
C_UserSettings.add_field('qq', StringField(field_number=8, optional=True))
C_UserSettings.add_field('wechat', StringField(field_number=9, optional=True))
S_UserSettings.add_field('ec', Int32Field(field_number=1, optional=True))
S_UserSettings.add_field('nickname', StringField(field_number=4, optional=True))
S_UserSettings.add_field('icon', Int32Field(field_number=7, optional=True))
S_UserSettings.add_field('qq', StringField(field_number=8, optional=True))
S_UserSettings.add_field('wechat', StringField(field_number=9, optional=True))
C_UpdatePassword.add_field('oldPassword', StringField(field_number=1, optional=True))
C_UpdatePassword.add_field('password', StringField(field_number=2, optional=True))
S_UpdatePassword.add_field('ec', Int32Field(field_number=1, optional=True))
S_UpdatePassword.add_field('password', StringField(field_number=2, optional=True))
C_UpdateBankBalance.add_field('delta', Int64Field(field_number=1, optional=True))
C_UpdateBankBalance.add_field('bankPass', StringField(field_number=2, optional=True))
S_UpdateBankBalance.add_field('ec', Int32Field(field_number=1, optional=True))
S_UpdateBankBalance.add_field('balance', Int64Field(field_number=2, optional=True))
S_UpdateBankBalance.add_field('bank', Int64Field(field_number=4, optional=True))
S_UpdateBankBalance.add_field('delta', Int64Field(field_number=5, optional=True))
C_UpdateBankPassword.add_field('oldPassword', StringField(field_number=1, optional=True))
C_UpdateBankPassword.add_field('newPassword', StringField(field_number=2, optional=True))
S_UpdateBankPassword.add_field('ec', Int32Field(field_number=1, optional=True))
S_UpdateBankPassword.add_field('bankPass', StringField(field_number=2, optional=True))
C_AuthBank.add_field('password', StringField(field_number=1, optional=True))
S_AuthBank.add_field('ec', Int32Field(field_number=1, optional=True))
S_Ntf_UserBalance.add_field('ec', Int32Field(field_number=1, optional=True))
S_Ntf_UserBalance.add_field('guid', UInt64Field(field_number=2, optional=True))
S_Ntf_UserBalance.add_field('reason', Int32Field(field_number=3, optional=True))
S_Ntf_UserBalance.add_field('balance', Int64Field(field_number=4, optional=True))
S_Ntf_UserBalance.add_field('delta', Int64Field(field_number=5, optional=True))
C_VerifiCode.add_field('phone', StringField(field_number=1, optional=True))
S_VerifiCode.add_field('ec', Int32Field(field_number=1, optional=True))
C_BindPhone.add_field('phone', StringField(field_number=1, optional=True))
C_BindPhone.add_field('code', StringField(field_number=2, optional=True))
C_BindPhone.add_field('password', StringField(field_number=3, optional=True))
S_BindPhone.add_field('ec', Int32Field(field_number=1, optional=True))
S_BindPhone.add_field('phone', StringField(field_number=2, optional=True))
S_BindPhone.add_field('password', StringField(field_number=3, optional=True))
C_BindAlipay.add_field('alipay', StringField(field_number=1, optional=True))
C_BindAlipay.add_field('name', StringField(field_number=2, optional=True))
S_BindAlipay.add_field('ec', Int32Field(field_number=1, optional=True))
S_BindAlipay.add_field('alipay', StringField(field_number=2, optional=True))
S_BindAlipay.add_field('name', StringField(field_number=3, optional=True))
S_PrivateMail.add_field('ec', Int32Field(field_number=1, optional=True))
S_PrivateMail.add_field('mails', MessageField(field_number=2, repeated=True, message_cls=Mail))
C_RemPrivateMail.add_field('ids', Int32Field(field_number=1, repeated=True))
S_RemPrivateMail.add_field('ec', Int32Field(field_number=1, optional=True))
S_Ntf_NewPrivateMails.add_field('total', Int32Field(field_number=1, optional=True))
S_Activity.add_field('ec', Int32Field(field_number=1, optional=True))
S_Activity.add_field('activities', MessageField(field_number=2, repeated=True, message_cls=Activity))
S_Notice.add_field('ec', Int32Field(field_number=1, optional=True))
S_Notice.add_field('notices', MessageField(field_number=2, repeated=True, message_cls=Notice))
S_Ntf_UserBank.add_field('ec', Int32Field(field_number=1, optional=True))
S_Ntf_UserBank.add_field('reason', Int32Field(field_number=3, optional=True))
S_Ntf_UserBank.add_field('bank', Int64Field(field_number=4, optional=True))
S_Ntf_UserBank.add_field('delta', Int64Field(field_number=5, optional=True))
S_Default.add_field('ec', Int32Field(field_number=1, optional=True))
S_Offline.add_field('reason', Int32Field(field_number=1, optional=True))
S_Ntf_Marquee.add_field('ec', Int32Field(field_number=1, optional=True))
S_Ntf_Marquee.add_field('mqs', MessageField(field_number=2, repeated=True, message_cls=Marquee))
S_Ntf_Config.add_field('recharge', StringField(field_number=1, optional=True))
S_Ntf_Config.add_field('www', StringField(field_number=2, optional=True))
S_Ntf_Config.add_field('custom', StringField(field_number=3, optional=True))
S_Ntf_Config.add_field('php_index', StringField(field_number=4, optional=True))
S_Ntf_Config.add_field('active', StringField(field_number=5, optional=True))
S_Ntf_Config.add_field('recharge_button', MessageField(field_number=10, repeated=True, message_cls=RechargeButton))
