syntax = "proto2";

package UserCmd;

//option optimize_for = LITE_RUNTIME;

option java_package = "com.miaole.live.protocol.request";
option java_outer_classname = "UserCmd";

message login {/**NO_AUTH**/
  repeated string paramKey = 1;//参数key
  repeated string paramValue = 2;//参数值
}

message register {/**NO_AUTH**/
  repeated string paramKey = 1;//参数key
  repeated string paramValue = 2;//参数值
}

//message logon {/**NO_AUTH**/
//  optional string userId = 1;//玩家内部ID
//  optional string tickToken = 2;//登录成功的tocken
//  optional bool relogon = 3;//是否重连
//  optional bool isH5=4[default=false];//是否h5登录
//  optional string h5Inviter=5;//h5邀请人
//  optional int32  shareType=6[default=1];// 1  种子类型   2  灵气类型   3 召回好友  4 助力好友
//  optional string pMcId = 7;//包渠道ID
//  optional string pScId = 8;//包子渠道ID
//  optional bool refToken = 9;//刷新token
//  optional string appVersion = 10;//版本号
//  optional int32 source = 11;//来源 0:APP 1:微信小程序  2:八门
//  optional string phoneModel = 12;//机型
//  optional int32 roleType = 13;// 角色类型（pc专用），0-用户，1-主持人，2-主播
//}

// logon统一成login参数格式
message logon {/**NO_AUTH**/
  repeated string paramKey = 1;//参数key
  repeated string paramValue = 2;//参数值
}
message offline {

}

//找回密码
message retrievePwd {/**NO_AUTH**/
  optional string phoneNumber = 1;//手机号
  optional string msgCode = 2;//短信验证码
  optional string password = 3;//新密码
}

//获得渠道参数 StringArrayResult：数组[0]=主渠道ID [1]=子渠道ID
message getChannelInfo {/**NO_AUTH**/
	optional string deviceId = 1;//设备码
}

//验证手机短信码
message verifySmsCode {/**NO_AUTH**/
	optional string phoneNumber = 1;//手机号
	optional string msgCode = 2;//短信验证码
}

//TCP心跳
message heartBeat {/**NO_AUTH**/
}

//TCP登录校验
message logonTcp {/**NO_AUTH**/
  optional string userId = 1;//玩家内部ID
  optional string tickToken = 2;//登录成功的tocken
  optional bool onlyTcp = 3;//只用TCP请求
}

// 撤销注销账号操作
message removeCancellation {/**NO_AUTH**/
    optional string userId = 1; // 用户Id
}

// 获取大厅样式列表，返回CommonResult.IntResult 1为默认，2为年度盛典
message getLobbyMenuStyle {/**NO_AUTH**/
}

// 获取用户所在房间信息 返回UserResult.UserLocationRoomInfo
message getUserLocationRoomInfo {
    optional string userId = 1; // 目标用户id
    optional bool follow = 2; // 是否判断跟随进房（为true时，不能跟随进房则不返回数据）
}

// 获取随机用户名 返回CommonResult.StringResult
message getRandomUserName {
    optional int32 sex = 1; //性别
}

// 获取随机图片列表 返回CommonResult.StringArrayResult
message getRandomUserUrls {
    optional int32 sex = 1; //性别
}

// 获取手机号绑定的用户列表 返回UserOptResult.PhoneBindUserResult
message getPhoneBindUser {/**NO_AUTH**/
    optional string phoneNumber = 1;//手机号
    optional string msgCode = 2;//短信验证码
}

// 获取手机号绑定的用户列表(闪验) 返回UserOptResult.PhoneBindUserResult
message getPhoneBindUserByFlash {/**NO_AUTH**/
  optional string token = 1; //闪验token
  optional string appId = 2; //appId（如wasai002）
  optional int32 deviceType = 3; //设备类型（1安卓2ios）
  optional string bundleId = 4; //包名
  optional int32 serviceType = 5; // 服务商类型  0 or null : 闪验  , 1:腾讯
  optional string  carrier = 6; // 运营商(腾讯用)
}

// 更新密码（使用绑定的手机号找回密码）
message updatePwd {/**NO_AUTH**/
    optional string phoneNumber = 1;//上一步发短信的手机号
    optional string userId = 2;// 用户id
    optional string newPwd = 3;// 新密码
    optional string updatePwdToken = 4; // 上一步获得的更新密码的鉴权token
}

// 找回密码提交审核
message findPwdSubmitApproval {/**NO_AUTH**/
    optional string userId = 1;// 用户id
    optional string reason = 2;// 找回理由
    optional string idCard = 3;// 身份证号（后六位）
    optional string realName = 4;// 真实姓名
    optional string bindPhone = 5;// 绑定手机
    optional string registerTime = 6;// 注册时间
    optional string registerAddress = 7;// 注册地址
    optional string lastLoginTime = 8;// 最后登录时间
    repeated string payOrderUrls = 9;// 充值订单截图
    optional string receivePhone = 10;// 接收短信手机
    optional string productId = 11;// 所属产品ID
}

// 判断用户是否为客服白名单用户，返回KeyValuesResult 用户ID对应是否为客服白名单用户
message checkCustomUser {
    repeated string userIds = 1; // 用户id
}

// 获取在线用户信息列表(新)，返回：UserOptResult.NewOnlineUserList
// 分页，建议每页30条，前端做列表去重，避免分页数据重复
message getOnlineUserListNew {
  optional int32 sexType = 1; // 0-全部，1-男，2-女
  optional int64 lastLoginTime = 2; // 最后一条记录登录时间
  optional int32 pageSize = 3; // 分页大小
}

