95 lines
2.0 KiB
Protocol Buffer

syntax = "proto3";
package timetracking;
service TimeTrackingService {
rpc RegisterUser(RegisterUserRequest) returns (RegisterUserResponse);
rpc LoginUser(LoginUserRequest) returns (LoginUserResponse);
rpc GetUser(GetUserRequest) returns (GetUserResponse);
rpc CreateProject(CreateProjectRequest) returns (CreateProjectResponse);
rpc StartWorkSession(StartWorkSessionRequest) returns (StartWorkSessionResponse);
rpc StopWorkSession(StopWorkSessionRequest) returns (StopWorkSessionResponse);
rpc GenerateReport(GenerateReportRequest) returns (GenerateReportResponse);
}
message RegisterUserRequest {
string name = 1;
string email = 2;
string password = 3;
}
message RegisterUserResponse {
string userId = 1;
string message = 2;
}
message LoginUserRequest {
string email = 1;
string password = 2;
}
message LoginUserResponse {
string token = 1;
}
message GetUserRequest {
string userId = 1;
}
message GetUserResponse {
string userId = 1;
string name = 2;
string email = 3;
}
message CreateProjectRequest {
string name = 1;
string clientId = 2;
string description = 3;
}
message CreateProjectResponse {
string projectId = 1;
string message = 2;
}
message StartWorkSessionRequest {
string userId = 1;
string projectId = 2;
string description = 3;
}
message StartWorkSessionResponse {
string sessionId = 1;
}
message StopWorkSessionRequest {
string sessionId = 1;
}
message StopWorkSessionResponse {
string message = 1;
}
message GenerateReportRequest {
repeated string userIds = 1;
string startDate = 2;
string endDate = 3;
string projectId = 4;
}
message GenerateReportResponse {
string reportId = 1;
string generatedAt = 2;
repeated WorkSession sessions = 3;
}
message WorkSession {
string sessionId = 1;
string userId = 2;
string startTime = 3;
string endTime = 4;
string projectId = 5;
string description = 6;
}