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; }