package mmbizwxaattrappsvr;

import "mmgateway/public/proto/mmbuiltintype.proto";


message WxaAttrSyncRequest
{
	required micromsg.BaseRequest BaseRequest = 1;
    optional string WxaUserName = 2;
    optional bytes LastAttrVersion = 3;
	optional string WxaAppid = 4;
	optional string InstanceId = 5;
}

message WxaAttrSyncResp_KeyValue
{
    optional string Key = 1;
    optional string Value = 2;
}

message WxaAttrSyncResponse
{
    required micromsg.BaseResponse BaseResponse = 1;
    optional bytes LastAttrVersion = 2;
    repeated WxaAttrSyncResp_KeyValue UpdateInfoList = 3;
	optional string WxaUserName = 4;

}

// batch
message WxaAttrSyncSingleReqInfo
{
	optional string WxaUserName = 1;
	optional bytes LastAttrVersion = 2;
}

message  WxaAttrSyncSingleRespInfo
{
	required string WxaUserName = 1;
	optional bytes LastAttrVersion = 2;
	repeated WxaAttrSyncResp_KeyValue UpdateInfoList = 3;
}

message BatchWxaAttrSyncRequest
{
	required micromsg.BaseRequest BaseRequest = 1;
	repeated WxaAttrSyncSingleReqInfo  ReqInfoList = 2;
    optional uint32 Scene = 3;                  // 参数参考wxa_frame_document/blob/master/小程序客户端、后台场景值交互定义.md
}

message BatchWxaAttrSyncResponse
{
	required micromsg.BaseResponse BaseResponse = 1;
	repeated WxaAttrSyncSingleRespInfo RespInfoList = 2;
}


////////////////////////////////////////////////////////

message WxaAppBaseInfo 
{
	optional uint32 VersionType = 1;
	optional uint32 AppVersion = 2;
	optional uint32 Scene = 3;
	optional string PagePath = 4;
	optional uint32 BackGround = 5; // 是否由后台切换到前台: 0. 否  1. 是
	optional uint32 PreScene = 6;
}

message WxaPluginInfo
{
	optional string host_appid = 1; // 调用插件小程序的小程序appid
}

message WxaClientPublicLibInfo
{
	optional uint32 PubVersion = 1;  // 客户端公共库版本号
	optional uint32 UpdateTime = 2;  // 公共库更新时间
	optional uint32 UpdateScene = 3; // 公共库更新场景：1. CGI  2. newxml  3. Launch
}

message WxaWebLaunchInfo
{
	optional string Appid = 1;
	optional string Url = 2;
}

message WxaJumpInfo
{
	optional string source_appid = 1;
    optional uint32 source_type = 2;    // 默认不填，1:广告组件, 2:插件
    optional string agent_id = 3;
}

message WxaPluginSDKInfo
{
    optional string plugin_sdk_appid = 1;   // 小程序拉起小程序使用的插件
    optional string source_appid = 2;
}
	
message LaunchWxaAppRequest
{
	required micromsg.BaseRequest BaseRequest = 1;
	
	optional string AppId = 2;
	optional WxaAppBaseInfo WxaAppInfo = 3;
	optional uint32 RequestType = 4;
	optional WxaPluginInfo plugin_info = 5;
	optional WxaClientPublicLibInfo PublicLib = 6;
	optional WxaWebLaunchInfo WebLaunchInfo = 7;
	optional WxaJumpInfo JumpInfo = 8;
    optional WxaPluginSDKInfo PluginSDKInfo = 9;   // 先放弃 
    optional int32 PerformanceLevel = 10;
	optional string InstanceId = 11;
}

//
message LaunchAction
{
	optional uint32 ActionCode = 1;
	optional string OpenUrl = 2;
	optional bool NeedHistoryList = 3;
	optional string AlertMsg = 4;
	optional string AlertTitle = 5;
}

message CheckJsApiInfo
{
	optional bytes jsapi_control_bytes = 1;
	repeated bytes state_jsapi_bytes = 2;
}

message WxaAppHostInfo
{
	message PluginInfo
	{
		optional string plugin_appid = 1;
		optional string plugin_username = 2;
	}

	message JumpToInfo
	{
		optional string jump_to_appid = 1;
		optional string jump_to_username = 2;
	}

	repeated PluginInfo plugin_info = 1; //插件appid列表
	repeated JumpToInfo jump_to_info = 2;
}

message PublicLibUpdateInfo
{
	optional bool need_update = 1;
	optional string url = 2;
	optional string md5 = 3;
	optional uint32 version = 4;
	optional uint32 force_update = 5;
    optional string patch_url = 6;
}

message ActionSheetInfo
{
	optional bool OpenComment = 1;
    optional bool CouldEvaluate = 2;        // 跟useruin相关
}

message OperationInfo
{
	optional string JsonInfo = 1; //运营的权限位都放到这个json里，透传给客户端	
}

message LaunchWxaAppResponse
{
    required micromsg.BaseResponse BaseResponse = 1;

	optional LaunchAction Launch = 2;
	optional CheckJsApiInfo CheckJsApi = 3;
	optional WxaAppHostInfo HostInfo = 4; // deprecated
	optional PublicLibUpdateInfo PublicLibUpdate = 5;
	optional ActionSheetInfo ActionSheet = 6;
	optional OperationInfo Operation = 7;
}

///////////////////////////////////////////////////////
message WxaWidgetBaseInfo 
{
	optional uint32 VersionType = 1;
	optional uint32 AppVersion = 2;
	optional uint32 WidgetType = 3;
	optional uint32 Scene = 4;
	optional uint32 PublicLibVersion = 10;
}

message LaunchWxaWidgetRequest
{
	required micromsg.BaseRequest BaseRequest = 1;
	
	optional string AppId = 2;
	optional uint32 RequestType = 3;
	optional WxaWidgetBaseInfo WxaWidgetInfo = 4;
}

//
message WidgetLaunchAction
{
	optional uint32 ActionCode = 1;
	optional string AlertMsg = 2;
}

message WidgetVersionInfo
{
	optional uint32 AppVersion = 1;
	optional string WidgetVersionMD5 = 2;
	optional string SearchWidgetVersionMD5 = 3;
}


message WxaWidgetSetting
{
	optional uint32 DrawMinInterval = 1;
	optional bool TimerEnabled = 2;
	optional bool DrawLock = 3;
}

message LaunchWxaWidgetResponse
{
	required micromsg.BaseResponse BaseResponse = 1;

	optional WidgetLaunchAction Launch = 2;
	optional CheckJsApiInfo CheckJsApi = 3;
	optional WidgetVersionInfo VersionInfo = 4;
	optional WxaWidgetSetting Setting = 5;
}

message SingleBindInfo
{
	optional string username = 1;
	optional string title = 2;
	optional string icon_url = 3;
}

message BindInfo
{
	repeated SingleBindInfo info = 1;
}

message GetBindInfoResponse
{
	repeated BindInfo infoList  = 1;	
}

message GeneralCacheValue
{
    optional int32 ret = 1;
    optional bytes resp = 2;
}

