syntax = "proto3"; import "users.proto"; import "maps.proto"; import "bots.proto"; option go_package = "git.itzana.me/strafesnet/go-grpc/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 { }