syntax = "proto3"; // DistrictInfo 地址单体结构 message DistrictInfo { int64 ID = 1; string created_at = 2; string updated_at = 3; string name = 4; string short_name = 5; string code = 6; string province = 7; string city = 8; string area = 9; string street = 10; uint32 level = 11; double latitude = 12; double longitude = 13; repeated DistrictInfo children = 20; } message DistrictTree { repeated DistrictInfo tree = 1; } enum DistrictQueryType { Normal = 0; // 正常 Children = 1; // 子节点 ChildrenByLevel = 2; // 子节点,level表示查询级数 1=子节点1级=Children 2=子节点2级,包括1级 Parents = 3; // 所有父节点 } message DistrictReq { string code = 1; string province = 2; string city = 3; string area = 4; string street = 5; uint32 level = 6; string name = 7; string parent_code = 8; optional Pagination page = 10; DistrictQueryType query_type = 11; } message DistrictCodeReq { string code = 1; } message DistrictListResp { optional Pagination page = 1; repeated DistrictInfo data = 2; } message GetDistrictNameReq { string code = 1; string separator = 2; } message GetDistrictNameResp { string code = 1; string name = 2; repeated string name_list = 3; } service Core { // District management // group: district rpc getDistrict(DistrictCodeReq) returns (DistrictInfo); // group: district rpc getDistrictList(DistrictReq) returns (DistrictListResp); // group: district rpc getDistrictTree(DistrictCodeReq) returns (DistrictTree); // group: district rpc getDistrictName(GetDistrictNameReq) returns (GetDistrictNameResp); }