topfans/backend/proto/castlove_config.proto
2026-06-09 12:38:12 +08:00

49 lines
1.9 KiB
Protocol Buffer

syntax = "proto3";
package topfans.castlove;
option go_package = "github.com/topfans/backend/pkg/proto/castlove;castlove";
import "proto/common.proto";
// ==================== 铸爱工艺配置 ====================
// 工艺卡片(精简版,只包含前端展示所需字段)
message CastloveCraftProto {
int64 id = 1; // 卡片ID
string name = 2; // 卡片名("镭射卡" / "光栅卡" / "开发中" / ...)
string image_url = 3; // 完整 https URL(OSS 域名开头)
string route_path = 4; // uni-app 页面路径(以 / 开头);空串表示"未配置路由"
string route_params = 5; // JSON 字符串(对象);空串表示无参数
int32 sort_order = 6; // 同一分类内的相对顺序
}
// 工艺分类(含其下卡片列表)
message CastloveCategoryProto {
int64 id = 1; // 分类ID
string name = 2; // 分类名("星卡" / "吧唧" / "海报")
string type_key = 3; // 外部 deep-link key;空串表示无
int32 sort_order = 4; // 分类相对顺序
repeated CastloveCraftProto crafts = 5; // 该分类下的卡片
}
// 获取铸爱工艺配置请求(无入参,纯 GET)
message GetCastloveConfigRequest {
}
// 获取铸爱工艺配置响应
message GetCastloveConfigResponse {
topfans.common.BaseResponse base = 1;
repeated CastloveCategoryProto categories = 2; // 分类(含嵌套卡片)
string version = 3; // 所有相关记录 updated_at 最大值(ISO 8601)
}
// ==================== 铸爱工艺配置服务 ====================
// 部署在 assetService(端口 20003),由 gateway 通过 Dubbo Triple 转发
// 前端路径:GET /api/v1/castlove/config
service CastloveConfigService {
// 获取铸爱工艺配置(全量分类+卡片)
rpc GetCastloveConfig(GetCastloveConfigRequest) returns (GetCastloveConfigResponse);
}