From 83ebab1cc61a165b5163d0a6f05ee09c34d33b9d Mon Sep 17 00:00:00 2001 From: Rhys Lloyd Date: Sun, 28 Dec 2025 20:17:05 +0000 Subject: [PATCH] Create Submissions & Mapfixes Protobufs (#12) AOR Roblox servers will talk to game-rpc which will use these protobufs to talk to maps-service. Reviewed-on: https://git.itzana.me/StrafesNET/protobufs/pulls/12 Co-authored-by: Rhys Lloyd Co-committed-by: Rhys Lloyd --- mapfixes.proto | 81 +++++++++++++++++++++++++++++++++++++++++++++++ submissions.proto | 80 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 161 insertions(+) create mode 100644 mapfixes.proto create mode 100644 submissions.proto diff --git a/mapfixes.proto b/mapfixes.proto new file mode 100644 index 0000000..bbdccf8 --- /dev/null +++ b/mapfixes.proto @@ -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 {} diff --git a/submissions.proto b/submissions.proto new file mode 100644 index 0000000..ab47486 --- /dev/null +++ b/submissions.proto @@ -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 {}