cake_crm/api/main.proto

186 lines
3.2 KiB
Protocol Buffer
Raw Normal View History

2024-05-17 22:34:55 +00:00
syntax = "proto3";
package crabs.crm;
import "google/api/annotations.proto";
2024-05-27 20:11:47 +00:00
import "google/api/httpbody.proto";
2024-05-21 20:46:56 +00:00
import "protoc-gen-openapiv2/options/annotations.proto";
2024-05-17 22:34:55 +00:00
2024-05-19 12:00:35 +00:00
option go_package = "pkg/proto";
2024-05-17 22:34:55 +00:00
2024-05-21 20:46:56 +00:00
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = {};
2024-05-17 22:34:55 +00:00
service CRM {
rpc GetCatalog(GetCatalogReq) returns (CatalogRsp) {
option (google.api.http) = {
get: "/catalog"
};
}
2024-05-18 05:36:31 +00:00
rpc GetPositions(GetPositionsReq) returns (PositionsRsp) {
option (google.api.http) = {
get: "/positions/{id}"
};
}
2024-05-18 05:58:50 +00:00
rpc GetProduct(GetProductReq) returns (ProductRsp) {
option (google.api.http) = {
get: "/products/{id}"
};
}
2024-05-18 06:16:57 +00:00
rpc GetBreadcrumbs(GetBreadcrumbsReq) returns (BreadcrumbsRsp) {
option (google.api.http) = {
2024-05-29 19:47:24 +00:00
get: "/products/{id}/breadcrumbs"
2024-05-18 06:16:57 +00:00
};
}
2024-05-22 18:40:59 +00:00
rpc Order(OrderReq) returns (OrderRsp) {
option (google.api.http) = {
post: "/orders"
body: "order"
};
}
2024-05-29 20:54:12 +00:00
rpc GetCart(CartReq) returns (CartRsp) {
2024-05-23 18:10:31 +00:00
option (google.api.http) = {
2024-05-29 20:54:12 +00:00
post: "/cart"
2024-05-23 18:10:31 +00:00
body: "items"
};
}
2024-05-27 20:11:47 +00:00
rpc GetImage(GetImageReq) returns (google.api.HttpBody) {
option (google.api.http) = {
get: "/images/{name}"
};
}
2024-05-29 21:17:13 +00:00
rpc Search(SearchReq) returns (PositionsRsp) {
option (google.api.http) = {
get: "/search"
};
}
2024-05-17 22:34:55 +00:00
}
message GetCatalogReq {}
message CatalogRsp {
repeated Category categories = 1;
}
2024-05-18 05:36:31 +00:00
message Category {
int64 id = 1;
string name = 2;
string uri = 3;
repeated Category children = 4;
}
message GetPositionsReq {
int64 id = 1;
}
message PositionsRsp {
repeated Product products = 1;
}
message Product {
int64 id = 1;
string article = 2;
string name = 3;
string uri = 4;
repeated string images = 5;
string description = 6;
repeated GroupedProduct grouped_products = 7;
string unit = 8;
double inventory = 9;
repeated Variant variants = 10;
repeated Characteristic characteristics = 11;
int64 category = 12;
2024-05-29 20:03:39 +00:00
repeated Label labels = 13;
2024-05-18 05:36:31 +00:00
}
message GroupedProduct {
string name = 1;
string uri = 2;
string image = 3;
}
message Variant {
int64 price = 1;
repeated Property properties = 2;
2024-05-29 20:24:20 +00:00
bool active = 3;
2024-05-18 05:36:31 +00:00
}
message Property {
string name = 1;
string value = 2;
}
message Characteristic {
string name = 1;
string value = 2;
}
2024-05-18 05:58:50 +00:00
2024-05-29 20:03:39 +00:00
message Label {
string name = 1;
}
2024-05-18 06:16:57 +00:00
message GetProductReq {
2024-05-18 05:58:50 +00:00
int64 id = 1;
}
message ProductRsp {
Product product = 1;
}
2024-05-18 06:16:57 +00:00
message GetBreadcrumbsReq {
int64 id = 1;
}
message BreadcrumbsRsp {
repeated Category categories = 1;
}
2024-05-22 18:40:59 +00:00
message OrderReq {
Order order = 1;
}
message OrderRsp {}
message Order {
2024-05-23 19:02:31 +00:00
string name = 2;
string phone = 3;
2024-05-22 18:40:59 +00:00
repeated OrderItem items = 1;
}
message OrderItem {
int64 product_id = 1;
int64 count = 2;
}
2024-05-23 18:10:31 +00:00
2024-05-29 20:54:12 +00:00
message CartItem {
2024-05-23 18:10:31 +00:00
int64 id = 1;
string article = 2;
string name = 3;
string uri = 4;
repeated string images = 5;
string unit = 8;
double inventory = 9;
int64 count = 10;
int64 amount = 11;
2024-05-29 20:24:20 +00:00
int64 amountOld = 12;
repeated Variant variants = 13;
repeated Label labels = 14;
2024-05-23 18:10:31 +00:00
}
2024-05-29 20:54:12 +00:00
message CartReq {
2024-05-23 18:10:31 +00:00
repeated OrderItem items = 1;
}
2024-05-29 20:54:12 +00:00
message CartRsp {
repeated CartItem items = 1;
int64 amount = 2;
int64 amountOld = 3;
2024-05-23 18:10:31 +00:00
}
2024-05-27 20:11:47 +00:00
message GetImageReq {
string name = 1;
}
2024-05-29 21:17:13 +00:00
message SearchReq {
string text = 1;
}