syntax = “proto3”;

package grpcd;

service Grpcd {

rpc CourseNames(CourseNamesRequest) returns (CourseNamesReply) {};
rpc GroupNames(GroupNamesRequest) returns (GroupNamesReply) {};
rpc Group(GroupRequest) returns (GroupReply) {};
rpc Semesters(SemestersRequest) returns (SemestersReply) {};
rpc CurrentSemester(CurrentSemesterRequest) returns (SemesterReply) {};
rpc CurrentWeek(CurrentWeekRequest) returns (CurrentWeekReply) {};
rpc Auth(AuthRequest) returns (AuthReply) {};

}

message CurrentWeekRequest {

}

message CurrentWeekReply {

int32 WeekNum = 1;

}

message CourseNamesRequest{

}

message CourseNamesReply{

repeated string Names = 1;

}

message GroupNamesRequest{

}

message GroupNamesReply{

repeated string Names = 1;

}

message GroupRequest {

string Name = 1;

}

message GroupReply {

string Name = 1;
string Master = 2;
string Members = 3;

}

message SemestersRequest{

}

message SemesterReply{

string ID = 1;
string Name = 2;
string ShortName = 3;
string BeginOn = 4;
string EndOn = 5;  
string Current = 6;

}

message SemestersReply{

repeated SemesterReply Semes = 1;

}

message CurrentSemesterRequest {

}

message AuthRequest{

string Login = 1;
string Password = 2;

}

message AuthReply{

bool Logined = 1;
string Login = 2;
string RealName = 3;
string Tags = 4;

}