50 lines
1.1 KiB
Go
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
|
|
}
|