Files
browser/platform/domain/plugin_data.go
T

51 lines
1.2 KiB
Go

package domain
import "time"
// PluginDataRecord is an opaque plugin-owned, server-scoped platform record.
// It is separate from platform users/auth sessions and from game-server data;
// Platform scopes it but does not interpret collection names or payload fields.
type PluginDataRecord struct {
ID string
PluginID string
ServerInstanceID string
Collection string
Key string
Value map[string]any
CreatedAt time.Time
UpdatedAt time.Time
}
type PluginDataFilter struct {
PluginID string
ServerInstanceID string
Collection string
Key string
Limit int
}
type PluginDataMutationOperation string
const (
PluginDataMutationPut PluginDataMutationOperation = "put"
PluginDataMutationDelete PluginDataMutationOperation = "delete"
)
type PluginDataMutation struct {
Operation PluginDataMutationOperation
Key string
Value map[string]any
}
type PluginDataTransaction struct {
PluginID string
ServerInstanceID string
Collection string
Mutations []PluginDataMutation
}
func CopyPluginDataRecord(value PluginDataRecord) PluginDataRecord {
value.Value = CopyGameClientBridgePayload(value.Value)
return value
}