// 判断用户是否为是否在在线的人白名单内，返回BoolResult
message checkOnlinePeopleWhiteList {
}

// 设置用户匿名送礼状态
message updateAnonymous {
    optional bool anonymous = 1;// 是否匿名
}

// 设置神秘人状态
message updateMysteryMan {
    optional bool mysteryMan = 1;// 是否神秘人
}

// 获取用户匿名送礼状态
message getAnonymousStatus {
}

// 获取神秘人状态
message getMysteryManStatus {
}

// 设置活动弹幕广播状态
message updateActAwardBroadcast {
    optional int32 type = 1; // 0-全服弹幕广播，1-仅小额弹幕广播
    optional bool status = 2;// 开启状态
}

// 获取活动弹幕广播状态
message getActAwardBroadcastStatus {
}

//获得用户渠道数据 返回：UserResult.UserChannelData
message getUserChannelData {
    optional string userId = 1;//用户ID
}

// 设置勇者斗篷状态
message updateWarriorCloak {
    optional bool warriorCloak = 1;// 是否开启勇者斗篷
	optional int32 cloakLevel = 2;// 使用隐身斗篷等级（兼容旧包，不传默认当前最高等级斗篷）
  optional bool voiceTransformer = 3;// 是否开启变声器
}

// 获取勇者斗篷状态，返回：UserResult.getWarriorCloakInfo
message getWarriorCloak {
}

//解除安全模式
message unlockSafeMode {
    optional string phoneNumber = 1;//手机号
    optional string msgCode = 2;//短信验证码
}

//发送解除安全模式短信
message sendUnlockSafeModeSms {
    optional string phoneNumber = 1;//手机号
}

//主播进房关闭隐身斗篷，目前只有个人语音房要修改
message anchorEnterRoomCloseWarriorCloak {
  optional string roomId = 1;//房间ID
}

//用户设置自己当前经纬度信息
message setUserLocation {
  optional double lng = 1; //经度
  optional double lat = 2; //纬度
}

// 设置接收陌生人打扰最低财富等级
message setCustomDisturbMinfunlevel {
  optional int32 funLevel = 1;// 财富等级
}

// 获取接收陌生人打扰最低财富等级，返回：CommonResult.IntResult
message getCustomDisturbMinfunlevel {
}

// 是否需要弹出悬浮窗提示，返回：CommonResult.BoolResult
message isNeedToPopUpTips {
  optional int32 type = 1;// 1：视频房最小化时的提示，2：关闭悬浮窗时的提示
}

// 设置自定义消费提醒额度
message everyDayConsumeConfig {
  optional int32 quota = 1;// 额度
  optional bool everyDayConsumeTip = 2;//每日消费提醒开关
  optional int32 type = 3;// 1:修改额度，2：修改每日消费提醒开关
}

// 获取自定义消费提醒额度，返回：UserResult.CustomQuotaInfo
message getCustomQuotaInfo {
}

// 当日不再提醒消费限制
message todayNotTipsConsumeLimit {
}

// 判断用户能否展示榜单数据，返回：CommonResult.BoolResult
message canShowedRank {
  optional string userId = 1;// 用户ID
}

// 使用靓号碎片卡
message useCuteNumberCard {
}

//解除聊天安全模式
message unlockChatSafeMode {
  optional string phoneNumber = 1;//手机号
  optional string msgCode = 2;//短信验证码
}

//发送解除聊天安全模式短信
message sendUnlockChatSafeModeSms {
  optional string phoneNumber = 1;//手机号
}

//身份证解除聊天安全模式
message unlockChatSafeModeByIdCard {
  optional string idCard = 1;//身份证后4位
}

//身份证解除聊天安全模式
message unlockChatSafeModeByOrderTime {
  repeated string createTime = 1;//日期集合
}

//获得我的ip所在国家数据 UserResult.CountryData
message getMyIpCountry {/**NO_AUTH**/

}

//清除情侣卡
message clearCoupleCard {
  optional string cardId = 1;//卡片id
}

//用户vpn网络状态切换
message vpnNetworkStatusChange {
  optional int32 changeState = 1;//1-正常网络 2-vpn网络
}

//个性装扮穿戴模式开关
message UserAwardWearSwitch {
  optional int32 type = 1;// 1:获取开关信息，2：修改开关状态
  optional bool status = 2;// 开启状态
}

// 随机获取隐身昵称 返回CommonResult.StringResult
message randomCloakNickName {
}

//设置客户端语言类型
message setLanguage {
  optional string language = 1;// 语言类型
}


// 随机修改隐身昵称 当日有免费次数 消耗免费次数随机修改 返回CommonResult.StringResult
message freeRandomCloakNickName {
}

// 付费随机修改隐身昵称
message payRandomCloakNickName {
}

// 获取勇者斗篷状态，返回：UserResult.getWarriorCloakInfoOnRoom
message getWarriorCloakOnRoom {
}

// 付费随机修改变声器声卡 返回UserResult.RandomSoundCardInfo
message payRandomSoundCard {
}

// 是否有免费修改隐身昵称 返回CommonResult.BoolResult
message hadFreeRandomCloakNickName {
}

// 选择变声器声卡
message useSoundCard {
  optional int32 soundCardId = 1;
  optional string soundCardName = 2;
}

// 判断用户是否在玩法礼物解除财富等级限制白名单内，返回BoolResult
message checkPlayGiftRemoveWealthLevelLimitWhiteList {

}