feat(scum): rebuild plugin-owned management data
This commit is contained in:
@@ -1,45 +0,0 @@
|
||||
package model
|
||||
|
||||
import "time"
|
||||
|
||||
// GameGiftCatalog is the model-first editable, server-version-fenced gift draft.
|
||||
type GameGiftCatalog struct {
|
||||
ID string `json:"id" db:"id"`
|
||||
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
|
||||
Name string `json:"name" db:"name"`
|
||||
GameVersion string `json:"gameVersion" db:"game_version"`
|
||||
LatestRevisionID string `json:"latestRevisionId" db:"latest_revision_id"`
|
||||
CreatedBy string `json:"createdBy" db:"created_by"`
|
||||
CreatedAt time.Time `json:"createdAt" db:"created_at"`
|
||||
UpdatedAt time.Time `json:"updatedAt" db:"updated_at"`
|
||||
}
|
||||
|
||||
func (GameGiftCatalog) TableName() string { return "game_gift_catalogs" }
|
||||
|
||||
// GameGiftRevision is an immutable gift item snapshot.
|
||||
type GameGiftRevision struct {
|
||||
ID string `json:"id" db:"id"`
|
||||
CatalogID string `json:"catalogId" db:"catalog_id"`
|
||||
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
|
||||
Revision int `json:"revision" db:"revision"`
|
||||
GameVersion string `json:"gameVersion" db:"game_version"`
|
||||
PublishedBy string `json:"publishedBy" db:"published_by"`
|
||||
PublishedAt time.Time `json:"publishedAt" db:"published_at"`
|
||||
}
|
||||
|
||||
func (GameGiftRevision) TableName() string { return "game_gift_revisions" }
|
||||
|
||||
// GameGiftGrant records a directed frozen gift lifecycle without raw game commands.
|
||||
type GameGiftGrant struct {
|
||||
ID string `json:"id" db:"id"`
|
||||
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
|
||||
RevisionID string `json:"revisionId" db:"revision_id"`
|
||||
GamePlayerRecordID string `json:"gamePlayerRecordId" db:"game_player_record_id"`
|
||||
Status string `json:"status" db:"status"`
|
||||
DeliveryCommandID string `json:"deliveryCommandId" db:"delivery_command_id"`
|
||||
NotificationCommandID string `json:"notificationCommandId" db:"notification_command_id"`
|
||||
CreatedAt time.Time `json:"createdAt" db:"created_at"`
|
||||
UpdatedAt time.Time `json:"updatedAt" db:"updated_at"`
|
||||
}
|
||||
|
||||
func (GameGiftGrant) TableName() string { return "game_gift_grants" }
|
||||
@@ -1,40 +0,0 @@
|
||||
package model
|
||||
|
||||
import "time"
|
||||
|
||||
// GameMapTrackPoint is the safe, map-normalized and retention-bounded trajectory table shape.
|
||||
type GameMapTrackPoint struct {
|
||||
ID string `json:"id" db:"id"`
|
||||
EventID string `json:"eventId" db:"event_id"`
|
||||
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
|
||||
MapID string `json:"mapId" db:"map_id"`
|
||||
MapVersion string `json:"mapVersion" db:"map_version"`
|
||||
EntityKind string `json:"entityKind" db:"entity_kind"`
|
||||
EntityID string `json:"entityId" db:"entity_id"`
|
||||
GamePlayerRecordID string `json:"gamePlayerRecordId,omitempty" db:"game_player_record_id"`
|
||||
MapX float64 `json:"mapX" db:"map_x"`
|
||||
MapY float64 `json:"mapY" db:"map_y"`
|
||||
Source string `json:"source" db:"source"`
|
||||
OccurredAt time.Time `json:"occurredAt" db:"occurred_at"`
|
||||
CollectedAt time.Time `json:"collectedAt" db:"collected_at"`
|
||||
ExpiresAt time.Time `json:"expiresAt" db:"expires_at"`
|
||||
}
|
||||
|
||||
func (GameMapTrackPoint) TableName() string { return "game_map_track_points" }
|
||||
|
||||
// GamePlayerVehicleSegment is a server-local, typed ride association; it contains no vehicle storage details.
|
||||
type GamePlayerVehicleSegment struct {
|
||||
ID string `json:"id" db:"id"`
|
||||
EventID string `json:"eventId" db:"event_id"`
|
||||
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
|
||||
GamePlayerRecordID string `json:"gamePlayerRecordId" db:"game_player_record_id"`
|
||||
GamePlayerID string `json:"gamePlayerId" db:"game_player_id"`
|
||||
VehicleID string `json:"vehicleId" db:"vehicle_id"`
|
||||
MapID string `json:"mapId" db:"map_id"`
|
||||
MapVersion string `json:"mapVersion" db:"map_version"`
|
||||
StartedAt time.Time `json:"startedAt" db:"started_at"`
|
||||
EndedAt time.Time `json:"endedAt,omitempty" db:"ended_at"`
|
||||
ExpiresAt time.Time `json:"expiresAt" db:"expires_at"`
|
||||
}
|
||||
|
||||
func (GamePlayerVehicleSegment) TableName() string { return "game_player_vehicle_segments" }
|
||||
@@ -1,27 +0,0 @@
|
||||
package model
|
||||
|
||||
import "time"
|
||||
|
||||
// GamePlayerStatePatch is the model-first audit shape for one approved typed player-state change.
|
||||
type GamePlayerStatePatch struct {
|
||||
ID string `json:"id" db:"id"`
|
||||
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
|
||||
GamePlayerRecordID string `json:"gamePlayerRecordId" db:"game_player_record_id"`
|
||||
GamePlayerID string `json:"gamePlayerId" db:"game_player_id"`
|
||||
GameVersion string `json:"gameVersion" db:"game_version"`
|
||||
ExpectedStateVersion string `json:"expectedStateVersion" db:"expected_state_version"`
|
||||
SafetyWindow string `json:"safetyWindow" db:"safety_window"`
|
||||
Reason string `json:"reason" db:"reason"`
|
||||
RequesterID string `json:"requesterId" db:"requester_id"`
|
||||
ApproverID string `json:"approverId" db:"approver_id"`
|
||||
Status string `json:"status" db:"status"`
|
||||
BridgeCommandID string `json:"bridgeCommandId" db:"bridge_command_id"`
|
||||
ExecutionSummary string `json:"executionSummary" db:"execution_summary"`
|
||||
ConfirmedStateVersion string `json:"confirmedStateVersion" db:"confirmed_state_version"`
|
||||
CreatedAt time.Time `json:"createdAt" db:"created_at"`
|
||||
ApprovedAt time.Time `json:"approvedAt" db:"approved_at"`
|
||||
CompletedAt time.Time `json:"completedAt" db:"completed_at"`
|
||||
UpdatedAt time.Time `json:"updatedAt" db:"updated_at"`
|
||||
}
|
||||
|
||||
func (GamePlayerStatePatch) TableName() string { return "game_player_state_patches" }
|
||||
@@ -1,72 +0,0 @@
|
||||
package model
|
||||
|
||||
import "time"
|
||||
|
||||
// GamePlayer is the model-first table shape for an independent server-local game identity.
|
||||
type GamePlayer struct {
|
||||
ID string `json:"id" db:"id"`
|
||||
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
|
||||
GamePlayerID string `json:"gamePlayerId" db:"game_player_id"`
|
||||
DisplayName string `json:"displayName" db:"display_name"`
|
||||
FirstSeenAt time.Time `json:"firstSeenAt" db:"first_seen_at"`
|
||||
LastSeenAt time.Time `json:"lastSeenAt" db:"last_seen_at"`
|
||||
LastEventAt time.Time `json:"lastEventAt" db:"last_event_at"`
|
||||
CreatedAt time.Time `json:"createdAt" db:"created_at"`
|
||||
UpdatedAt time.Time `json:"updatedAt" db:"updated_at"`
|
||||
}
|
||||
|
||||
func (GamePlayer) TableName() string { return "game_players" }
|
||||
|
||||
type GamePlayerAlias struct {
|
||||
ID string `json:"id" db:"id"`
|
||||
GamePlayerRecordID string `json:"gamePlayerRecordId" db:"game_player_record_id"`
|
||||
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
|
||||
Alias string `json:"alias" db:"alias"`
|
||||
FirstSeenAt time.Time `json:"firstSeenAt" db:"first_seen_at"`
|
||||
LastSeenAt time.Time `json:"lastSeenAt" db:"last_seen_at"`
|
||||
}
|
||||
|
||||
func (GamePlayerAlias) TableName() string { return "game_player_aliases" }
|
||||
|
||||
type GamePlayerSession struct {
|
||||
ID string `json:"id" db:"id"`
|
||||
GamePlayerRecordID string `json:"gamePlayerRecordId" db:"game_player_record_id"`
|
||||
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
|
||||
SourceSessionID string `json:"sourceSessionId" db:"source_session_id"`
|
||||
StartedAt time.Time `json:"startedAt" db:"started_at"`
|
||||
EndedAt time.Time `json:"endedAt,omitempty" db:"ended_at"`
|
||||
EndReason string `json:"endReason,omitempty" db:"end_reason"`
|
||||
LastEventAt time.Time `json:"lastEventAt" db:"last_event_at"`
|
||||
}
|
||||
|
||||
func (GamePlayerSession) TableName() string { return "game_player_sessions" }
|
||||
|
||||
// GameAccessAttempt intentionally has no raw address field; correlation is irreversible and server-scoped.
|
||||
type GameAccessAttempt struct {
|
||||
ID string `json:"id" db:"id"`
|
||||
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
|
||||
GamePlayerRecordID string `json:"gamePlayerRecordId" db:"game_player_record_id"`
|
||||
EventID string `json:"eventId" db:"event_id"`
|
||||
OccurredAt time.Time `json:"occurredAt" db:"occurred_at"`
|
||||
Outcome string `json:"outcome" db:"outcome"`
|
||||
Reason string `json:"reason" db:"reason"`
|
||||
NetworkCorrelationKey string `json:"-" db:"network_correlation_key"`
|
||||
ExpiresAt time.Time `json:"expiresAt" db:"expires_at"`
|
||||
}
|
||||
|
||||
func (GameAccessAttempt) TableName() string { return "game_access_attempts" }
|
||||
|
||||
type GameSecuritySignal struct {
|
||||
ID string `json:"id" db:"id"`
|
||||
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
|
||||
GamePlayerRecordID string `json:"gamePlayerRecordId" db:"game_player_record_id"`
|
||||
RuleKey string `json:"ruleKey" db:"rule_key"`
|
||||
Status string `json:"status" db:"status"`
|
||||
EvidenceCount int `json:"evidenceCount" db:"evidence_count"`
|
||||
Summary string `json:"summary" db:"summary"`
|
||||
FirstObservedAt time.Time `json:"firstObservedAt" db:"first_observed_at"`
|
||||
LastObservedAt time.Time `json:"lastObservedAt" db:"last_observed_at"`
|
||||
ExpiresAt time.Time `json:"expiresAt" db:"expires_at"`
|
||||
}
|
||||
|
||||
func (GameSecuritySignal) TableName() string { return "game_security_signals" }
|
||||
Reference in New Issue
Block a user