package mmbizsecdatareport;

import "comm2/tlvpickle/skbuiltintype.proto";
import "mmbiz/mmappsvr/mmbizwxaattrappsvr/mmbizwxaattrappsvr.proto";

message CommReportData {
	optional uint32 bizuin=1;
	optional uint32 useruin=2;
    optional uint32 client_ip = 3;
    optional string operator_ = 4;
}

message CheckBizProfile {
	enum InfoType
	{
		INFO_TYPE_NICKNAME = 1; 
		INFO_TYPE_SIGNATURE = 2;
		INFO_TYPE_HEADIMG = 3; 	
	}
    optional uint32 info_type = 1;
    optional string content = 2;
    optional uint32 isnewreg = 3;
	optional uint32 scene = 4;	//nickname[enum enSetNickNameScene];
}

////域名设置上报
message BizUinDomainSetReq{
	required string domain = 1;
	optional uint32 bizuin = 2;
	optional string clientip = 3;
	optional int32 optiontype = 4;		//def enSpamDomainBizUinEnum.  http://mmtest.oa.com/newsource/xref/MicroMsg_proj/antispam/comm/mmantispamdef.h?a=true&h=1015#1015
	optional string contractor = 5;
	optional uint32 updtime = 6;
}

message SetSnsSelfVisibleLog {
    optional uint32 useruin = 1;
    optional uint32 post_timestamp = 2;
    optional string qrcode_img_url = 3;
    optional uint64 objectid = 4;
    optional uint32 appuin = 5;
    optional string appid = 6;  
    optional string raw_img_url_info = 7;
    optional string app_path = 8;
}

message WxappShareReq {
    optional uint32 useruin = 1;
    optional uint32 appuin = 2;
    optional uint32 scene = 3;
    optional string currentpath = 4;
    optional string currenttitle = 5;
    optional string sharepath = 6;  
    optional string sharetitle = 7;
    optional uint32 destination = 8;
    optional string h5url = 9;
}


message ReportDataReq {
	optional uint32 appid=1;	// def.h
	optional string str_data=2;		//业务侧pb的toJson
	optional CommReportData comm_data = 3;
	
    optional CheckBizProfile biz_profile = 4;
    optional BizUinDomainSetReq bizuin_domain_set = 5;
    optional UrlBlockInfo url_block_info = 6;
    optional SetSnsSelfVisibleLog set_sns_self_visible_log = 7; 
    optional UrlAuditInfo url_audit_info = 8; 
    optional mmbizwxaattrappsvr.LaunchWxaAppRequest launch_wxaapp_request =9; 
    optional WxappShareReq wxapp_share_req =10;  
}

//url拉黑上报
message UrlBlockInfo                                                                            
{                                  
    optional string url = 1;                    
    optional string operator = 2;   
    optional uint32 evil_type = 3;
    optional uint32 level = 4;  
	optional string remark = 5;
    optional string domain = 6;
    optional string host = 7;
}   

message UrlAuditInfo
{                                  
    optional string url = 1;  
    optional string operator = 2;   
    optional uint32 evil_type = 3;   
    optional uint32 level = 4;  
	optional string remark = 5;  
    optional string group_info = 6;  
    optional uint32 scene = 7;
}   



/////////////////////以下为非数据上报的业务接口pb
message GetBizUinDomainSetRecordReq {
	optional string domain=1;
	optional string root_domain=2;
	optional uint32 svr_type = 3;
	repeated int32 optiontype = 4;
	optional uint32 limit_cnt = 5;
}

message BizUinDomainSetRecord {
	optional uint32 record_id = 1;
	optional uint32 bizuin = 2;
	optional uint32 svr_type = 3;
	optional string domain = 4;
	optional string root_domain = 5;
	optional uint32 optiontype = 6;
	optional string contractor = 7;
	optional string clientip = 8;
}

message GetBizUinDomainSetRecordResp {
	repeated BizUinDomainSetRecord record_list = 1;
}


service MMBizSecDataReport {
    option( tlvpickle.Magic ) = 10001;

    rpc ReportData ( ReportDataReq) returns (tlvpickle.SKBuiltinNoexsit_PB) {
        option( tlvpickle.CmdID ) = 1;
        option( tlvpickle.OptString ) = "u:";
        option( tlvpickle.Usage ) = "-u <biz_uin>";
    } 

	rpc GetBizUinDomainSetRecord(GetBizUinDomainSetRecordReq) returns (GetBizUinDomainSetRecordResp) {
        option( tlvpickle.CmdID ) = 2;
        option( tlvpickle.OptString ) = "D:R:S:O:C:";
        option( tlvpickle.Usage ) = "-D <domain> -R <root_domain> -S <svr_type> -O <optiontype> -C <limit_cnt>";
	}
}


