chore(api)!: added achievement service

This commit is contained in:
ITQ
2025-12-16 21:25:46 +03:00
parent 7499a14024
commit 843c50a103
7 changed files with 129 additions and 173 deletions
+48
View File
@@ -0,0 +1,48 @@
syntax = "proto3";
package achievements;
import "google/protobuf/timestamp.proto";
import "google/protobuf/empty.proto";
option go_package = "pkg/api/achievements";
service AchievementsService {
rpc CreateAchievement(Achievement) returns (Achievement);
rpc GetAchievement(GetAchievementRequest) returns (Achievement);
rpc EditAchievement(Achievement) returns (Achievement);
rpc DeleteAchievement(DeleteAchievementRequest) returns (google.protobuf.Empty);
rpc ListAchievements(google.protobuf.Empty) returns (ListAchievementsResponse);
rpc GetUserAchievements(GetUserAchievementsRequest) returns (GetUserAchievementsResponse);
}
message Achievement {
string id = 1;
string name = 2;
string description = 3;
string icon_url = 4;
}
message AchievementUser {
Achievement achievement = 1;
google.protobuf.Timestamp received_at = 2;
}
message GetAchievementRequest {
string id = 1;
}
message DeleteAchievementRequest {
string achievement_id = 1;
}
message ListAchievementsResponse {
repeated Achievement achievements = 1;
}
message GetUserAchievementsRequest {
string user_id = 1;
}
message GetUserAchievementsResponse {
repeated AchievementUser user_achievements = 1;
}
+2 -4
View File
@@ -3,6 +3,7 @@ syntax = "proto3";
package competition;
import "google/protobuf/timestamp.proto";
import "google/protobuf/empty.proto";
option go_package = "pkg/api/competition";
@@ -10,7 +11,7 @@ service CompetitionService {
rpc CreateCompetition(Competition) returns (Competition);
rpc GetCompetition(GetCompetitionRequest) returns (Competition);
rpc EditCompetition(Competition) returns (Competition);
rpc DeleteCompetition(DeleteCompetitionRequest) returns (DeleteCompetitionResponse);
rpc DeleteCompetition(DeleteCompetitionRequest) returns (google.protobuf.Empty);
rpc ListCompetitions(ListCompetitionsRequest) returns (ListCompetitionsResponse);
rpc ChangeCompetitionState(ChangeCompetitionStateRequest) returns (Competition);
}
@@ -57,9 +58,6 @@ message GetCompetitionRequest {
message DeleteCompetitionRequest {
string competition_id = 1;
}
message DeleteCompetitionResponse {
bool success = 1;
}
message ListCompetitionsRequest {
int32 page_size = 1;
+2 -4
View File
@@ -3,6 +3,7 @@ syntax = "proto3";
package task;
import "google/protobuf/timestamp.proto";
import "google/protobuf/empty.proto";
option go_package = "pkg/api/task";
@@ -10,7 +11,7 @@ service TaskService {
rpc CreateTask(Task) returns (Task);
rpc GetTask(GetTaskRequest) returns (Task);
rpc EditTask(Task) returns (Task);
rpc DeleteTask(DeleteTaskRequest) returns (DeleteTaskResponse);
rpc DeleteTask(DeleteTaskRequest) returns (google.protobuf.Empty);
rpc ListCompetitionTasks(ListCompetitionTasksRequest) returns (ListCompetitionTasksResponse);
rpc GetTaskAttachments(GetTaskAttachmentsRequest) returns (GetTaskAttachmentsResponse);
}
@@ -48,9 +49,6 @@ message GetTaskRequest {
message DeleteTaskRequest {
string task_id = 1;
}
message DeleteTaskResponse {
bool success = 1;
}
message ListCompetitionTasksRequest {
string competition_id = 1;