81 lines
1.8 KiB
Protocol Buffer
81 lines
1.8 KiB
Protocol Buffer
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 {}
|