Files
browser/platform/domain/plugin_data.go
T

50 lines
1.1 KiB
Go

package domain
import "time"
// PluginDataRecord is an opaque plugin-owned platform record. Platform scopes
// it but does not interpret the collection name 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
}