service-protos/product.proto
syntax = "proto3";
package proto;
import "google/protobuf/timestamp.proto";
import "google/protobuf/struct.proto";
import "common.proto";
option go_package = "go.kicksware.com/api/services/products/api/gRPC/proto";
option csharp_namespace = "Proto";
message SneakerProduct {
string uniqueId = 1;
string brandName = 2;
string modelName = 3;
string modelSKU = 4;
string referenceId = 5;
double price = 6;
string type = 7;
SneakerSize size = 8;
string color = 9;
string condition = 10;
string description = 11;
string owner = 12;
double conditionIndex = 14;
google.protobuf.Timestamp addedAt = 15;
}
message SneakerSize {
double europe = 1;
double unitedStates = 2;
double unitedKingdom = 3;
double centimeters = 4;
}
service ProductService {
rpc GetProducts(ProductFilter) returns (ProductResponse) {}
rpc CountProducts(ProductFilter) returns (ProductResponse) {}
rpc AddProducts(ProductInput) returns (ProductResponse) {}
rpc EditProducts(ProductInput) returns (ProductResponse) {}
rpc DeleteProducts(ProductFilter) returns (ProductResponse) {}
rpc UploadImages(UploadImageRequest) returns (ProductResponse) {}
rpc RequestAnalysis(ProductInput) returns (AnalysisResponse) {}
rpc RequestPrediction(PredictionRequest) returns (ProductResponse) {}
}
message ProductFilter {
repeated string productID = 1;
google.protobuf.Struct requestQuery = 2;
RequestParams requestParams = 3;
}
message ProductInput {
repeated SneakerProduct products = 1;
RequestParams requestParams = 2;
}
message ProductResponse {
repeated SneakerProduct products = 1;
int64 count = 2;
}
message UploadImageRequest{
string productID = 1;
map<string, bytes> images = 2;
}
message AnalysisResponse {
double score = 1;
}
message PredictionRequest {
map<string, bytes> images = 1;
}