
package mmbizappinfo;

import "comm2/tlvpickle/skbuiltintype.proto";
import "mmbiz/mmbizcore/mmbizappinfo/mmbizappinfo.proto";

enum CacheKind {
    CacheKind_AppInfo = 1;
    CacheKind_MasterInfo = 2;
    CacheKind_MpHelperInfo = 3;
}

message SyncCacheReq {
    optional uint32 stamp = 1;
    optional CacheKind cache_kind = 2;
    optional bool trust_value = 3[default = false];

    optional AppInfo appinfo = 10;
    optional MasterInfo masterinfo = 12;
    optional MpHelperInfo mphelperinfo = 13;
}

message BatchSyncCacheReq {
    repeated SyncCacheReq list = 1;
}

message SyncCacheExtReq {
    optional string ip = 1;
    optional int32 port = 2;

    optional SyncCacheReq req = 10;
}

message UpdateCacheReq {
    optional uint32 stamp = 1;
    optional CacheKind cache_kind = 2;

    optional AppInfo appinfo = 10;
    optional MasterInfo masterinfo = 11;
    optional MpHelperInfo mphelperinfo = 12;
}

message GenCardSignatureReq{
    optional uint32 bizuin = 1;
    repeated bytes signature_parameter = 2;
}

message GenCardSignatureResp{
    optional string card_signature = 1;
}

message GetIDCInfoReq {
    optional uint32 appuin = 1;
    optional bool use_slave_data = 2[default = false];
}

message GetIDCInfoResp {
    optional uint32 appuin = 1;

    optional int32 SrcIdc = 10;
    optional int32 CurIdc = 11;
    optional int32 TargetIdc = 12;
    optional int32 MigrateFlag = 13;
    optional uint32 migratetime = 14;

    optional uint64 seq = 9999;
}

service MMBizAppInfoRead {
    option(tlvpickle.Magic) = 18071;

    rpc SyncCache(SyncCacheReq) returns (tlvpickle.SKBuiltinEmpty_PB) {
        option(tlvpickle.CmdID) = 1;
        option(tlvpickle.OptString) = "n:k:v:t:";
        option(tlvpickle.Usage) = "-n <name, 1(appinfo) 2(masterinfo) 3(mphelper)> -k <key> -v <value> -t <stamp>";
    }

    rpc GetAppInfoByAppId(GetAppInfoByAppIdReq) returns (AppInfo) {
        option(tlvpickle.CmdID) = 2;
        option(tlvpickle.OptString) = "a:u:";
        option(tlvpickle.Usage) = "-a <appid> -u <use cache, default 0>";
    }

    rpc GetAppInfoByAppUin(GetAppInfoByAppUinReq) returns (AppInfo) {
        option(tlvpickle.CmdID) = 3;
        option(tlvpickle.OptString) = "p:u:";
        option(tlvpickle.Usage) = "-p <appuin> -u <use cache, default 0>";
    }

    rpc GetMasterInfoByMaster(GetMasterInfoByMasterReq) returns (MasterInfo) {
        option(tlvpickle.CmdID) = 4;
        option(tlvpickle.OptString) = "m:";
        option(tlvpickle.Usage) = "-m <masteruin>";
    }

    rpc GetMasterInfoBySlave(GetMasterInfoBySlaveReq) returns (MasterInfo) {
        option(tlvpickle.CmdID) = 5;
        option(tlvpickle.OptString) = "s:";
        option(tlvpickle.Usage) = "-s <slaveuin>";
    }

    rpc BatchGetAppInfoByAppUin(BatchGetAppInfoByAppUinReq) returns (BatchGetAppInfoByAppUinResp) {
        option(tlvpickle.CmdID) = 6;
        option(tlvpickle.OptString) = "p:";
        option(tlvpickle.Usage) = "-p <appuins:appuina;appuinb>";
    }

    rpc BatchGetAppInfoByAppId(BatchGetAppInfoByAppIdReq) returns (BatchGetAppInfoByAppIdResp) {
        option(tlvpickle.CmdID) = 7;
        option(tlvpickle.OptString) = "a:";
        option(tlvpickle.Usage) = "-a <appids:appida;appidb>";
    }

    rpc GetAppIdAndSecretKeyByAppUin(tlvpickle.SKBuiltinUint32_PB) returns (AppIdAndSecretKeyInfo) {
        option(tlvpickle.CmdID) = 8;
        option(tlvpickle.OptString) = "p:";
        option(tlvpickle.Usage) = "-p <appuin>";
    }

    rpc CheckSecretKey(AppIdAndSecretKeyInfo) returns (SecureDataTicketInfo) {
        option(tlvpickle.CmdID) = 9;
        option(tlvpickle.OptString) = "a:s:";
        option(tlvpickle.Usage) = "-a <appid> -s <secretkey>";
    }

    rpc GetAppUinAndSecretKeyByAppId(GetAppInfoByAppIdReq) returns (AppUinAndSecretKeyInfo) {
        option(tlvpickle.CmdID) = 10;
        option(tlvpickle.OptString) = "a:";
        option(tlvpickle.Usage) = "-a <appid>";
    }

    rpc GenCardSignature(GenCardSignatureReq) returns (GenCardSignatureResp) {
        option(tlvpickle.CmdID) = 11;
        option(tlvpickle.OptString) = "u:p:";
        option(tlvpickle.Usage) = "-u <bizuin> -p <parameter1;parameter2>";
    }

    rpc GetIDCInfo(GetIDCInfoReq) returns(GetIDCInfoResp) {
        option(tlvpickle.CmdID) = 12;
        option(tlvpickle.OptString) = "p:s:";
        option(tlvpickle.Usage) = "-p <appuin> -s <use_slave_data, default false>";
    }

    // disable this interface.
    rpc GetMpHelperInfoByAppUin(GetMpHelperInfoByAppUinReq) returns(MpHelperInfo) {
        option( tlvpickle.CmdID ) = 13;
        option( tlvpickle.OptString ) = "p:";
        option( tlvpickle.Usage ) = "-p <appuin>";
    }

    rpc BatchSyncCache(BatchSyncCacheReq) returns (tlvpickle.SKBuiltinEmpty_PB) {
        option(tlvpickle.CmdID) = 14;
        option(tlvpickle.OptString) = "";
        option(tlvpickle.Usage) = "";
    }

    rpc GetSecretInfoByAppUin(tlvpickle.SKBuiltinEmpty_PB) returns(SecretInfo) {
        option(tlvpickle.CmdID) = 15;
        option(tlvpickle.OptString) = "p:";
        option(tlvpickle.Usage) = "-p <appuin>";
    }

    rpc GetExtSecretInfoByAppUin(tlvpickle.SKBuiltinEmpty_PB) returns(ExtSecretInfoList) {
        option(tlvpickle.CmdID) = 16;
        option(tlvpickle.OptString) = "p:";
        option(tlvpickle.Usage) = "-p <appuin>";
    }
}

