Files
2025-12-17 12:15:27 +03:00

55 lines
1.2 KiB
Protocol Buffer

syntax = "proto3";
package results;
import "google/protobuf/empty.proto";
option go_package = "pkg/api/results";
service ResultsService {
rpc GetCompetitionResults(GetCompetitionResultsRequest) returns (GetCompetitionResultsResponse);
rpc GetUserCompetitionResults(GetUserCompetitionResultsRequest) returns (GetUserCompetitionResultsResponse);
rpc RecalculateResults(RecalculateResultsRequest) returns (google.protobuf.Empty);
}
message TaskStatus {
string task_id = 1;
string task_title = 2;
int32 earned_points = 3;
int32 max_points = 4;
optional int32 position = 5;
}
message UserResult {
string user_id = 1;
string username = 2;
int32 total_score = 3;
int32 overall_position = 4;
repeated TaskStatus task_statuses = 5;
}
message GetCompetitionResultsRequest {
int32 page_size = 1;
int32 page_token = 2;
string competition_id = 3;
}
message GetCompetitionResultsResponse {
int32 total_count = 1;
int32 next_page_token = 2;
repeated UserResult results = 3;
}
message GetUserCompetitionResultsRequest {
string competition_id = 1;
string user_id = 2;
}
message GetUserCompetitionResultsResponse {
UserResult result = 1;
}
message RecalculateResultsRequest {
string competition_id = 1;
}