game_list/protobuf/items.proto

93 lines
1.8 KiB
Protocol Buffer

syntax = "proto3";
package items;
message Person {
string name = 1;
repeated Opinion opinion = 2;
}
message Opinion {
string title = 1;
bool would_play = 2;
}
message Game {
reserved 3;
string title = 1;
Source source = 2;
uint32 min_players = 4;
uint32 max_players = 5;
uint32 price = 6;
uint64 remote_id = 7;
}
enum Source {
STEAM = 0;
ROBLOX = 1;
}
message PersonList { repeated Person person = 1; }
message GameList { repeated Game games = 1; }
// Authentication messages
message LoginRequest {
string username = 1;
string password = 2;
}
message LoginResponse {
string token = 1;
bool success = 2;
string message = 3;
}
message LogoutRequest { string token = 1; }
message LogoutResponse {
bool success = 1;
string message = 2;
}
message AuthStatusRequest { string token = 1; }
message AuthStatusResponse {
bool authenticated = 1;
string username = 2;
string message = 3;
}
// Authentication service
service AuthService {
rpc Login(LoginRequest) returns (LoginResponse);
rpc Logout(LogoutRequest) returns (LogoutResponse);
rpc GetAuthStatus(AuthStatusRequest) returns (AuthStatusResponse);
}
message GameRequest { string title = 1; }
message GetGamesRequest {}
message AddOpinionRequest {
string game_title = 1;
bool would_play = 2;
}
message RemoveOpinionRequest { string game_title = 1; }
message GetGameInfoRequest {
repeated string games = 1;
}
message GameInfoResponse {
repeated Game games = 1;
}
service MainService {
rpc GetGame(GameRequest) returns (Game);
rpc GetGames(GetGamesRequest) returns (GameList);
rpc AddGame(Game) returns (Game);
rpc AddOpinion(AddOpinionRequest) returns (Person);
rpc GetGameInfo(GetGameInfoRequest) returns (GameInfoResponse);
}