Integrate SCUM real ops workflows

This commit is contained in:
npc0-hue
2026-08-10 21:12:53 +08:00
parent 1063330710
commit a770bc6250
88 changed files with 6375 additions and 2719 deletions
+56 -7
View File
@@ -73,11 +73,57 @@ type GameClientBridgeQueryTemplateDeclaration struct {
TimeoutSeconds int
}
type GameClientBridgeOperationKind string
const (
GameClientBridgeOperationKindRCON GameClientBridgeOperationKind = "rcon"
GameClientBridgeOperationKindSQLiteMutation GameClientBridgeOperationKind = "sqlite-mutation"
)
type GameClientBridgeOperationTemplateDeclaration struct {
Key string
Title string
Permission string
ApprovalLevel GameClientBridgeApprovalLevel
Kind GameClientBridgeOperationKind
TransportKey string
TargetKey string
PayloadSchemaRef string
ResultSchemaRef string
ConfirmationSchemaRef string
TimeoutSeconds int
MaxPayloadBytes int
MaxRowsAffected int
Mutation GameClientBridgeOperationMutationDeclaration
Safety GameClientBridgeOperationSafety
}
type GameClientBridgeOperationMutationDeclaration struct {
FieldKey string
TableKey string
IdentityKey string
ValueKey string
ConfirmationQueryKey string
AllowedValueType string
MinValue float64
MaxValue float64
}
type GameClientBridgeOperationSafety struct {
RequiresApproval bool
RequiresOfflinePlayer bool
RequiresMaintenanceWindow bool
RequiresBeforeValue bool
RequiresConfirmation bool
BackupRequired bool
}
type GameClientBridgePageContract struct {
PageKey string
CommandTypes []string
SnapshotTypes []string
QueryTemplateKeys []string
OperationKeys []string
FeatureKeys []string
}
@@ -106,13 +152,14 @@ type GameClientBridgeCompanionDeclaration struct {
}
type GameClientBridgeManifest struct {
Commands []GameClientBridgeCommandDeclaration
Snapshots []GameClientBridgeSnapshotDeclaration
QueryTemplates []GameClientBridgeQueryTemplateDeclaration
Retention GameClientBridgeRetention
Pages []GameClientBridgePageContract
Features []GameClientBridgeFeatureDeclaration
Companion GameClientBridgeCompanionDeclaration
Commands []GameClientBridgeCommandDeclaration
Snapshots []GameClientBridgeSnapshotDeclaration
QueryTemplates []GameClientBridgeQueryTemplateDeclaration
OperationTemplates []GameClientBridgeOperationTemplateDeclaration
Retention GameClientBridgeRetention
Pages []GameClientBridgePageContract
Features []GameClientBridgeFeatureDeclaration
Companion GameClientBridgeCompanionDeclaration
}
type GameClientBridgeResultStatus string
@@ -406,12 +453,14 @@ func CopyGameClientBridgeManifest(value GameClientBridgeManifest) GameClientBrid
}
value.Snapshots = append([]GameClientBridgeSnapshotDeclaration(nil), value.Snapshots...)
value.QueryTemplates = append([]GameClientBridgeQueryTemplateDeclaration(nil), value.QueryTemplates...)
value.OperationTemplates = append([]GameClientBridgeOperationTemplateDeclaration(nil), value.OperationTemplates...)
value.Pages = append([]GameClientBridgePageContract(nil), value.Pages...)
value.Features = append([]GameClientBridgeFeatureDeclaration(nil), value.Features...)
for index := range value.Pages {
value.Pages[index].CommandTypes = CopyStringSlice(value.Pages[index].CommandTypes)
value.Pages[index].SnapshotTypes = CopyStringSlice(value.Pages[index].SnapshotTypes)
value.Pages[index].QueryTemplateKeys = CopyStringSlice(value.Pages[index].QueryTemplateKeys)
value.Pages[index].OperationKeys = CopyStringSlice(value.Pages[index].OperationKeys)
value.Pages[index].FeatureKeys = CopyStringSlice(value.Pages[index].FeatureKeys)
}
for index := range value.Features {