protobufs/times.proto
itzaname 35af70ed08
All checks were successful
continuous-integration/drone/push Build is passing
Fix proto reference paths
2022-07-17 02:23:42 -04:00

80 lines
1.5 KiB
Protocol Buffer

syntax = "proto3";
import "users.proto";
import "maps.proto";
import "bots.proto";
option go_package = "pkg/rpc/times";
package times;
service TimesService {
rpc Create(TimeRequest) returns (IdMessage);
rpc Update(TimeRequest) returns (NullResponse);
rpc Delete(IdMessage) returns (NullResponse);
rpc Get(IdMessage) returns (TimeResponse);
rpc List(ListRequest) returns (TimeList);
rpc Rank(IdMessage) returns (RankResponse);
}
message TimeRequest {
int64 ID = 1;
optional int64 Time = 2;
optional int64 UserID = 3;
optional int64 MapID = 4;
optional int64 Date = 5;
optional int32 StyleID = 6;
optional int32 ModeID = 7;
optional int32 GameID = 8;
}
message TimeFilter {
optional int64 ID = 1;
optional int64 Time = 2;
optional int64 UserID = 3;
optional int64 MapID = 4;
optional int64 Date = 5;
optional int32 StyleID = 6;
optional int32 ModeID = 7;
optional int32 GameID = 8;
}
message TimeResponse {
int64 ID = 1;
int64 Time = 2;
users.UserResponse User = 3;
maps.MapResponse Map = 4;
optional bots.BotResponse Bot = 5;
int64 Date = 6;
int32 StyleID = 7;
int32 ModeID = 8;
int32 GameID = 9;
}
message IdMessage {
int64 ID = 1;
}
message TimeList {
repeated TimeResponse Times = 1;
int64 Total = 2;
}
message RankResponse {
int64 Rank = 1;
}
message ListRequest {
TimeFilter Filter = 1;
bool Blacklisted = 2;
Pagination Page = 3;
}
message Pagination {
int32 Size = 1;
int32 Number = 2;
}
message NullResponse {
}