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-23 18:10:31 +00:00
|
|
|
rpc GetCard(CardReq) returns (CardRsp) {
|
|
|
|
option (google.api.http) = {
|
|
|
|
post: "/card"
|
|
|
|
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-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
|
|
|
|
|
|
|
message CardItem {
|
|
|
|
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
|
|
|
}
|
|
|
|
|
|
|
|
message CardReq {
|
|
|
|
repeated OrderItem items = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message CardRsp {
|
|
|
|
repeated CardItem items = 1;
|
|
|
|
}
|
2024-05-27 20:11:47 +00:00
|
|
|
|
|
|
|
message GetImageReq {
|
|
|
|
string name = 1;
|
|
|
|
}
|