diff --git a/build/rpc.json b/build/rpc.json index 7ae4e85..59ca131 100644 --- a/build/rpc.json +++ b/build/rpc.json @@ -3789,7 +3789,10 @@ "responseMessageName": "ListAllIPItemIdsResponse", "code": "rpc listAllIPItemIds(ListAllIPItemIdsRequest) returns (ListAllIPItemIdsResponse);", "doc": "列出所有名单中的IP ID", - "roles": [], + "roles": [ + "admin", + "user" + ], "isDeprecated": false }, { @@ -9553,6 +9556,174 @@ "filename": "service_plan.proto", "doc": "套餐相关服务" }, + { + "name": "PostService", + "methods": [ + { + "name": "createPost", + "requestMessageName": "CreatePostRequest", + "responseMessageName": "CreatePostResponse", + "code": "rpc createPost(CreatePostRequest) returns (CreatePostResponse);", + "doc": "创建文章", + "roles": [ + "admin" + ], + "isDeprecated": false + }, + { + "name": "updatePost", + "requestMessageName": "UpdatePostRequest", + "responseMessageName": "RPCSuccess", + "code": "rpc updatePost(UpdatePostRequest) returns (RPCSuccess);", + "doc": "修改文章", + "roles": [ + "admin" + ], + "isDeprecated": false + }, + { + "name": "deletePost", + "requestMessageName": "DeletePostRequest", + "responseMessageName": "RPCSuccess", + "code": "rpc deletePost(DeletePostRequest) returns (RPCSuccess);", + "doc": "删除文章", + "roles": [ + "admin" + ], + "isDeprecated": false + }, + { + "name": "publishPost", + "requestMessageName": "PublishPostRequest", + "responseMessageName": "RPCSuccess", + "code": "rpc publishPost(PublishPostRequest) returns (RPCSuccess);", + "doc": "发布文章", + "roles": [ + "admin" + ], + "isDeprecated": false + }, + { + "name": "countPosts", + "requestMessageName": "CountPostsRequest", + "responseMessageName": "RPCCountResponse", + "code": "rpc countPosts(CountPostsRequest) returns (RPCCountResponse);", + "doc": "计算文章数量", + "roles": [ + "admin" + ], + "isDeprecated": false + }, + { + "name": "listPosts", + "requestMessageName": "ListPostsRequest", + "responseMessageName": "ListPostsResponse", + "code": "rpc listPosts(ListPostsRequest) returns (ListPostsResponse);", + "doc": "列出单页文章", + "roles": [ + "admin", + "user" + ], + "isDeprecated": false + }, + { + "name": "findPost", + "requestMessageName": "FindPostRequest", + "responseMessageName": "FindPostResponse", + "code": "rpc findPost(FindPostRequest) returns (FindPostResponse);", + "doc": "查询单篇文章", + "roles": [ + "admin", + "user" + ], + "isDeprecated": false + } + ], + "filename": "service_post.proto", + "doc": "文章管理服务" + }, + { + "name": "PostCategoryService", + "methods": [ + { + "name": "createPostCategory", + "requestMessageName": "CreatePostCategoryRequest", + "responseMessageName": "CreatePostCategoryResponse", + "code": "rpc createPostCategory(CreatePostCategoryRequest) returns (CreatePostCategoryResponse);", + "doc": "创建分类", + "roles": [ + "admin" + ], + "isDeprecated": false + }, + { + "name": "updatePostCategory", + "requestMessageName": "UpdatePostCategoryRequest", + "responseMessageName": "RPCSuccess", + "code": "rpc updatePostCategory(UpdatePostCategoryRequest) returns (RPCSuccess);", + "doc": "修改分类", + "roles": [ + "admin" + ], + "isDeprecated": false + }, + { + "name": "deletePostCategory", + "requestMessageName": "DeletePostCategoryRequest", + "responseMessageName": "RPCSuccess", + "code": "rpc deletePostCategory(DeletePostCategoryRequest) returns (RPCSuccess);", + "doc": "删除分类", + "roles": [ + "admin" + ], + "isDeprecated": false + }, + { + "name": "findAllPostCategories", + "requestMessageName": "FindAllPostCategoriesRequest", + "responseMessageName": "FindAllPostCategoriesResponse", + "code": "rpc findAllPostCategories(FindAllPostCategoriesRequest) returns (FindAllPostCategoriesResponse);", + "doc": "列出所有分类", + "roles": [ + "admin" + ], + "isDeprecated": false + }, + { + "name": "findAllAvailablePostCategories", + "requestMessageName": "FindAllAvailablePostCategoriesRequest", + "responseMessageName": "FindAllAvailablePostCategoriesResponse", + "code": "rpc findAllAvailablePostCategories(FindAllAvailablePostCategoriesRequest) returns (FindAllAvailablePostCategoriesResponse);", + "doc": "列出所有可用分类", + "roles": [], + "isDeprecated": false + }, + { + "name": "findPostCategory", + "requestMessageName": "FindPostCategoryRequest", + "responseMessageName": "FindPostCategoryResponse", + "code": "rpc findPostCategory(FindPostCategoryRequest) returns (FindPostCategoryResponse);", + "doc": "查询单个分类", + "roles": [ + "admin" + ], + "isDeprecated": false + }, + { + "name": "sortPostCategories", + "requestMessageName": "SortPostCategoriesRequest", + "responseMessageName": "RPCSuccess", + "code": "rpc sortPostCategories(SortPostCategoriesRequest) returns (RPCSuccess);", + "doc": "对分类进行排序", + "roles": [ + "admin" + ], + "isDeprecated": false + } + ], + "filename": "service_post_category.proto", + "doc": "文章分类管理服务" + }, { "name": "PriceService", "methods": [ @@ -14789,6 +14960,11 @@ "code": "message CountNodeLogsRequest {\n\tint64 nodeClusterId = 11;\n\tint64 nodeId = 1;\n\tstring role = 2;\n\tstring dayFrom = 3;\n\tstring dayTo = 4;\n\tstring keyword = 5;\n\tstring level = 6;\n\tint64 serverId = 7;\n\tint64 originId = 8;\n\tbool isUnread = 9;\n\tstring tag = 10;\n\tint32 fixedState = 12;\n\tbool allServers = 13; // 是否获取所有服务相关的日志\n}", "doc": "查询日志数量" }, + { + "name": "CountPostsRequest", + "code": "message CountPostsRequest {\n\tint64 postCategoryId = 1; // 分类ID\n\tstring productCode = 2; // 产品代号\n\tbool publishedOnly = 3; // 只列出已发布的\n}", + "doc": "计算文章数量" + }, { "name": "CountSSLCertRequest", "code": "message CountSSLCertRequest {\n\tbool isCA = 1; // 可选项,是否为CA证书\n\tbool isAvailable = 2; // 可选项,是否可用(在有效期内)\n\tbool isExpired = 3; // 可选项,是否已过期\n\tint32 expiringDays = 4; // 可选项,离过期日的天数\n\tstring keyword = 5; // 可选项,关键词\n\tint64 userId = 6; // 可选项,用户ID,不填则表示读取管理员上传的证书\n\trepeated string domains = 7; // 可选项,搜索使用的域名列表\n\tbool userOnly = 8; // 可选项,只列出用户上传的证书\n}", @@ -15654,6 +15830,26 @@ "code": "message CreatePlanResponse {\n\tint64 planId = 1;\n}", "doc": "" }, + { + "name": "CreatePostCategoryRequest", + "code": "message CreatePostCategoryRequest {\n\tstring name = 1; // 分类名称\n\tstring code = 2; // 分类代号\n}", + "doc": "创建分类" + }, + { + "name": "CreatePostCategoryResponse", + "code": "message CreatePostCategoryResponse {\n\tint64 postCategoryId = 1; // 分类ID\n}", + "doc": "" + }, + { + "name": "CreatePostRequest", + "code": "message CreatePostRequest {\n\tint64 postCategoryId = 1; // 文章分类ID\n\tstring type = 2; // 类型:normal, url\n\tstring productCode = 3; // 产品代号\n\tstring subject = 4; // 标题\n\tstring url = 5; // 跳转的URL(type=url)\n\tstring body = 6; // 文章内容(type=normal)\n}", + "doc": "创建文章" + }, + { + "name": "CreatePostResponse", + "code": "message CreatePostResponse {\n\tint64 postId = 1; // 文章ID\n}", + "doc": "" + }, { "name": "CreateReportNodeGroupRequest", "code": "message CreateReportNodeGroupRequest {\n\tstring name = 1;\n}", @@ -16249,6 +16445,16 @@ "code": "message DeletePlanRequest {\n\tint64 planId = 1; // 套餐ID\n}", "doc": "删除套餐" }, + { + "name": "DeletePostCategoryRequest", + "code": "message DeletePostCategoryRequest {\n\tint64 postCategoryId = 1; // 分类ID\n}", + "doc": "删除分类" + }, + { + "name": "DeletePostRequest", + "code": "message DeletePostRequest {\n\tint64 postId = 1; // 文章ID\n}", + "doc": "删除文章" + }, { "name": "DeleteReportNodeGroupRequest", "code": "message DeleteReportNodeGroupRequest {\n\tint64 reportNodeGroupId = 1;\n}", @@ -16799,6 +17005,16 @@ "code": "message FindAllAvailablePlansResponse {\n\trepeated Plan plans = 1; // 套餐列表\n}", "doc": "" }, + { + "name": "FindAllAvailablePostCategoriesRequest", + "code": "message FindAllAvailablePostCategoriesRequest {\n\n}", + "doc": "列出所有可用分类" + }, + { + "name": "FindAllAvailablePostCategoriesResponse", + "code": "message FindAllAvailablePostCategoriesResponse {\n\trepeated PostCategory postCategories = 1; // 分类列表\n}", + "doc": "" + }, { "name": "FindAllAvailableTrafficPackagePeriodsRequest", "code": "message FindAllAvailableTrafficPackagePeriodsRequest {\n\n}", @@ -17524,6 +17740,16 @@ "code": "message FindAllNotInstalledNodesWithNodeClusterIdResponse {\n\trepeated Node nodes = 1;\n}", "doc": "" }, + { + "name": "FindAllPostCategoriesRequest", + "code": "message FindAllPostCategoriesRequest {\n\n}", + "doc": "列出所有分类" + }, + { + "name": "FindAllPostCategoriesResponse", + "code": "message FindAllPostCategoriesResponse {\n\trepeated PostCategory postCategories = 1; // 分类列表\n}", + "doc": "" + }, { "name": "FindAllPublicRoutesRequest", "code": "message FindAllPublicRoutesRequest {\n\n}", @@ -19654,6 +19880,26 @@ "code": "message FindNotifyingNodeTasksResponse {\n\trepeated NodeTask nodeTasks = 1;\n}", "doc": "" }, + { + "name": "FindPostCategoryRequest", + "code": "message FindPostCategoryRequest {\n\tint64 postCategoryId = 1; // 分类ID\n}", + "doc": "查询单个分类" + }, + { + "name": "FindPostCategoryResponse", + "code": "message FindPostCategoryResponse {\n\tPostCategory postCategory = 1; // 分类信息\n}", + "doc": "" + }, + { + "name": "FindPostRequest", + "code": "message FindPostRequest {\n\tint64 postId = 1; // 文章ID\n}", + "doc": "查询单篇文章" + }, + { + "name": "FindPostResponse", + "code": "message FindPostResponse {\n\tPost post = 1; // 文章信息\n}", + "doc": "" + }, { "name": "FindPublicIPLibraryArtifactRequest", "code": "message FindPublicIPLibraryArtifactRequest {\n\n}", @@ -20859,6 +21105,16 @@ "code": "message ListNodeValuesResponse {\n\trepeated NodeValue nodeValues = 1;\n}", "doc": "" }, + { + "name": "ListPostsRequest", + "code": "message ListPostsRequest {\n\tint64 offset = 1;\n\tint64 size = 2;\n\n\tstring productCode = 3; // 产品代号\n\tint64 postCategoryId = 4; // 分类ID\n\tstring postCategoryCode = 5; // 分类代号\n\tstring excludingPostCategoryCode = 6; // 排除的分类代号\n\tbool publishedOnly = 7; // 只列出已发布的\n\tbool containsBody = 8; // 是否包含文章内容\n}", + "doc": "列出单页文章" + }, + { + "name": "ListPostsResponse", + "code": "message ListPostsResponse {\n\trepeated Post posts = 1; // 文章列表\n}", + "doc": "" + }, { "name": "ListReportNodeTasksRequest", "code": "message ListReportNodeTasksRequest {\n\tstring role = 1;\n\tint64 nodeClusterId = 2;\n\tstring type = 3;\n\tint64 offset = 4;\n\tint64 size = 5;\n}", @@ -21394,6 +21650,21 @@ "code": "message Plan {\n\tint64 id = 1; // 套餐ID\n\tbool isOn = 2; // 是否启用\n\tstring name = 3; // 套餐名称\n\tstring description = 21; // 套餐简介\n\tint64 clusterId = 4; // 集群ID\n\tbytes trafficLimitJSON = 5; // 流量限制\n\tbool hasFullFeatures = 20; // 是否有所有权限\n\tbytes featuresJSON = 6; // 权限列表,[code1, code2, ...]\n\tstring priceType = 7; // 价格类型:traffic, bandwidth, period\n\tbytes trafficPriceJSON = 8; // 流量价格配置\n\tbytes bandwidthPriceJSON = 12; // 带宽价格配置\n\tdouble monthlyPrice = 9; // 月度价格\n\tdouble seasonallyPrice = 10; // 季度价格\n\tdouble yearlyPrice = 11; // 年度价格\n\tint32 totalServers = 13; // 可以添加的网站数\n\tint32 totalServerNamesPerServer = 14; // 每个网站可以添加的域名数\n\tint32 totalServerNames = 15; // 可以添加的域名总数\n\tint64 dailyRequests = 16; // 每日访问量额度\n\tint64 monthlyRequests = 17; // 每月访问量额度\n\tint64 dailyWebsocketConnections = 18; // 每日Websocket连接数额度\n\tint64 monthlyWebsocketConnections = 19; // 每月Websocket连接数额度\n}", "doc": "" }, + { + "name": "Post", + "code": "message Post {\n\tint64 id = 1; // ID\n\tint64 postCategoryId = 2; // 分类ID\n\tstring productCode = 3; // 产品代号\n\tstring type = 4; // 类型:normal, url\n\tstring subject = 5; // 标题\n\tstring url = 6; // URL\n\tstring body = 7; // 内容\n\tint64 createdAt = 8; // 创建时间\n\tbool isPublished = 9; // 是否已发布\n\tint64 publishedAt = 10; // 发布时间\n\n\tPostCategory postCategory = 30; // 分类信息\n}", + "doc": "文章" + }, + { + "name": "PostCategory", + "code": "message PostCategory {\n\tint64 id = 1; // ID\n\tstring name = 2; // 名称\n\tstring code = 3; // 文章代号\n\tbool isOn = 4; // 是否启用\n}", + "doc": "文章分类" + }, + { + "name": "PublishPostRequest", + "code": "message PublishPostRequest {\n\tint64 postId = 1; // 文章ID\n}", + "doc": "发布文章" + }, { "name": "PublishScriptsRequest", "code": "message PublishScriptsRequest {\n\tint64 userId = 1;\n}", @@ -21719,6 +21990,11 @@ "code": "message SortPlansRequest {\n\trepeated int64 planIds = 1; // 排序后的套餐ID列表\n}", "doc": "对套餐进行排序" }, + { + "name": "SortPostCategoriesRequest", + "code": "message SortPostCategoriesRequest {\n\trepeated int64 postCategoryIds = 1; // 分类ID列表\n}", + "doc": "对分类进行排序" + }, { "name": "StartNSNodeRequest", "code": "message StartNSNodeRequest {\n\tint64 nsNodeId = 1;\n}", @@ -22794,6 +23070,16 @@ "code": "message UpdatePlanRequest {\n\tint64 planId = 1; // 套餐ID\n\tstring name = 2; // 套餐名称\n\tstring description = 21; // 套餐简介\n\tbool isOn = 3; // 是否启用\n\tint64 clusterId = 4; // 集群ID\n\tbytes trafficLimitJSON = 5; // 流量限制\n\tbool hasFullFeatures = 20; // 是否有所有权限\n\tbytes featuresJSON = 6; // 权限列表,[code1, code2, ...]\n\tstring priceType = 7; // 价格类型:traffic, bandwidth, period\n\tbytes trafficPriceJSON = 8; // 流量价格配置\n\tbytes bandwidthPriceJSON = 12; // 带宽价格配置\n\tfloat monthlyPrice = 9; // 月费用\n\tfloat seasonallyPrice = 10; // 季度费用\n\tfloat yearlyPrice = 11; // 年度费用\n\tint32 totalServers = 13; // 可以添加的网站数\n\tint32 totalServerNamesPerServer = 14; // 每个网站可以添加的域名数\n\tint32 totalServerNames = 15; // 可以添加的域名总数\n\tint64 dailyRequests = 16; // 每日访问量额度\n\tint64 monthlyRequests = 17; // 每月访问量额度\n\tint64 dailyWebsocketConnections = 18; // 每日Websocket连接数额度\n\tint64 monthlyWebsocketConnections = 19; // 每月Websocket连接数额度\n}", "doc": "修改套餐" }, + { + "name": "UpdatePostCategoryRequest", + "code": "message UpdatePostCategoryRequest {\n\tint64 postCategoryId = 1; // 分类ID\n\tstring name = 2; // 分类名称\n\tstring code = 3; // 分类代号\n\tbool isOn = 4; // 是否启用\n}", + "doc": "修改分类" + }, + { + "name": "UpdatePostRequest", + "code": "message UpdatePostRequest {\n\tint64 postId = 1; // 文章ID\n\tint64 postCategoryId = 2; // 文章分类ID\n\tstring productCode = 3; // 产品代号\n\tstring subject = 4; // 标题\n\tstring type = 5; // 类型:normal, url\n\tstring url = 6; // 跳转的URL(type=url)\n\tstring body = 7; // 文章内容(type=normal)\n}", + "doc": "修改文章" + }, { "name": "UpdateRegionCityCustomRequest", "code": "message UpdateRegionCityCustomRequest {\n\tint64 regionCityId = 1;\n\tstring customName = 2;\n\trepeated string customCodes = 3;\n}", diff --git a/pkg/langs/codes/codes.go b/pkg/langs/codes/codes.go index e368e8d..ba89fdd 100644 --- a/pkg/langs/codes/codes.go +++ b/pkg/langs/codes/codes.go @@ -449,6 +449,11 @@ const ( Plan_LogDeletePlan langs.MessageCode = "plan@log_delete_plan" // 删除套餐 %d Plan_LogSortPlans langs.MessageCode = "plan@log_sort_plans" // 对套餐进行排序 Plan_LogUpdatePlan langs.MessageCode = "plan@log_update_plan" // 修改套餐 %d + Post_LogCreatePost langs.MessageCode = "post@log_create_post" // 创建文章 %d + Post_LogDeletePost langs.MessageCode = "post@log_delete_post" // 删除文章 %d + Post_LogPublishPost langs.MessageCode = "post@log_publish_post" // 发布文章 %d + Post_LogUpdatePost langs.MessageCode = "post@log_update_post" // 修改文章 %d + Post_ProductGlobal langs.MessageCode = "post@product_global" // 全站 RegionCity_LogAddRegionCityCode langs.MessageCode = "region_city@log_add_region_city_code" // 添加城市/市 %d 别名 %s RegionCity_LogUpdateRegionCityCustom langs.MessageCode = "region_city@log_update_region_city_custom" // 定制城市 %d 信息 RegionCountry_LogAddRegionCountryCode langs.MessageCode = "region_country@log_add_region_country_code" // 添加国家/地区 %d 别名 %s diff --git a/pkg/langs/messages/messages_en_us.go b/pkg/langs/messages/messages_en_us.go index 9c59835..20206b0 100644 --- a/pkg/langs/messages/messages_en_us.go +++ b/pkg/langs/messages/messages_en_us.go @@ -450,6 +450,11 @@ func init() { "plan@log_delete_plan": "", "plan@log_sort_plans": "", "plan@log_update_plan": "", + "post@log_create_post": "", + "post@log_delete_post": "", + "post@log_publish_post": "", + "post@log_update_post": "", + "post@product_global": "", "region_city@log_add_region_city_code": "", "region_city@log_update_region_city_custom": "", "region_country@log_add_region_country_code": "", diff --git a/pkg/langs/messages/messages_zh_cn.go b/pkg/langs/messages/messages_zh_cn.go index 066ee12..1d5447f 100644 --- a/pkg/langs/messages/messages_zh_cn.go +++ b/pkg/langs/messages/messages_zh_cn.go @@ -450,6 +450,11 @@ func init() { "plan@log_delete_plan": "删除套餐 %d", "plan@log_sort_plans": "对套餐进行排序", "plan@log_update_plan": "修改套餐 %d", + "post@log_create_post": "创建文章 %d", + "post@log_delete_post": "删除文章 %d", + "post@log_publish_post": "发布文章 %d", + "post@log_update_post": "修改文章 %d", + "post@product_global": "全站", "region_city@log_add_region_city_code": "添加城市/市 %d 别名 %s", "region_city@log_update_region_city_custom": "定制城市 %d 信息", "region_country@log_add_region_country_code": "添加国家/地区 %d 别名 %s", diff --git a/pkg/langs/protos/zh-cn/post.json b/pkg/langs/protos/zh-cn/post.json new file mode 100644 index 0000000..448b572 --- /dev/null +++ b/pkg/langs/protos/zh-cn/post.json @@ -0,0 +1,8 @@ +{ + "product_global": "全站", + + "log_create_post": "创建文章 %d", + "log_publish_post": "发布文章 %d", + "log_delete_post": "删除文章 %d", + "log_update_post": "修改文章 %d" +} \ No newline at end of file diff --git a/pkg/rpc/pb/model_post.pb.go b/pkg/rpc/pb/model_post.pb.go new file mode 100644 index 0000000..dc027e9 --- /dev/null +++ b/pkg/rpc/pb/model_post.pb.go @@ -0,0 +1,246 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v3.19.4 +// source: models/model_post.proto + +package pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// 文章 +type Post struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // ID + PostCategoryId int64 `protobuf:"varint,2,opt,name=postCategoryId,proto3" json:"postCategoryId,omitempty"` // 分类ID + ProductCode string `protobuf:"bytes,3,opt,name=productCode,proto3" json:"productCode,omitempty"` // 产品代号 + Type string `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"` // 类型:normal, url + Subject string `protobuf:"bytes,5,opt,name=subject,proto3" json:"subject,omitempty"` // 标题 + Url string `protobuf:"bytes,6,opt,name=url,proto3" json:"url,omitempty"` // URL + Body string `protobuf:"bytes,7,opt,name=body,proto3" json:"body,omitempty"` // 内容 + CreatedAt int64 `protobuf:"varint,8,opt,name=createdAt,proto3" json:"createdAt,omitempty"` // 创建时间 + IsPublished bool `protobuf:"varint,9,opt,name=isPublished,proto3" json:"isPublished,omitempty"` // 是否已发布 + PublishedAt int64 `protobuf:"varint,10,opt,name=publishedAt,proto3" json:"publishedAt,omitempty"` // 发布时间 + PostCategory *PostCategory `protobuf:"bytes,30,opt,name=postCategory,proto3" json:"postCategory,omitempty"` // 分类信息 +} + +func (x *Post) Reset() { + *x = Post{} + if protoimpl.UnsafeEnabled { + mi := &file_models_model_post_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Post) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Post) ProtoMessage() {} + +func (x *Post) ProtoReflect() protoreflect.Message { + mi := &file_models_model_post_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Post.ProtoReflect.Descriptor instead. +func (*Post) Descriptor() ([]byte, []int) { + return file_models_model_post_proto_rawDescGZIP(), []int{0} +} + +func (x *Post) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Post) GetPostCategoryId() int64 { + if x != nil { + return x.PostCategoryId + } + return 0 +} + +func (x *Post) GetProductCode() string { + if x != nil { + return x.ProductCode + } + return "" +} + +func (x *Post) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *Post) GetSubject() string { + if x != nil { + return x.Subject + } + return "" +} + +func (x *Post) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *Post) GetBody() string { + if x != nil { + return x.Body + } + return "" +} + +func (x *Post) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *Post) GetIsPublished() bool { + if x != nil { + return x.IsPublished + } + return false +} + +func (x *Post) GetPublishedAt() int64 { + if x != nil { + return x.PublishedAt + } + return 0 +} + +func (x *Post) GetPostCategory() *PostCategory { + if x != nil { + return x.PostCategory + } + return nil +} + +var File_models_model_post_proto protoreflect.FileDescriptor + +var file_models_model_post_proto_rawDesc = []byte{ + 0x0a, 0x17, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x70, + 0x6f, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x20, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x73, 0x74, + 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, + 0xcc, 0x02, 0x0a, 0x04, 0x50, 0x6f, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x74, + 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, + 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, + 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x12, 0x34, 0x0a, 0x0c, 0x70, 0x6f, 0x73, 0x74, + 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x52, 0x0c, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x42, 0x06, + 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_models_model_post_proto_rawDescOnce sync.Once + file_models_model_post_proto_rawDescData = file_models_model_post_proto_rawDesc +) + +func file_models_model_post_proto_rawDescGZIP() []byte { + file_models_model_post_proto_rawDescOnce.Do(func() { + file_models_model_post_proto_rawDescData = protoimpl.X.CompressGZIP(file_models_model_post_proto_rawDescData) + }) + return file_models_model_post_proto_rawDescData +} + +var file_models_model_post_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_models_model_post_proto_goTypes = []interface{}{ + (*Post)(nil), // 0: pb.Post + (*PostCategory)(nil), // 1: pb.PostCategory +} +var file_models_model_post_proto_depIdxs = []int32{ + 1, // 0: pb.Post.postCategory:type_name -> pb.PostCategory + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_models_model_post_proto_init() } +func file_models_model_post_proto_init() { + if File_models_model_post_proto != nil { + return + } + file_models_model_post_category_proto_init() + if !protoimpl.UnsafeEnabled { + file_models_model_post_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Post); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_models_model_post_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_models_model_post_proto_goTypes, + DependencyIndexes: file_models_model_post_proto_depIdxs, + MessageInfos: file_models_model_post_proto_msgTypes, + }.Build() + File_models_model_post_proto = out.File + file_models_model_post_proto_rawDesc = nil + file_models_model_post_proto_goTypes = nil + file_models_model_post_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/model_post_category.pb.go b/pkg/rpc/pb/model_post_category.pb.go new file mode 100644 index 0000000..cda5fd8 --- /dev/null +++ b/pkg/rpc/pb/model_post_category.pb.go @@ -0,0 +1,171 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v3.19.4 +// source: models/model_post_category.proto + +package pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// 文章分类 +type PostCategory struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // ID + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // 名称 + Code string `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"` // 文章代号 + IsOn bool `protobuf:"varint,4,opt,name=isOn,proto3" json:"isOn,omitempty"` // 是否启用 +} + +func (x *PostCategory) Reset() { + *x = PostCategory{} + if protoimpl.UnsafeEnabled { + mi := &file_models_model_post_category_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PostCategory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PostCategory) ProtoMessage() {} + +func (x *PostCategory) ProtoReflect() protoreflect.Message { + mi := &file_models_model_post_category_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PostCategory.ProtoReflect.Descriptor instead. +func (*PostCategory) Descriptor() ([]byte, []int) { + return file_models_model_post_category_proto_rawDescGZIP(), []int{0} +} + +func (x *PostCategory) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *PostCategory) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *PostCategory) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *PostCategory) GetIsOn() bool { + if x != nil { + return x.IsOn + } + return false +} + +var File_models_model_post_category_proto protoreflect.FileDescriptor + +var file_models_model_post_category_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x70, + 0x6f, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x5a, 0x0a, 0x0c, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, + 0x4f, 0x6e, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_models_model_post_category_proto_rawDescOnce sync.Once + file_models_model_post_category_proto_rawDescData = file_models_model_post_category_proto_rawDesc +) + +func file_models_model_post_category_proto_rawDescGZIP() []byte { + file_models_model_post_category_proto_rawDescOnce.Do(func() { + file_models_model_post_category_proto_rawDescData = protoimpl.X.CompressGZIP(file_models_model_post_category_proto_rawDescData) + }) + return file_models_model_post_category_proto_rawDescData +} + +var file_models_model_post_category_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_models_model_post_category_proto_goTypes = []interface{}{ + (*PostCategory)(nil), // 0: pb.PostCategory +} +var file_models_model_post_category_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_models_model_post_category_proto_init() } +func file_models_model_post_category_proto_init() { + if File_models_model_post_category_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_models_model_post_category_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PostCategory); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_models_model_post_category_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_models_model_post_category_proto_goTypes, + DependencyIndexes: file_models_model_post_category_proto_depIdxs, + MessageInfos: file_models_model_post_category_proto_msgTypes, + }.Build() + File_models_model_post_category_proto = out.File + file_models_model_post_category_proto_rawDesc = nil + file_models_model_post_category_proto_goTypes = nil + file_models_model_post_category_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/service_post.pb.go b/pkg/rpc/pb/service_post.pb.go new file mode 100644 index 0000000..d61af8a --- /dev/null +++ b/pkg/rpc/pb/service_post.pb.go @@ -0,0 +1,966 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v3.19.4 +// source: service_post.proto + +package pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// 创建文章 +type CreatePostRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PostCategoryId int64 `protobuf:"varint,1,opt,name=postCategoryId,proto3" json:"postCategoryId,omitempty"` // 文章分类ID + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` // 类型:normal, url + ProductCode string `protobuf:"bytes,3,opt,name=productCode,proto3" json:"productCode,omitempty"` // 产品代号 + Subject string `protobuf:"bytes,4,opt,name=subject,proto3" json:"subject,omitempty"` // 标题 + Url string `protobuf:"bytes,5,opt,name=url,proto3" json:"url,omitempty"` // 跳转的URL(type=url) + Body string `protobuf:"bytes,6,opt,name=body,proto3" json:"body,omitempty"` // 文章内容(type=normal) +} + +func (x *CreatePostRequest) Reset() { + *x = CreatePostRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreatePostRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreatePostRequest) ProtoMessage() {} + +func (x *CreatePostRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_post_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreatePostRequest.ProtoReflect.Descriptor instead. +func (*CreatePostRequest) Descriptor() ([]byte, []int) { + return file_service_post_proto_rawDescGZIP(), []int{0} +} + +func (x *CreatePostRequest) GetPostCategoryId() int64 { + if x != nil { + return x.PostCategoryId + } + return 0 +} + +func (x *CreatePostRequest) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *CreatePostRequest) GetProductCode() string { + if x != nil { + return x.ProductCode + } + return "" +} + +func (x *CreatePostRequest) GetSubject() string { + if x != nil { + return x.Subject + } + return "" +} + +func (x *CreatePostRequest) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *CreatePostRequest) GetBody() string { + if x != nil { + return x.Body + } + return "" +} + +type CreatePostResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PostId int64 `protobuf:"varint,1,opt,name=postId,proto3" json:"postId,omitempty"` // 文章ID +} + +func (x *CreatePostResponse) Reset() { + *x = CreatePostResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreatePostResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreatePostResponse) ProtoMessage() {} + +func (x *CreatePostResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_post_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreatePostResponse.ProtoReflect.Descriptor instead. +func (*CreatePostResponse) Descriptor() ([]byte, []int) { + return file_service_post_proto_rawDescGZIP(), []int{1} +} + +func (x *CreatePostResponse) GetPostId() int64 { + if x != nil { + return x.PostId + } + return 0 +} + +// 修改文章 +type UpdatePostRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PostId int64 `protobuf:"varint,1,opt,name=postId,proto3" json:"postId,omitempty"` // 文章ID + PostCategoryId int64 `protobuf:"varint,2,opt,name=postCategoryId,proto3" json:"postCategoryId,omitempty"` // 文章分类ID + ProductCode string `protobuf:"bytes,3,opt,name=productCode,proto3" json:"productCode,omitempty"` // 产品代号 + Subject string `protobuf:"bytes,4,opt,name=subject,proto3" json:"subject,omitempty"` // 标题 + Type string `protobuf:"bytes,5,opt,name=type,proto3" json:"type,omitempty"` // 类型:normal, url + Url string `protobuf:"bytes,6,opt,name=url,proto3" json:"url,omitempty"` // 跳转的URL(type=url) + Body string `protobuf:"bytes,7,opt,name=body,proto3" json:"body,omitempty"` // 文章内容(type=normal) +} + +func (x *UpdatePostRequest) Reset() { + *x = UpdatePostRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdatePostRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdatePostRequest) ProtoMessage() {} + +func (x *UpdatePostRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_post_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdatePostRequest.ProtoReflect.Descriptor instead. +func (*UpdatePostRequest) Descriptor() ([]byte, []int) { + return file_service_post_proto_rawDescGZIP(), []int{2} +} + +func (x *UpdatePostRequest) GetPostId() int64 { + if x != nil { + return x.PostId + } + return 0 +} + +func (x *UpdatePostRequest) GetPostCategoryId() int64 { + if x != nil { + return x.PostCategoryId + } + return 0 +} + +func (x *UpdatePostRequest) GetProductCode() string { + if x != nil { + return x.ProductCode + } + return "" +} + +func (x *UpdatePostRequest) GetSubject() string { + if x != nil { + return x.Subject + } + return "" +} + +func (x *UpdatePostRequest) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *UpdatePostRequest) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *UpdatePostRequest) GetBody() string { + if x != nil { + return x.Body + } + return "" +} + +// 删除文章 +type DeletePostRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PostId int64 `protobuf:"varint,1,opt,name=postId,proto3" json:"postId,omitempty"` // 文章ID +} + +func (x *DeletePostRequest) Reset() { + *x = DeletePostRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeletePostRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeletePostRequest) ProtoMessage() {} + +func (x *DeletePostRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_post_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeletePostRequest.ProtoReflect.Descriptor instead. +func (*DeletePostRequest) Descriptor() ([]byte, []int) { + return file_service_post_proto_rawDescGZIP(), []int{3} +} + +func (x *DeletePostRequest) GetPostId() int64 { + if x != nil { + return x.PostId + } + return 0 +} + +// 发布文章 +type PublishPostRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PostId int64 `protobuf:"varint,1,opt,name=postId,proto3" json:"postId,omitempty"` // 文章ID +} + +func (x *PublishPostRequest) Reset() { + *x = PublishPostRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PublishPostRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PublishPostRequest) ProtoMessage() {} + +func (x *PublishPostRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_post_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PublishPostRequest.ProtoReflect.Descriptor instead. +func (*PublishPostRequest) Descriptor() ([]byte, []int) { + return file_service_post_proto_rawDescGZIP(), []int{4} +} + +func (x *PublishPostRequest) GetPostId() int64 { + if x != nil { + return x.PostId + } + return 0 +} + +// 计算文章数量 +type CountPostsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PostCategoryId int64 `protobuf:"varint,1,opt,name=postCategoryId,proto3" json:"postCategoryId,omitempty"` // 分类ID + ProductCode string `protobuf:"bytes,2,opt,name=productCode,proto3" json:"productCode,omitempty"` // 产品代号 + PublishedOnly bool `protobuf:"varint,3,opt,name=publishedOnly,proto3" json:"publishedOnly,omitempty"` // 只列出已发布的 +} + +func (x *CountPostsRequest) Reset() { + *x = CountPostsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountPostsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountPostsRequest) ProtoMessage() {} + +func (x *CountPostsRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_post_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CountPostsRequest.ProtoReflect.Descriptor instead. +func (*CountPostsRequest) Descriptor() ([]byte, []int) { + return file_service_post_proto_rawDescGZIP(), []int{5} +} + +func (x *CountPostsRequest) GetPostCategoryId() int64 { + if x != nil { + return x.PostCategoryId + } + return 0 +} + +func (x *CountPostsRequest) GetProductCode() string { + if x != nil { + return x.ProductCode + } + return "" +} + +func (x *CountPostsRequest) GetPublishedOnly() bool { + if x != nil { + return x.PublishedOnly + } + return false +} + +// 列出单页文章 +type ListPostsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset int64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Size int64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"` + ProductCode string `protobuf:"bytes,3,opt,name=productCode,proto3" json:"productCode,omitempty"` // 产品代号 + PostCategoryId int64 `protobuf:"varint,4,opt,name=postCategoryId,proto3" json:"postCategoryId,omitempty"` // 分类ID + PostCategoryCode string `protobuf:"bytes,5,opt,name=postCategoryCode,proto3" json:"postCategoryCode,omitempty"` // 分类代号 + ExcludingPostCategoryCode string `protobuf:"bytes,6,opt,name=excludingPostCategoryCode,proto3" json:"excludingPostCategoryCode,omitempty"` // 排除的分类代号 + PublishedOnly bool `protobuf:"varint,7,opt,name=publishedOnly,proto3" json:"publishedOnly,omitempty"` // 只列出已发布的 + ContainsBody bool `protobuf:"varint,8,opt,name=containsBody,proto3" json:"containsBody,omitempty"` // 是否包含文章内容 +} + +func (x *ListPostsRequest) Reset() { + *x = ListPostsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListPostsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListPostsRequest) ProtoMessage() {} + +func (x *ListPostsRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_post_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListPostsRequest.ProtoReflect.Descriptor instead. +func (*ListPostsRequest) Descriptor() ([]byte, []int) { + return file_service_post_proto_rawDescGZIP(), []int{6} +} + +func (x *ListPostsRequest) GetOffset() int64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *ListPostsRequest) GetSize() int64 { + if x != nil { + return x.Size + } + return 0 +} + +func (x *ListPostsRequest) GetProductCode() string { + if x != nil { + return x.ProductCode + } + return "" +} + +func (x *ListPostsRequest) GetPostCategoryId() int64 { + if x != nil { + return x.PostCategoryId + } + return 0 +} + +func (x *ListPostsRequest) GetPostCategoryCode() string { + if x != nil { + return x.PostCategoryCode + } + return "" +} + +func (x *ListPostsRequest) GetExcludingPostCategoryCode() string { + if x != nil { + return x.ExcludingPostCategoryCode + } + return "" +} + +func (x *ListPostsRequest) GetPublishedOnly() bool { + if x != nil { + return x.PublishedOnly + } + return false +} + +func (x *ListPostsRequest) GetContainsBody() bool { + if x != nil { + return x.ContainsBody + } + return false +} + +type ListPostsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Posts []*Post `protobuf:"bytes,1,rep,name=posts,proto3" json:"posts,omitempty"` // 文章列表 +} + +func (x *ListPostsResponse) Reset() { + *x = ListPostsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListPostsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListPostsResponse) ProtoMessage() {} + +func (x *ListPostsResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_post_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListPostsResponse.ProtoReflect.Descriptor instead. +func (*ListPostsResponse) Descriptor() ([]byte, []int) { + return file_service_post_proto_rawDescGZIP(), []int{7} +} + +func (x *ListPostsResponse) GetPosts() []*Post { + if x != nil { + return x.Posts + } + return nil +} + +// 查询单篇文章 +type FindPostRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PostId int64 `protobuf:"varint,1,opt,name=postId,proto3" json:"postId,omitempty"` // 文章ID +} + +func (x *FindPostRequest) Reset() { + *x = FindPostRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindPostRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindPostRequest) ProtoMessage() {} + +func (x *FindPostRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_post_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FindPostRequest.ProtoReflect.Descriptor instead. +func (*FindPostRequest) Descriptor() ([]byte, []int) { + return file_service_post_proto_rawDescGZIP(), []int{8} +} + +func (x *FindPostRequest) GetPostId() int64 { + if x != nil { + return x.PostId + } + return 0 +} + +type FindPostResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Post *Post `protobuf:"bytes,1,opt,name=post,proto3" json:"post,omitempty"` // 文章信息 +} + +func (x *FindPostResponse) Reset() { + *x = FindPostResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindPostResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindPostResponse) ProtoMessage() {} + +func (x *FindPostResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_post_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FindPostResponse.ProtoReflect.Descriptor instead. +func (*FindPostResponse) Descriptor() ([]byte, []int) { + return file_service_post_proto_rawDescGZIP(), []int{9} +} + +func (x *FindPostResponse) GetPost() *Post { + if x != nil { + return x.Post + } + return nil +} + +var File_service_post_proto protoreflect.FileDescriptor + +var file_service_post_proto_rawDesc = []byte{ + 0x0a, 0x12, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x17, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, + 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x19, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb1, 0x01, 0x0a, + 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x74, + 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, + 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, + 0x62, 0x6f, 0x64, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, + 0x22, 0x2c, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x22, 0xc9, + 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, + 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x79, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x2b, 0x0a, 0x11, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x22, 0x2c, 0x0a, 0x12, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x73, 0x68, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, + 0x6f, 0x73, 0x74, 0x49, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x11, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x50, + 0x6f, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, + 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, + 0x79, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x65, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0xbc, 0x02, 0x0a, 0x10, + 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x26, + 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x19, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x50, + 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, + 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4f, 0x6e, 0x6c, + 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x65, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x73, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x33, 0x0a, 0x11, 0x4c, 0x69, + 0x73, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x1e, 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, + 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x22, + 0x29, 0x0a, 0x0f, 0x46, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x22, 0x30, 0x0a, 0x10, 0x46, 0x69, + 0x6e, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, + 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, + 0x62, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x32, 0x97, 0x03, 0x0a, + 0x0b, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3b, 0x0a, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, + 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x33, + 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x70, + 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x50, 0x6f, + 0x73, 0x74, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x50, + 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, + 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x73, + 0x74, 0x73, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x73, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x35, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x12, 0x13, 0x2e, 0x70, 0x62, + 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_service_post_proto_rawDescOnce sync.Once + file_service_post_proto_rawDescData = file_service_post_proto_rawDesc +) + +func file_service_post_proto_rawDescGZIP() []byte { + file_service_post_proto_rawDescOnce.Do(func() { + file_service_post_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_post_proto_rawDescData) + }) + return file_service_post_proto_rawDescData +} + +var file_service_post_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_service_post_proto_goTypes = []interface{}{ + (*CreatePostRequest)(nil), // 0: pb.CreatePostRequest + (*CreatePostResponse)(nil), // 1: pb.CreatePostResponse + (*UpdatePostRequest)(nil), // 2: pb.UpdatePostRequest + (*DeletePostRequest)(nil), // 3: pb.DeletePostRequest + (*PublishPostRequest)(nil), // 4: pb.PublishPostRequest + (*CountPostsRequest)(nil), // 5: pb.CountPostsRequest + (*ListPostsRequest)(nil), // 6: pb.ListPostsRequest + (*ListPostsResponse)(nil), // 7: pb.ListPostsResponse + (*FindPostRequest)(nil), // 8: pb.FindPostRequest + (*FindPostResponse)(nil), // 9: pb.FindPostResponse + (*Post)(nil), // 10: pb.Post + (*RPCSuccess)(nil), // 11: pb.RPCSuccess + (*RPCCountResponse)(nil), // 12: pb.RPCCountResponse +} +var file_service_post_proto_depIdxs = []int32{ + 10, // 0: pb.ListPostsResponse.posts:type_name -> pb.Post + 10, // 1: pb.FindPostResponse.post:type_name -> pb.Post + 0, // 2: pb.PostService.createPost:input_type -> pb.CreatePostRequest + 2, // 3: pb.PostService.updatePost:input_type -> pb.UpdatePostRequest + 3, // 4: pb.PostService.deletePost:input_type -> pb.DeletePostRequest + 4, // 5: pb.PostService.publishPost:input_type -> pb.PublishPostRequest + 5, // 6: pb.PostService.countPosts:input_type -> pb.CountPostsRequest + 6, // 7: pb.PostService.listPosts:input_type -> pb.ListPostsRequest + 8, // 8: pb.PostService.findPost:input_type -> pb.FindPostRequest + 1, // 9: pb.PostService.createPost:output_type -> pb.CreatePostResponse + 11, // 10: pb.PostService.updatePost:output_type -> pb.RPCSuccess + 11, // 11: pb.PostService.deletePost:output_type -> pb.RPCSuccess + 11, // 12: pb.PostService.publishPost:output_type -> pb.RPCSuccess + 12, // 13: pb.PostService.countPosts:output_type -> pb.RPCCountResponse + 7, // 14: pb.PostService.listPosts:output_type -> pb.ListPostsResponse + 9, // 15: pb.PostService.findPost:output_type -> pb.FindPostResponse + 9, // [9:16] is the sub-list for method output_type + 2, // [2:9] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_service_post_proto_init() } +func file_service_post_proto_init() { + if File_service_post_proto != nil { + return + } + file_models_model_post_proto_init() + file_models_rpc_messages_proto_init() + if !protoimpl.UnsafeEnabled { + file_service_post_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreatePostRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_post_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreatePostResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_post_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdatePostRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_post_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeletePostRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_post_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PublishPostRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_post_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountPostsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_post_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListPostsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_post_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListPostsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_post_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindPostRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_post_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindPostResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_service_post_proto_rawDesc, + NumEnums: 0, + NumMessages: 10, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_service_post_proto_goTypes, + DependencyIndexes: file_service_post_proto_depIdxs, + MessageInfos: file_service_post_proto_msgTypes, + }.Build() + File_service_post_proto = out.File + file_service_post_proto_rawDesc = nil + file_service_post_proto_goTypes = nil + file_service_post_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/service_post_category.pb.go b/pkg/rpc/pb/service_post_category.pb.go new file mode 100644 index 0000000..5cc0129 --- /dev/null +++ b/pkg/rpc/pb/service_post_category.pb.go @@ -0,0 +1,875 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v3.19.4 +// source: service_post_category.proto + +package pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// 创建分类 +type CreatePostCategoryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // 分类名称 + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` // 分类代号 +} + +func (x *CreatePostCategoryRequest) Reset() { + *x = CreatePostCategoryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_category_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreatePostCategoryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreatePostCategoryRequest) ProtoMessage() {} + +func (x *CreatePostCategoryRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_post_category_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreatePostCategoryRequest.ProtoReflect.Descriptor instead. +func (*CreatePostCategoryRequest) Descriptor() ([]byte, []int) { + return file_service_post_category_proto_rawDescGZIP(), []int{0} +} + +func (x *CreatePostCategoryRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreatePostCategoryRequest) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +type CreatePostCategoryResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PostCategoryId int64 `protobuf:"varint,1,opt,name=postCategoryId,proto3" json:"postCategoryId,omitempty"` // 分类ID +} + +func (x *CreatePostCategoryResponse) Reset() { + *x = CreatePostCategoryResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_category_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreatePostCategoryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreatePostCategoryResponse) ProtoMessage() {} + +func (x *CreatePostCategoryResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_post_category_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreatePostCategoryResponse.ProtoReflect.Descriptor instead. +func (*CreatePostCategoryResponse) Descriptor() ([]byte, []int) { + return file_service_post_category_proto_rawDescGZIP(), []int{1} +} + +func (x *CreatePostCategoryResponse) GetPostCategoryId() int64 { + if x != nil { + return x.PostCategoryId + } + return 0 +} + +// 修改分类 +type UpdatePostCategoryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PostCategoryId int64 `protobuf:"varint,1,opt,name=postCategoryId,proto3" json:"postCategoryId,omitempty"` // 分类ID + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // 分类名称 + Code string `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"` // 分类代号 + IsOn bool `protobuf:"varint,4,opt,name=isOn,proto3" json:"isOn,omitempty"` // 是否启用 +} + +func (x *UpdatePostCategoryRequest) Reset() { + *x = UpdatePostCategoryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_category_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdatePostCategoryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdatePostCategoryRequest) ProtoMessage() {} + +func (x *UpdatePostCategoryRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_post_category_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdatePostCategoryRequest.ProtoReflect.Descriptor instead. +func (*UpdatePostCategoryRequest) Descriptor() ([]byte, []int) { + return file_service_post_category_proto_rawDescGZIP(), []int{2} +} + +func (x *UpdatePostCategoryRequest) GetPostCategoryId() int64 { + if x != nil { + return x.PostCategoryId + } + return 0 +} + +func (x *UpdatePostCategoryRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdatePostCategoryRequest) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *UpdatePostCategoryRequest) GetIsOn() bool { + if x != nil { + return x.IsOn + } + return false +} + +// 删除分类 +type DeletePostCategoryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PostCategoryId int64 `protobuf:"varint,1,opt,name=postCategoryId,proto3" json:"postCategoryId,omitempty"` // 分类ID +} + +func (x *DeletePostCategoryRequest) Reset() { + *x = DeletePostCategoryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_category_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeletePostCategoryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeletePostCategoryRequest) ProtoMessage() {} + +func (x *DeletePostCategoryRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_post_category_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeletePostCategoryRequest.ProtoReflect.Descriptor instead. +func (*DeletePostCategoryRequest) Descriptor() ([]byte, []int) { + return file_service_post_category_proto_rawDescGZIP(), []int{3} +} + +func (x *DeletePostCategoryRequest) GetPostCategoryId() int64 { + if x != nil { + return x.PostCategoryId + } + return 0 +} + +// 列出所有分类 +type FindAllPostCategoriesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *FindAllPostCategoriesRequest) Reset() { + *x = FindAllPostCategoriesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_category_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAllPostCategoriesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAllPostCategoriesRequest) ProtoMessage() {} + +func (x *FindAllPostCategoriesRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_post_category_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FindAllPostCategoriesRequest.ProtoReflect.Descriptor instead. +func (*FindAllPostCategoriesRequest) Descriptor() ([]byte, []int) { + return file_service_post_category_proto_rawDescGZIP(), []int{4} +} + +type FindAllPostCategoriesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PostCategories []*PostCategory `protobuf:"bytes,1,rep,name=postCategories,proto3" json:"postCategories,omitempty"` // 分类列表 +} + +func (x *FindAllPostCategoriesResponse) Reset() { + *x = FindAllPostCategoriesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_category_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAllPostCategoriesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAllPostCategoriesResponse) ProtoMessage() {} + +func (x *FindAllPostCategoriesResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_post_category_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FindAllPostCategoriesResponse.ProtoReflect.Descriptor instead. +func (*FindAllPostCategoriesResponse) Descriptor() ([]byte, []int) { + return file_service_post_category_proto_rawDescGZIP(), []int{5} +} + +func (x *FindAllPostCategoriesResponse) GetPostCategories() []*PostCategory { + if x != nil { + return x.PostCategories + } + return nil +} + +// 列出所有可用分类 +type FindAllAvailablePostCategoriesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *FindAllAvailablePostCategoriesRequest) Reset() { + *x = FindAllAvailablePostCategoriesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_category_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAllAvailablePostCategoriesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAllAvailablePostCategoriesRequest) ProtoMessage() {} + +func (x *FindAllAvailablePostCategoriesRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_post_category_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FindAllAvailablePostCategoriesRequest.ProtoReflect.Descriptor instead. +func (*FindAllAvailablePostCategoriesRequest) Descriptor() ([]byte, []int) { + return file_service_post_category_proto_rawDescGZIP(), []int{6} +} + +type FindAllAvailablePostCategoriesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PostCategories []*PostCategory `protobuf:"bytes,1,rep,name=postCategories,proto3" json:"postCategories,omitempty"` // 分类列表 +} + +func (x *FindAllAvailablePostCategoriesResponse) Reset() { + *x = FindAllAvailablePostCategoriesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_category_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAllAvailablePostCategoriesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAllAvailablePostCategoriesResponse) ProtoMessage() {} + +func (x *FindAllAvailablePostCategoriesResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_post_category_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FindAllAvailablePostCategoriesResponse.ProtoReflect.Descriptor instead. +func (*FindAllAvailablePostCategoriesResponse) Descriptor() ([]byte, []int) { + return file_service_post_category_proto_rawDescGZIP(), []int{7} +} + +func (x *FindAllAvailablePostCategoriesResponse) GetPostCategories() []*PostCategory { + if x != nil { + return x.PostCategories + } + return nil +} + +// 查询单个分类 +type FindPostCategoryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PostCategoryId int64 `protobuf:"varint,1,opt,name=postCategoryId,proto3" json:"postCategoryId,omitempty"` // 分类ID +} + +func (x *FindPostCategoryRequest) Reset() { + *x = FindPostCategoryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_category_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindPostCategoryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindPostCategoryRequest) ProtoMessage() {} + +func (x *FindPostCategoryRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_post_category_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FindPostCategoryRequest.ProtoReflect.Descriptor instead. +func (*FindPostCategoryRequest) Descriptor() ([]byte, []int) { + return file_service_post_category_proto_rawDescGZIP(), []int{8} +} + +func (x *FindPostCategoryRequest) GetPostCategoryId() int64 { + if x != nil { + return x.PostCategoryId + } + return 0 +} + +type FindPostCategoryResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PostCategory *PostCategory `protobuf:"bytes,1,opt,name=postCategory,proto3" json:"postCategory,omitempty"` // 分类信息 +} + +func (x *FindPostCategoryResponse) Reset() { + *x = FindPostCategoryResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_category_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindPostCategoryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindPostCategoryResponse) ProtoMessage() {} + +func (x *FindPostCategoryResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_post_category_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FindPostCategoryResponse.ProtoReflect.Descriptor instead. +func (*FindPostCategoryResponse) Descriptor() ([]byte, []int) { + return file_service_post_category_proto_rawDescGZIP(), []int{9} +} + +func (x *FindPostCategoryResponse) GetPostCategory() *PostCategory { + if x != nil { + return x.PostCategory + } + return nil +} + +// 对分类进行排序 +type SortPostCategoriesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PostCategoryIds []int64 `protobuf:"varint,1,rep,packed,name=postCategoryIds,proto3" json:"postCategoryIds,omitempty"` // 分类ID列表 +} + +func (x *SortPostCategoriesRequest) Reset() { + *x = SortPostCategoriesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_post_category_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SortPostCategoriesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SortPostCategoriesRequest) ProtoMessage() {} + +func (x *SortPostCategoriesRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_post_category_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SortPostCategoriesRequest.ProtoReflect.Descriptor instead. +func (*SortPostCategoriesRequest) Descriptor() ([]byte, []int) { + return file_service_post_category_proto_rawDescGZIP(), []int{10} +} + +func (x *SortPostCategoriesRequest) GetPostCategoryIds() []int64 { + if x != nil { + return x.PostCategoryIds + } + return nil +} + +var File_service_post_category_proto protoreflect.FileDescriptor + +var file_service_post_category_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x63, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, + 0x62, 0x1a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, + 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x5f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x43, + 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x22, 0x44, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x73, + 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, + 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x43, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x22, 0x7f, 0x0a, 0x19, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, + 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x22, 0x43, 0x0a, 0x19, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x43, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x22, + 0x1e, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x59, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x38, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6f, + 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x74, + 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0x27, 0x0a, 0x25, 0x46, 0x69, + 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, + 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0x62, 0x0a, 0x26, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x41, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, + 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, + 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0x41, 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x64, 0x50, + 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x74, + 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x22, 0x50, 0x0a, 0x18, 0x46, 0x69, + 0x6e, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x0c, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, + 0x62, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x0c, + 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x22, 0x45, 0x0a, 0x19, + 0x53, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x6f, 0x73, + 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x03, 0x52, 0x0f, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x49, 0x64, 0x73, 0x32, 0xdf, 0x04, 0x0a, 0x13, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, + 0x79, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x73, + 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, + 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x43, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x43, 0x0a, 0x12, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, + 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1d, 0x2e, 0x70, 0x62, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, + 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x5c, 0x0a, 0x15, 0x66, 0x69, + 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, + 0x69, 0x65, 0x73, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, + 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, + 0x6c, 0x6c, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x1e, 0x66, 0x69, 0x6e, 0x64, + 0x41, 0x6c, 0x6c, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x74, + 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x29, 0x2e, 0x70, 0x62, 0x2e, + 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, + 0x6c, 0x6c, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x43, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x66, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x50, + 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x73, 0x74, + 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x43, 0x0a, 0x12, 0x73, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x6f, 0x72, 0x74, + 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_service_post_category_proto_rawDescOnce sync.Once + file_service_post_category_proto_rawDescData = file_service_post_category_proto_rawDesc +) + +func file_service_post_category_proto_rawDescGZIP() []byte { + file_service_post_category_proto_rawDescOnce.Do(func() { + file_service_post_category_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_post_category_proto_rawDescData) + }) + return file_service_post_category_proto_rawDescData +} + +var file_service_post_category_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_service_post_category_proto_goTypes = []interface{}{ + (*CreatePostCategoryRequest)(nil), // 0: pb.CreatePostCategoryRequest + (*CreatePostCategoryResponse)(nil), // 1: pb.CreatePostCategoryResponse + (*UpdatePostCategoryRequest)(nil), // 2: pb.UpdatePostCategoryRequest + (*DeletePostCategoryRequest)(nil), // 3: pb.DeletePostCategoryRequest + (*FindAllPostCategoriesRequest)(nil), // 4: pb.FindAllPostCategoriesRequest + (*FindAllPostCategoriesResponse)(nil), // 5: pb.FindAllPostCategoriesResponse + (*FindAllAvailablePostCategoriesRequest)(nil), // 6: pb.FindAllAvailablePostCategoriesRequest + (*FindAllAvailablePostCategoriesResponse)(nil), // 7: pb.FindAllAvailablePostCategoriesResponse + (*FindPostCategoryRequest)(nil), // 8: pb.FindPostCategoryRequest + (*FindPostCategoryResponse)(nil), // 9: pb.FindPostCategoryResponse + (*SortPostCategoriesRequest)(nil), // 10: pb.SortPostCategoriesRequest + (*PostCategory)(nil), // 11: pb.PostCategory + (*RPCSuccess)(nil), // 12: pb.RPCSuccess +} +var file_service_post_category_proto_depIdxs = []int32{ + 11, // 0: pb.FindAllPostCategoriesResponse.postCategories:type_name -> pb.PostCategory + 11, // 1: pb.FindAllAvailablePostCategoriesResponse.postCategories:type_name -> pb.PostCategory + 11, // 2: pb.FindPostCategoryResponse.postCategory:type_name -> pb.PostCategory + 0, // 3: pb.PostCategoryService.createPostCategory:input_type -> pb.CreatePostCategoryRequest + 2, // 4: pb.PostCategoryService.updatePostCategory:input_type -> pb.UpdatePostCategoryRequest + 3, // 5: pb.PostCategoryService.deletePostCategory:input_type -> pb.DeletePostCategoryRequest + 4, // 6: pb.PostCategoryService.findAllPostCategories:input_type -> pb.FindAllPostCategoriesRequest + 6, // 7: pb.PostCategoryService.findAllAvailablePostCategories:input_type -> pb.FindAllAvailablePostCategoriesRequest + 8, // 8: pb.PostCategoryService.findPostCategory:input_type -> pb.FindPostCategoryRequest + 10, // 9: pb.PostCategoryService.sortPostCategories:input_type -> pb.SortPostCategoriesRequest + 1, // 10: pb.PostCategoryService.createPostCategory:output_type -> pb.CreatePostCategoryResponse + 12, // 11: pb.PostCategoryService.updatePostCategory:output_type -> pb.RPCSuccess + 12, // 12: pb.PostCategoryService.deletePostCategory:output_type -> pb.RPCSuccess + 5, // 13: pb.PostCategoryService.findAllPostCategories:output_type -> pb.FindAllPostCategoriesResponse + 7, // 14: pb.PostCategoryService.findAllAvailablePostCategories:output_type -> pb.FindAllAvailablePostCategoriesResponse + 9, // 15: pb.PostCategoryService.findPostCategory:output_type -> pb.FindPostCategoryResponse + 12, // 16: pb.PostCategoryService.sortPostCategories:output_type -> pb.RPCSuccess + 10, // [10:17] is the sub-list for method output_type + 3, // [3:10] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_service_post_category_proto_init() } +func file_service_post_category_proto_init() { + if File_service_post_category_proto != nil { + return + } + file_models_model_post_category_proto_init() + file_models_rpc_messages_proto_init() + if !protoimpl.UnsafeEnabled { + file_service_post_category_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreatePostCategoryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_post_category_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreatePostCategoryResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_post_category_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdatePostCategoryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_post_category_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeletePostCategoryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_post_category_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAllPostCategoriesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_post_category_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAllPostCategoriesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_post_category_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAllAvailablePostCategoriesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_post_category_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAllAvailablePostCategoriesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_post_category_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindPostCategoryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_post_category_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindPostCategoryResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_post_category_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SortPostCategoriesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_service_post_category_proto_rawDesc, + NumEnums: 0, + NumMessages: 11, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_service_post_category_proto_goTypes, + DependencyIndexes: file_service_post_category_proto_depIdxs, + MessageInfos: file_service_post_category_proto_msgTypes, + }.Build() + File_service_post_category_proto = out.File + file_service_post_category_proto_rawDesc = nil + file_service_post_category_proto_goTypes = nil + file_service_post_category_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/service_post_category_grpc.pb.go b/pkg/rpc/pb/service_post_category_grpc.pb.go new file mode 100644 index 0000000..d7acb24 --- /dev/null +++ b/pkg/rpc/pb/service_post_category_grpc.pb.go @@ -0,0 +1,343 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v3.19.4 +// source: service_post_category.proto + +package pb + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + PostCategoryService_CreatePostCategory_FullMethodName = "/pb.PostCategoryService/createPostCategory" + PostCategoryService_UpdatePostCategory_FullMethodName = "/pb.PostCategoryService/updatePostCategory" + PostCategoryService_DeletePostCategory_FullMethodName = "/pb.PostCategoryService/deletePostCategory" + PostCategoryService_FindAllPostCategories_FullMethodName = "/pb.PostCategoryService/findAllPostCategories" + PostCategoryService_FindAllAvailablePostCategories_FullMethodName = "/pb.PostCategoryService/findAllAvailablePostCategories" + PostCategoryService_FindPostCategory_FullMethodName = "/pb.PostCategoryService/findPostCategory" + PostCategoryService_SortPostCategories_FullMethodName = "/pb.PostCategoryService/sortPostCategories" +) + +// PostCategoryServiceClient is the client API for PostCategoryService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type PostCategoryServiceClient interface { + // 创建分类 + CreatePostCategory(ctx context.Context, in *CreatePostCategoryRequest, opts ...grpc.CallOption) (*CreatePostCategoryResponse, error) + // 修改分类 + UpdatePostCategory(ctx context.Context, in *UpdatePostCategoryRequest, opts ...grpc.CallOption) (*RPCSuccess, error) + // 删除分类 + DeletePostCategory(ctx context.Context, in *DeletePostCategoryRequest, opts ...grpc.CallOption) (*RPCSuccess, error) + // 列出所有分类 + FindAllPostCategories(ctx context.Context, in *FindAllPostCategoriesRequest, opts ...grpc.CallOption) (*FindAllPostCategoriesResponse, error) + // 列出所有可用分类 + FindAllAvailablePostCategories(ctx context.Context, in *FindAllAvailablePostCategoriesRequest, opts ...grpc.CallOption) (*FindAllAvailablePostCategoriesResponse, error) + // 查询单个分类 + FindPostCategory(ctx context.Context, in *FindPostCategoryRequest, opts ...grpc.CallOption) (*FindPostCategoryResponse, error) + // 对分类进行排序 + SortPostCategories(ctx context.Context, in *SortPostCategoriesRequest, opts ...grpc.CallOption) (*RPCSuccess, error) +} + +type postCategoryServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewPostCategoryServiceClient(cc grpc.ClientConnInterface) PostCategoryServiceClient { + return &postCategoryServiceClient{cc} +} + +func (c *postCategoryServiceClient) CreatePostCategory(ctx context.Context, in *CreatePostCategoryRequest, opts ...grpc.CallOption) (*CreatePostCategoryResponse, error) { + out := new(CreatePostCategoryResponse) + err := c.cc.Invoke(ctx, PostCategoryService_CreatePostCategory_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *postCategoryServiceClient) UpdatePostCategory(ctx context.Context, in *UpdatePostCategoryRequest, opts ...grpc.CallOption) (*RPCSuccess, error) { + out := new(RPCSuccess) + err := c.cc.Invoke(ctx, PostCategoryService_UpdatePostCategory_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *postCategoryServiceClient) DeletePostCategory(ctx context.Context, in *DeletePostCategoryRequest, opts ...grpc.CallOption) (*RPCSuccess, error) { + out := new(RPCSuccess) + err := c.cc.Invoke(ctx, PostCategoryService_DeletePostCategory_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *postCategoryServiceClient) FindAllPostCategories(ctx context.Context, in *FindAllPostCategoriesRequest, opts ...grpc.CallOption) (*FindAllPostCategoriesResponse, error) { + out := new(FindAllPostCategoriesResponse) + err := c.cc.Invoke(ctx, PostCategoryService_FindAllPostCategories_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *postCategoryServiceClient) FindAllAvailablePostCategories(ctx context.Context, in *FindAllAvailablePostCategoriesRequest, opts ...grpc.CallOption) (*FindAllAvailablePostCategoriesResponse, error) { + out := new(FindAllAvailablePostCategoriesResponse) + err := c.cc.Invoke(ctx, PostCategoryService_FindAllAvailablePostCategories_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *postCategoryServiceClient) FindPostCategory(ctx context.Context, in *FindPostCategoryRequest, opts ...grpc.CallOption) (*FindPostCategoryResponse, error) { + out := new(FindPostCategoryResponse) + err := c.cc.Invoke(ctx, PostCategoryService_FindPostCategory_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *postCategoryServiceClient) SortPostCategories(ctx context.Context, in *SortPostCategoriesRequest, opts ...grpc.CallOption) (*RPCSuccess, error) { + out := new(RPCSuccess) + err := c.cc.Invoke(ctx, PostCategoryService_SortPostCategories_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// PostCategoryServiceServer is the server API for PostCategoryService service. +// All implementations should embed UnimplementedPostCategoryServiceServer +// for forward compatibility +type PostCategoryServiceServer interface { + // 创建分类 + CreatePostCategory(context.Context, *CreatePostCategoryRequest) (*CreatePostCategoryResponse, error) + // 修改分类 + UpdatePostCategory(context.Context, *UpdatePostCategoryRequest) (*RPCSuccess, error) + // 删除分类 + DeletePostCategory(context.Context, *DeletePostCategoryRequest) (*RPCSuccess, error) + // 列出所有分类 + FindAllPostCategories(context.Context, *FindAllPostCategoriesRequest) (*FindAllPostCategoriesResponse, error) + // 列出所有可用分类 + FindAllAvailablePostCategories(context.Context, *FindAllAvailablePostCategoriesRequest) (*FindAllAvailablePostCategoriesResponse, error) + // 查询单个分类 + FindPostCategory(context.Context, *FindPostCategoryRequest) (*FindPostCategoryResponse, error) + // 对分类进行排序 + SortPostCategories(context.Context, *SortPostCategoriesRequest) (*RPCSuccess, error) +} + +// UnimplementedPostCategoryServiceServer should be embedded to have forward compatible implementations. +type UnimplementedPostCategoryServiceServer struct { +} + +func (UnimplementedPostCategoryServiceServer) CreatePostCategory(context.Context, *CreatePostCategoryRequest) (*CreatePostCategoryResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreatePostCategory not implemented") +} +func (UnimplementedPostCategoryServiceServer) UpdatePostCategory(context.Context, *UpdatePostCategoryRequest) (*RPCSuccess, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdatePostCategory not implemented") +} +func (UnimplementedPostCategoryServiceServer) DeletePostCategory(context.Context, *DeletePostCategoryRequest) (*RPCSuccess, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeletePostCategory not implemented") +} +func (UnimplementedPostCategoryServiceServer) FindAllPostCategories(context.Context, *FindAllPostCategoriesRequest) (*FindAllPostCategoriesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindAllPostCategories not implemented") +} +func (UnimplementedPostCategoryServiceServer) FindAllAvailablePostCategories(context.Context, *FindAllAvailablePostCategoriesRequest) (*FindAllAvailablePostCategoriesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindAllAvailablePostCategories not implemented") +} +func (UnimplementedPostCategoryServiceServer) FindPostCategory(context.Context, *FindPostCategoryRequest) (*FindPostCategoryResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindPostCategory not implemented") +} +func (UnimplementedPostCategoryServiceServer) SortPostCategories(context.Context, *SortPostCategoriesRequest) (*RPCSuccess, error) { + return nil, status.Errorf(codes.Unimplemented, "method SortPostCategories not implemented") +} + +// UnsafePostCategoryServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to PostCategoryServiceServer will +// result in compilation errors. +type UnsafePostCategoryServiceServer interface { + mustEmbedUnimplementedPostCategoryServiceServer() +} + +func RegisterPostCategoryServiceServer(s grpc.ServiceRegistrar, srv PostCategoryServiceServer) { + s.RegisterService(&PostCategoryService_ServiceDesc, srv) +} + +func _PostCategoryService_CreatePostCategory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreatePostCategoryRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PostCategoryServiceServer).CreatePostCategory(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PostCategoryService_CreatePostCategory_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PostCategoryServiceServer).CreatePostCategory(ctx, req.(*CreatePostCategoryRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PostCategoryService_UpdatePostCategory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdatePostCategoryRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PostCategoryServiceServer).UpdatePostCategory(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PostCategoryService_UpdatePostCategory_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PostCategoryServiceServer).UpdatePostCategory(ctx, req.(*UpdatePostCategoryRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PostCategoryService_DeletePostCategory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeletePostCategoryRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PostCategoryServiceServer).DeletePostCategory(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PostCategoryService_DeletePostCategory_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PostCategoryServiceServer).DeletePostCategory(ctx, req.(*DeletePostCategoryRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PostCategoryService_FindAllPostCategories_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindAllPostCategoriesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PostCategoryServiceServer).FindAllPostCategories(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PostCategoryService_FindAllPostCategories_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PostCategoryServiceServer).FindAllPostCategories(ctx, req.(*FindAllPostCategoriesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PostCategoryService_FindAllAvailablePostCategories_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindAllAvailablePostCategoriesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PostCategoryServiceServer).FindAllAvailablePostCategories(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PostCategoryService_FindAllAvailablePostCategories_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PostCategoryServiceServer).FindAllAvailablePostCategories(ctx, req.(*FindAllAvailablePostCategoriesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PostCategoryService_FindPostCategory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindPostCategoryRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PostCategoryServiceServer).FindPostCategory(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PostCategoryService_FindPostCategory_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PostCategoryServiceServer).FindPostCategory(ctx, req.(*FindPostCategoryRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PostCategoryService_SortPostCategories_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SortPostCategoriesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PostCategoryServiceServer).SortPostCategories(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PostCategoryService_SortPostCategories_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PostCategoryServiceServer).SortPostCategories(ctx, req.(*SortPostCategoriesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// PostCategoryService_ServiceDesc is the grpc.ServiceDesc for PostCategoryService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var PostCategoryService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "pb.PostCategoryService", + HandlerType: (*PostCategoryServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "createPostCategory", + Handler: _PostCategoryService_CreatePostCategory_Handler, + }, + { + MethodName: "updatePostCategory", + Handler: _PostCategoryService_UpdatePostCategory_Handler, + }, + { + MethodName: "deletePostCategory", + Handler: _PostCategoryService_DeletePostCategory_Handler, + }, + { + MethodName: "findAllPostCategories", + Handler: _PostCategoryService_FindAllPostCategories_Handler, + }, + { + MethodName: "findAllAvailablePostCategories", + Handler: _PostCategoryService_FindAllAvailablePostCategories_Handler, + }, + { + MethodName: "findPostCategory", + Handler: _PostCategoryService_FindPostCategory_Handler, + }, + { + MethodName: "sortPostCategories", + Handler: _PostCategoryService_SortPostCategories_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "service_post_category.proto", +} diff --git a/pkg/rpc/pb/service_post_grpc.pb.go b/pkg/rpc/pb/service_post_grpc.pb.go new file mode 100644 index 0000000..4a7fce8 --- /dev/null +++ b/pkg/rpc/pb/service_post_grpc.pb.go @@ -0,0 +1,343 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v3.19.4 +// source: service_post.proto + +package pb + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + PostService_CreatePost_FullMethodName = "/pb.PostService/createPost" + PostService_UpdatePost_FullMethodName = "/pb.PostService/updatePost" + PostService_DeletePost_FullMethodName = "/pb.PostService/deletePost" + PostService_PublishPost_FullMethodName = "/pb.PostService/publishPost" + PostService_CountPosts_FullMethodName = "/pb.PostService/countPosts" + PostService_ListPosts_FullMethodName = "/pb.PostService/listPosts" + PostService_FindPost_FullMethodName = "/pb.PostService/findPost" +) + +// PostServiceClient is the client API for PostService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type PostServiceClient interface { + // 创建文章 + CreatePost(ctx context.Context, in *CreatePostRequest, opts ...grpc.CallOption) (*CreatePostResponse, error) + // 修改文章 + UpdatePost(ctx context.Context, in *UpdatePostRequest, opts ...grpc.CallOption) (*RPCSuccess, error) + // 删除文章 + DeletePost(ctx context.Context, in *DeletePostRequest, opts ...grpc.CallOption) (*RPCSuccess, error) + // 发布文章 + PublishPost(ctx context.Context, in *PublishPostRequest, opts ...grpc.CallOption) (*RPCSuccess, error) + // 计算文章数量 + CountPosts(ctx context.Context, in *CountPostsRequest, opts ...grpc.CallOption) (*RPCCountResponse, error) + // 列出单页文章 + ListPosts(ctx context.Context, in *ListPostsRequest, opts ...grpc.CallOption) (*ListPostsResponse, error) + // 查询单篇文章 + FindPost(ctx context.Context, in *FindPostRequest, opts ...grpc.CallOption) (*FindPostResponse, error) +} + +type postServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewPostServiceClient(cc grpc.ClientConnInterface) PostServiceClient { + return &postServiceClient{cc} +} + +func (c *postServiceClient) CreatePost(ctx context.Context, in *CreatePostRequest, opts ...grpc.CallOption) (*CreatePostResponse, error) { + out := new(CreatePostResponse) + err := c.cc.Invoke(ctx, PostService_CreatePost_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *postServiceClient) UpdatePost(ctx context.Context, in *UpdatePostRequest, opts ...grpc.CallOption) (*RPCSuccess, error) { + out := new(RPCSuccess) + err := c.cc.Invoke(ctx, PostService_UpdatePost_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *postServiceClient) DeletePost(ctx context.Context, in *DeletePostRequest, opts ...grpc.CallOption) (*RPCSuccess, error) { + out := new(RPCSuccess) + err := c.cc.Invoke(ctx, PostService_DeletePost_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *postServiceClient) PublishPost(ctx context.Context, in *PublishPostRequest, opts ...grpc.CallOption) (*RPCSuccess, error) { + out := new(RPCSuccess) + err := c.cc.Invoke(ctx, PostService_PublishPost_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *postServiceClient) CountPosts(ctx context.Context, in *CountPostsRequest, opts ...grpc.CallOption) (*RPCCountResponse, error) { + out := new(RPCCountResponse) + err := c.cc.Invoke(ctx, PostService_CountPosts_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *postServiceClient) ListPosts(ctx context.Context, in *ListPostsRequest, opts ...grpc.CallOption) (*ListPostsResponse, error) { + out := new(ListPostsResponse) + err := c.cc.Invoke(ctx, PostService_ListPosts_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *postServiceClient) FindPost(ctx context.Context, in *FindPostRequest, opts ...grpc.CallOption) (*FindPostResponse, error) { + out := new(FindPostResponse) + err := c.cc.Invoke(ctx, PostService_FindPost_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// PostServiceServer is the server API for PostService service. +// All implementations should embed UnimplementedPostServiceServer +// for forward compatibility +type PostServiceServer interface { + // 创建文章 + CreatePost(context.Context, *CreatePostRequest) (*CreatePostResponse, error) + // 修改文章 + UpdatePost(context.Context, *UpdatePostRequest) (*RPCSuccess, error) + // 删除文章 + DeletePost(context.Context, *DeletePostRequest) (*RPCSuccess, error) + // 发布文章 + PublishPost(context.Context, *PublishPostRequest) (*RPCSuccess, error) + // 计算文章数量 + CountPosts(context.Context, *CountPostsRequest) (*RPCCountResponse, error) + // 列出单页文章 + ListPosts(context.Context, *ListPostsRequest) (*ListPostsResponse, error) + // 查询单篇文章 + FindPost(context.Context, *FindPostRequest) (*FindPostResponse, error) +} + +// UnimplementedPostServiceServer should be embedded to have forward compatible implementations. +type UnimplementedPostServiceServer struct { +} + +func (UnimplementedPostServiceServer) CreatePost(context.Context, *CreatePostRequest) (*CreatePostResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreatePost not implemented") +} +func (UnimplementedPostServiceServer) UpdatePost(context.Context, *UpdatePostRequest) (*RPCSuccess, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdatePost not implemented") +} +func (UnimplementedPostServiceServer) DeletePost(context.Context, *DeletePostRequest) (*RPCSuccess, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeletePost not implemented") +} +func (UnimplementedPostServiceServer) PublishPost(context.Context, *PublishPostRequest) (*RPCSuccess, error) { + return nil, status.Errorf(codes.Unimplemented, "method PublishPost not implemented") +} +func (UnimplementedPostServiceServer) CountPosts(context.Context, *CountPostsRequest) (*RPCCountResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CountPosts not implemented") +} +func (UnimplementedPostServiceServer) ListPosts(context.Context, *ListPostsRequest) (*ListPostsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPosts not implemented") +} +func (UnimplementedPostServiceServer) FindPost(context.Context, *FindPostRequest) (*FindPostResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindPost not implemented") +} + +// UnsafePostServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to PostServiceServer will +// result in compilation errors. +type UnsafePostServiceServer interface { + mustEmbedUnimplementedPostServiceServer() +} + +func RegisterPostServiceServer(s grpc.ServiceRegistrar, srv PostServiceServer) { + s.RegisterService(&PostService_ServiceDesc, srv) +} + +func _PostService_CreatePost_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreatePostRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PostServiceServer).CreatePost(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PostService_CreatePost_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PostServiceServer).CreatePost(ctx, req.(*CreatePostRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PostService_UpdatePost_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdatePostRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PostServiceServer).UpdatePost(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PostService_UpdatePost_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PostServiceServer).UpdatePost(ctx, req.(*UpdatePostRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PostService_DeletePost_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeletePostRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PostServiceServer).DeletePost(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PostService_DeletePost_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PostServiceServer).DeletePost(ctx, req.(*DeletePostRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PostService_PublishPost_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PublishPostRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PostServiceServer).PublishPost(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PostService_PublishPost_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PostServiceServer).PublishPost(ctx, req.(*PublishPostRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PostService_CountPosts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CountPostsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PostServiceServer).CountPosts(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PostService_CountPosts_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PostServiceServer).CountPosts(ctx, req.(*CountPostsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PostService_ListPosts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListPostsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PostServiceServer).ListPosts(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PostService_ListPosts_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PostServiceServer).ListPosts(ctx, req.(*ListPostsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PostService_FindPost_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindPostRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PostServiceServer).FindPost(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PostService_FindPost_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PostServiceServer).FindPost(ctx, req.(*FindPostRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// PostService_ServiceDesc is the grpc.ServiceDesc for PostService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var PostService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "pb.PostService", + HandlerType: (*PostServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "createPost", + Handler: _PostService_CreatePost_Handler, + }, + { + MethodName: "updatePost", + Handler: _PostService_UpdatePost_Handler, + }, + { + MethodName: "deletePost", + Handler: _PostService_DeletePost_Handler, + }, + { + MethodName: "publishPost", + Handler: _PostService_PublishPost_Handler, + }, + { + MethodName: "countPosts", + Handler: _PostService_CountPosts_Handler, + }, + { + MethodName: "listPosts", + Handler: _PostService_ListPosts_Handler, + }, + { + MethodName: "findPost", + Handler: _PostService_FindPost_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "service_post.proto", +} diff --git a/pkg/rpc/protos/models/model_post.proto b/pkg/rpc/protos/models/model_post.proto new file mode 100644 index 0000000..442e650 --- /dev/null +++ b/pkg/rpc/protos/models/model_post.proto @@ -0,0 +1,22 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +import "models/model_post_category.proto"; + +// 文章 +message Post { + int64 id = 1; // ID + int64 postCategoryId = 2; // 分类ID + string productCode = 3; // 产品代号 + string type = 4; // 类型:normal, url + string subject = 5; // 标题 + string url = 6; // URL + string body = 7; // 内容 + int64 createdAt = 8; // 创建时间 + bool isPublished = 9; // 是否已发布 + int64 publishedAt = 10; // 发布时间 + + PostCategory postCategory = 30; // 分类信息 +} \ No newline at end of file diff --git a/pkg/rpc/protos/models/model_post_category.proto b/pkg/rpc/protos/models/model_post_category.proto new file mode 100644 index 0000000..ba872e3 --- /dev/null +++ b/pkg/rpc/protos/models/model_post_category.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +// 文章分类 +message PostCategory { + int64 id = 1; // ID + string name = 2; // 名称 + string code = 3; // 文章代号 + bool isOn = 4; // 是否启用 +} \ No newline at end of file diff --git a/pkg/rpc/protos/service_post.proto b/pkg/rpc/protos/service_post.proto new file mode 100644 index 0000000..831dfb9 --- /dev/null +++ b/pkg/rpc/protos/service_post.proto @@ -0,0 +1,99 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +import "models/model_post.proto"; +import "models/rpc_messages.proto"; + +// 文章管理服务 +service PostService { + // 创建文章 + rpc createPost(CreatePostRequest) returns (CreatePostResponse); + + // 修改文章 + rpc updatePost(UpdatePostRequest) returns (RPCSuccess); + + // 删除文章 + rpc deletePost(DeletePostRequest) returns (RPCSuccess); + + // 发布文章 + rpc publishPost(PublishPostRequest) returns (RPCSuccess); + + // 计算文章数量 + rpc countPosts(CountPostsRequest) returns (RPCCountResponse); + + // 列出单页文章 + rpc listPosts(ListPostsRequest) returns (ListPostsResponse); + + // 查询单篇文章 + rpc findPost(FindPostRequest) returns (FindPostResponse); +} + +// 创建文章 +message CreatePostRequest { + int64 postCategoryId = 1; // 文章分类ID + string type = 2; // 类型:normal, url + string productCode = 3; // 产品代号 + string subject = 4; // 标题 + string url = 5; // 跳转的URL(type=url) + string body = 6; // 文章内容(type=normal) +} + +message CreatePostResponse { + int64 postId = 1; // 文章ID +} + +// 修改文章 +message UpdatePostRequest { + int64 postId = 1; // 文章ID + int64 postCategoryId = 2; // 文章分类ID + string productCode = 3; // 产品代号 + string subject = 4; // 标题 + string type = 5; // 类型:normal, url + string url = 6; // 跳转的URL(type=url) + string body = 7; // 文章内容(type=normal) +} + +// 删除文章 +message DeletePostRequest { + int64 postId = 1; // 文章ID +} + +// 发布文章 +message PublishPostRequest { + int64 postId = 1; // 文章ID +} + +// 计算文章数量 +message CountPostsRequest { + int64 postCategoryId = 1; // 分类ID + string productCode = 2; // 产品代号 + bool publishedOnly = 3; // 只列出已发布的 +} + +// 列出单页文章 +message ListPostsRequest { + int64 offset = 1; + int64 size = 2; + + string productCode = 3; // 产品代号 + int64 postCategoryId = 4; // 分类ID + string postCategoryCode = 5; // 分类代号 + string excludingPostCategoryCode = 6; // 排除的分类代号 + bool publishedOnly = 7; // 只列出已发布的 + bool containsBody = 8; // 是否包含文章内容 +} + +message ListPostsResponse { + repeated Post posts = 1; // 文章列表 +} + +// 查询单篇文章 +message FindPostRequest { + int64 postId = 1; // 文章ID +} + +message FindPostResponse { + Post post = 1; // 文章信息 +} \ No newline at end of file diff --git a/pkg/rpc/protos/service_post_category.proto b/pkg/rpc/protos/service_post_category.proto new file mode 100644 index 0000000..3dadb18 --- /dev/null +++ b/pkg/rpc/protos/service_post_category.proto @@ -0,0 +1,86 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +import "models/model_post_category.proto"; +import "models/rpc_messages.proto"; + +// 文章分类管理服务 +service PostCategoryService { + // 创建分类 + rpc createPostCategory(CreatePostCategoryRequest) returns (CreatePostCategoryResponse); + + // 修改分类 + rpc updatePostCategory(UpdatePostCategoryRequest) returns (RPCSuccess); + + // 删除分类 + rpc deletePostCategory(DeletePostCategoryRequest) returns (RPCSuccess); + + // 列出所有分类 + rpc findAllPostCategories(FindAllPostCategoriesRequest) returns (FindAllPostCategoriesResponse); + + // 列出所有可用分类 + rpc findAllAvailablePostCategories(FindAllAvailablePostCategoriesRequest) returns (FindAllAvailablePostCategoriesResponse); + + // 查询单个分类 + rpc findPostCategory(FindPostCategoryRequest) returns (FindPostCategoryResponse); + + // 对分类进行排序 + rpc sortPostCategories(SortPostCategoriesRequest) returns (RPCSuccess); +} + +// 创建分类 +message CreatePostCategoryRequest { + string name = 1; // 分类名称 + string code = 2; // 分类代号 +} + +message CreatePostCategoryResponse { + int64 postCategoryId = 1; // 分类ID +} + +// 修改分类 +message UpdatePostCategoryRequest { + int64 postCategoryId = 1; // 分类ID + string name = 2; // 分类名称 + string code = 3; // 分类代号 + bool isOn = 4; // 是否启用 +} + +// 删除分类 +message DeletePostCategoryRequest { + int64 postCategoryId = 1; // 分类ID +} + +// 列出所有分类 +message FindAllPostCategoriesRequest { + +} + +message FindAllPostCategoriesResponse { + repeated PostCategory postCategories = 1; // 分类列表 +} + +// 列出所有可用分类 +message FindAllAvailablePostCategoriesRequest { + +} + +message FindAllAvailablePostCategoriesResponse { + repeated PostCategory postCategories = 1; // 分类列表 +} + +// 查询单个分类 +message FindPostCategoryRequest { + int64 postCategoryId = 1; // 分类ID +} + +message FindPostCategoryResponse { + PostCategory postCategory = 1; // 分类信息 +} + +// 对分类进行排序 +message SortPostCategoriesRequest { + repeated int64 postCategoryIds = 1; // 分类ID列表 +} \ No newline at end of file diff --git a/pkg/systemconfigs/user_ui_config.go b/pkg/systemconfigs/user_ui_config.go index 46e426c..02a011b 100644 --- a/pkg/systemconfigs/user_ui_config.go +++ b/pkg/systemconfigs/user_ui_config.go @@ -16,8 +16,9 @@ type UserUIConfig struct { Version string `json:"version"` // 显示的版本号 ShowFinance bool `json:"showFinance"` // 是否显示财务相关信息 FaviconFileId int64 `json:"faviconFileId"` // Favicon文件ID - LogoFileId int64 `json:"logoFileId"` // Logo文件ID - TimeZone string `json:"timeZone"` // 时区 + LogoFileId int64 `json:"logoFileId"` // 控制面板Logo文件ID + + TimeZone string `json:"timeZone"` // 时区 ClientIPHeaderNames string `json:"clientIPHeaderNames"` // 客户端IP获取报头名称列表 @@ -36,6 +37,11 @@ type UserUIConfig struct { BandwidthAlgo BandwidthAlgo `json:"bandwidthAlgo"` // 带宽算法 } `json:"trafficStats"` // 流量统计相关设置 + Portal struct { + IsOn bool `json:"isOn"` // 是否启用 + LogoFileId int64 `json:"logoFileId"` // Logo文件ID + } `json:"portal"` // 门户页面相关设置 + Theme ThemeConfig `yaml:"theme" json:"theme"` // 风格模板 }