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 { repeated UserResult results = 1; int32 total_count = 2; int32 next_page_token = 3; } message GetUserCompetitionResultsRequest { string competition_id = 1; string user_id = 2; } message GetUserCompetitionResultsResponse { UserResult result = 1; } message RecalculateResultsRequest { string competition_id = 1; }