contracts/problem/v1/problem.proto
2024-08-20 16:34:43 +05:00

66 lines
1.5 KiB
Protocol Buffer

syntax = "proto3";
package problem.v1;
option go_package = "/problem/v1;problemv1";
import "google/protobuf/timestamp.proto";
import "google/protobuf/empty.proto";
service ProblemService {
rpc CreateProblem (stream CreateProblemRequest) returns (CreateProblemResponse);
rpc ReadProblem (ReadProblemRequest) returns (ReadProblemResponse);
// rpc UpdateProblem (UpdateProblemRequest) returns (google.protobuf.Empty);
rpc DeleteProblem (DeleteProblemRequest) returns (google.protobuf.Empty);
}
message CreateProblemRequest {
message Problem {
string name = 1;
string description = 2;
int32 time_limit = 3;
int32 memory_limit = 4;
}
message Test {
bytes chunk = 1;
}
oneof msg {
Problem problem = 1;
Test test = 2;
}
}
message CreateProblemResponse {
int32 id = 1;
}
message ReadProblemRequest {
int32 id = 1;
}
message ReadProblemResponse {
message Problem {
int32 id = 1;
string name = 2;
string description = 3;
int32 time_limit = 4;
int32 memory_limit = 5;
google.protobuf.Timestamp created_at = 6;
google.protobuf.Timestamp updated_at = 7;
}
Problem problem = 1;
}
//message UpdateProblemRequest {
// message Problem {
// int32 id = 1;
// optional string name = 2;
// optional string description = 3;
// optional int32 time_limit = 4;
// optional int32 memory_limit = 5;
// }
// string token = 1;
// Problem problem = 2;
//}
message DeleteProblemRequest {
int32 id = 1;
}