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; optional uint64 ValidatedAssetID = 12; optional uint64 ValidatedAssetVersion = 13; optional 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 {}