1 Commits

Author SHA1 Message Date
83ebab1cc6 Create Submissions & Mapfixes Protobufs (#12)
All checks were successful
continuous-integration/drone/push Build is passing
AOR Roblox servers will talk to game-rpc which will use these protobufs to talk to maps-service.

Reviewed-on: #12
Co-authored-by: Rhys Lloyd <krakow20@gmail.com>
Co-committed-by: Rhys Lloyd <krakow20@gmail.com>
2025-12-28 20:17:05 +00:00
2 changed files with 161 additions and 0 deletions

81
mapfixes.proto Normal file
View File

@@ -0,0 +1,81 @@
syntax = "proto3";
package mapfixes;
option go_package = "git.itzana.me/strafesnet/go-grpc/mapfixes";
service MapfixesService {
rpc Get(MapfixId) returns (MapfixResponse);
rpc GetList(MapfixIdList) returns (MapfixList);
rpc List(ListRequest) returns (MapfixList);
}
message MapfixIdList {
repeated int64 ID = 1;
}
message MapfixId {
int64 ID = 1;
}
enum MapfixStatus {
// Phase: Creation
MapfixStatusUnderConstruction = 0;
MapfixStatusChangesRequested = 1;
// Phase: Review
MapfixStatusSubmitting = 2;
MapfixStatusSubmitted = 3;
// Phase: Testing
MapfixStatusAcceptedUnvalidated = 4; // pending script review, can re-trigger validation
MapfixStatusValidating = 5;
MapfixStatusValidated = 6;
MapfixStatusUploading = 7;
MapfixStatusUploaded = 8; // uploaded to the group, but pending release
MapfixStatusReleasing = 11;
// Phase: Final MapfixStatus
MapfixStatusRejected = 9;
MapfixStatusReleased = 10;
}
message MapfixResponse {
int64 ID = 1;
string DisplayName = 2;
string Creator = 3;
uint32 GameID = 4;
int64 CreatedAt = 5;
int64 UpdatedAt = 6;
uint64 Submitter = 7;
uint64 AssetID = 8;
uint64 AssetVersion = 9;
uint64 ValidatedAssetID = 10;
uint64 ValidatedAssetVersion = 11;
uint64 UploadedAssetID = 12;
MapfixStatus StatusID = 13;
}
message MapfixFilter {
optional MapfixStatus StatusID = 1;
optional string DisplayName = 2;
optional string Creator = 3;
optional uint32 GameID = 4;
optional uint64 Submitter = 5;
}
message MapfixList {
repeated MapfixResponse Mapfixes = 1;
}
message ListRequest {
MapfixFilter Filter = 1;
Pagination Page = 2;
}
message Pagination {
uint32 Size = 1;
uint32 Number = 2;
}
message NullResponse {}

80
submissions.proto Normal file
View File

@@ -0,0 +1,80 @@
syntax = "proto3";
package submissions;
option go_package = "git.itzana.me/strafesnet/go-grpc/submissions";
service SubmissionsService {
rpc Get(SubmissionId) returns (SubmissionResponse);
rpc GetList(SubmissionIdList) returns (SubmissionList);
rpc List(ListRequest) returns (SubmissionList);
}
message SubmissionIdList {
repeated int64 ID = 1;
}
message SubmissionId {
int64 ID = 1;
}
enum SubmissionStatus {
// Phase: Creation
SubmissionStatusUnderConstruction = 0;
SubmissionStatusChangesRequested = 1;
// Phase: Review
SubmissionStatusSubmitting = 2;
SubmissionStatusSubmitted = 3;
// Phase: Testing
SubmissionStatusAcceptedUnvalidated = 4; // pending script review, can re-trigger validation
SubmissionStatusValidating = 5;
SubmissionStatusValidated = 6;
SubmissionStatusUploading = 7;
SubmissionStatusUploaded = 8; // uploaded to the group, but pending release
// Phase: Final SubmissionStatus
SubmissionStatusRejected = 9;
SubmissionStatusReleased = 10;
}
message SubmissionResponse {
int64 ID = 1;
string DisplayName = 2;
string Creator = 3;
uint32 GameID = 4;
int64 CreatedAt = 7;
int64 UpdatedAt = 8;
uint64 Submitter = 9;
uint64 AssetID = 10;
uint64 AssetVersion = 11;
uint64 ValidatedAssetID = 12;
uint64 ValidatedAssetVersion = 13;
uint64 UploadedAssetID = 14;
SubmissionStatus StatusID = 15;
}
message SubmissionFilter {
optional SubmissionStatus StatusID = 1;
optional string DisplayName = 2;
optional string Creator = 3;
optional uint32 GameID = 4;
optional uint64 Submitter = 5;
}
message SubmissionList {
repeated SubmissionResponse Submissions = 1;
}
message ListRequest {
SubmissionFilter Filter = 1;
Pagination Page = 2;
}
message Pagination {
uint32 Size = 1;
uint32 Number = 2;
}
message NullResponse {}