initial commit
This commit is contained in:
178
rpc/category.proto
Normal file
178
rpc/category.proto
Normal file
@ -0,0 +1,178 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package category;
|
||||
|
||||
option go_package = "./category";
|
||||
|
||||
// 分类服务 - 分类管理、树形结构操作、批量处理
|
||||
service Category {
|
||||
// 健康检查
|
||||
rpc Ping(PingRequest) returns (PingResponse);
|
||||
|
||||
// 分类基础操作
|
||||
rpc CreateCategory(CreateCategoryRequest) returns (CategoryInfoResponse);
|
||||
rpc UpdateCategory(UpdateCategoryRequest) returns (CategoryInfoResponse);
|
||||
rpc DeleteCategory(DeleteCategoryRequest) returns (DeleteResponse);
|
||||
rpc GetCategory(GetCategoryRequest) returns (CategoryInfoResponse);
|
||||
|
||||
// 层级结构操作
|
||||
rpc GetChildren(GetChildrenRequest) returns (CategoryListResponse);
|
||||
rpc GetTree(GetTreeRequest) returns (CategoryTreeResponse);
|
||||
rpc MoveCategory(MoveCategoryRequest) returns (CategoryInfoResponse);
|
||||
rpc GetAncestorPath(GetAncestorPathRequest) returns (CategoryPathResponse);
|
||||
|
||||
// 批量操作
|
||||
rpc BatchCreateCategories(BatchCreateRequest) returns (BatchCreateResponse);
|
||||
rpc BatchUpdateCategories(BatchUpdateRequest) returns (BatchUpdateResponse);
|
||||
|
||||
// 查询过滤
|
||||
rpc ListCategories(ListCategoryRequest) returns (CategoryListResponse);
|
||||
rpc CheckAlias(CheckAliasRequest) returns (CheckAliasResponse);
|
||||
}
|
||||
|
||||
// 健康检查请求
|
||||
message PingRequest {
|
||||
string ping = 1;
|
||||
}
|
||||
|
||||
// 健康检查响应
|
||||
message PingResponse {
|
||||
string pong = 1;
|
||||
}
|
||||
|
||||
// 分类基础信息
|
||||
message CategoryInfo {
|
||||
string id = 1; // UUID
|
||||
string system_id = 2; // 所属系统标识
|
||||
string name = 3; // 分类名称
|
||||
string alias = 4; // URL别名
|
||||
string parent_id = 5; // 父分类ID
|
||||
string description = 6; // 描述
|
||||
int64 created_at = 7; // 创建时间戳
|
||||
int64 updated_at = 8; // 更新时间戳
|
||||
}
|
||||
|
||||
// 创建分类请求
|
||||
message CreateCategoryRequest {
|
||||
string system_id = 1;
|
||||
string name = 2;
|
||||
string alias = 3;
|
||||
string parent_id = 4; // 空字符串表示根分类
|
||||
string description = 5;
|
||||
}
|
||||
|
||||
// 更新分类请求
|
||||
message UpdateCategoryRequest {
|
||||
string id = 1;
|
||||
string name = 2;
|
||||
string alias = 3;
|
||||
string parent_id = 4; // 修改父分类时使用
|
||||
string description = 5;
|
||||
}
|
||||
|
||||
// 删除分类请求
|
||||
message DeleteCategoryRequest {
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
// 删除响应
|
||||
message DeleteResponse {
|
||||
bool success = 1;
|
||||
}
|
||||
|
||||
// 分类查询请求
|
||||
message GetCategoryRequest {
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
// 分类信息响应
|
||||
message CategoryInfoResponse {
|
||||
CategoryInfo category = 1;
|
||||
}
|
||||
|
||||
// 层级结构操作请求
|
||||
message GetChildrenRequest {
|
||||
string parent_id = 1; // 为空时查询根分类
|
||||
bool recursive = 2; // 是否递归获取所有子节点
|
||||
}
|
||||
|
||||
// 树形结构请求
|
||||
message GetTreeRequest {
|
||||
string system_id = 1; // 必须指定系统
|
||||
string root_id = 2; // 空字符串表示从根开始
|
||||
}
|
||||
|
||||
// 移动分类请求
|
||||
message MoveCategoryRequest {
|
||||
string id = 1;
|
||||
string new_parent_id = 2; // 空字符串表示移动到根
|
||||
}
|
||||
|
||||
// 祖先路径请求
|
||||
message GetAncestorPathRequest {
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
// 分类路径响应
|
||||
message CategoryPathResponse {
|
||||
repeated CategoryInfo path = 1; // 从根到当前分类的路径
|
||||
}
|
||||
|
||||
// 批量操作请求
|
||||
message BatchCreateRequest {
|
||||
repeated CreateCategoryRequest categories = 1;
|
||||
}
|
||||
|
||||
message BatchCreateResponse {
|
||||
repeated CategoryInfo created_categories = 1;
|
||||
int32 success_count = 2;
|
||||
int32 fail_count = 3;
|
||||
}
|
||||
|
||||
message BatchUpdateRequest {
|
||||
repeated UpdateCategoryRequest categories = 1;
|
||||
}
|
||||
|
||||
message BatchUpdateResponse {
|
||||
repeated CategoryInfo updated_categories = 1;
|
||||
int32 success_count = 2;
|
||||
int32 fail_count = 3;
|
||||
}
|
||||
|
||||
// 列表查询请求
|
||||
message ListCategoryRequest {
|
||||
string system_id = 1;
|
||||
string parent_id = 2; // 空字符串表示根分类
|
||||
string name = 3; // 模糊匹配
|
||||
string alias = 4; // 精确匹配
|
||||
int32 page = 5; // 分页参数
|
||||
int32 page_size = 6;
|
||||
}
|
||||
|
||||
// 列表响应
|
||||
message CategoryListResponse {
|
||||
repeated CategoryInfo categories = 1;
|
||||
int32 total = 2;
|
||||
}
|
||||
|
||||
// 树形结构响应
|
||||
message CategoryTreeResponse {
|
||||
message TreeNode {
|
||||
CategoryInfo category = 1;
|
||||
repeated TreeNode children = 2;
|
||||
}
|
||||
TreeNode root = 1;
|
||||
}
|
||||
|
||||
// 别名检查请求
|
||||
message CheckAliasRequest {
|
||||
string system_id = 1;
|
||||
string parent_id = 2; // 空字符串表示根父级
|
||||
string alias = 3;
|
||||
}
|
||||
|
||||
// 别名检查响应
|
||||
message CheckAliasResponse {
|
||||
bool is_available = 1;
|
||||
string existing_id = 2; // 冲突时返回已存在的分类ID
|
||||
}
|
||||
Reference in New Issue
Block a user