syntax = "proto3";
package mall;
option go_package = "bsm/full/module/ec/mall/pb;mall";
import "protobuf/blocks.proto";

// Store(店铺)微服务-店铺基础服务
service Store {

    // 申请加入店铺
    rpc ApplyJoin(ApplyJoinRequest) returns (blocks.IdentityStatusReply) {};

    // 店铺许可授权
    rpc Licensing(LicensingRequest) returns (blocks.IdentityStatusReply) {}

    // 获取店铺基础配置
     rpc GetSetting(blocks.IdentRequest) returns(StoreBasic){};

    // 设置店铺基础配置
    rpc SetSetting(StoreBasic) returns(blocks.IdentityStatusReply){};

    // 设置支付方式配置
    rpc SetPayment(SettingRequest) returns(blocks.IdentityStatusReply){}

    // 设置邮件服务器配置
    rpc SetEmail(SettingRequest) returns(blocks.IdentityStatusReply){}

    // 获取支付方式配置
    rpc GetPayment(blocks.IdentRequest) returns(ConfigsReply){}

    // 获取邮件服务器配置
    rpc GetEmail(blocks.IdentRequest) returns(ConfigsReply){}

    // 获取小程序推荐码
    rpc MiniCode(MiniCodeRequest) returns(MiniCodeReply) {};

    // 店铺搜索
    rpc Search(MallSearchRequest) returns(MallSearchReply) {};

}

message SettingRequest {
    string identity = 1; // 店铺唯一标识
    string configs = 2; // 配置说明:标准json字符串
}

message ConfigsReply{
    string configs = 1;
}


message LicensingRequest {
    string license_type = 1 [json_name="license_type"]; // 授权类型
    string license = 2; // 许可码
    string domain = 3;
    string host = 4;
    string ip = 5;
}

message ApplyJoinRequest {
    string logo=1; // 店铺 logo
    string title=2; // 店铺 标题
    string intro=3; // 店铺 描述说明
    string template=4; // 店铺 模板
    string configs=5; // 店铺 配置说明
    string subdomain=6; // 店铺 子域名设置
    string apply_remarks=7 [json_name="apply_remarks"]; // 申请备注

    string name = 8; // 管理员 姓名
    string account = 9;  // 管理员 帐号
    string phone = 10; // 管理员 手机号
    string email = 11; // 管理员 邮箱
    string password=12; // 管理员 密码

}

message StoreBasic{
    int64 id =1;
    string identity=2; //店铺唯一标识
    string logo=3; // logo
    string title=4; // 标题
    string intro=5; // 描述说明
    string template=6; // 模板
    string configs=7; // 配置说明
    string subdomain=8; // 子域名设置，可选
    string created_at = 9 [json_name="created_at"]; // 创建时间
    int32 status = 10;// 状态
    string keywords = 11;// SEO 关键词
    int32 approve = 12;//  审核状态:0待审核,1审核通过,2审核失败
}

message MiniCodeRequest{
    string types = 1; // 类型：img-获取二维码base64码,path:获取二维码在oss上的地址
}

message MiniCodeReply{
    string img = 1; // 返回的数据将会根据参数types的变动而变动
}

message MallSearchRequest{
    int64 page_no=1 [json_name="page_no"];    // 页数
    int64 page_size=2 [json_name="page_size"];  // 每页记录数
    string keyword=3; // 关键字
}

message MallSearchReply {
    repeated StoreBasic list = 1;
    int64 count = 2;
}

