159 lines
7.9 KiB
Go
159 lines
7.9 KiB
Go
package model
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
type SCUMUser struct {
|
|
// ID is the stable platform SCUM user row identifier.
|
|
ID string `json:"id" db:"id"`
|
|
// ServerInstanceID scopes the record to one platform server instance.
|
|
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
|
|
// SteamID stores the user's Steam identifier and is indexed with the server.
|
|
SteamID string `json:"steamId" db:"steam_id"`
|
|
// DisplayName is the latest observed in-game display name.
|
|
DisplayName string `json:"displayName,omitempty" db:"display_name"`
|
|
// SquadID stores the latest observed SCUM squad identifier.
|
|
SquadID int64 `json:"squadId,omitempty" db:"squad_id"`
|
|
// RegisteredAt is when the platform first created this SCUM user record.
|
|
RegisteredAt time.Time `json:"registeredAt" db:"registered_at"`
|
|
// LastLoginAt is the latest login timestamp derived from Run-pushed facts.
|
|
LastLoginAt time.Time `json:"lastLoginAt" db:"last_login_at"`
|
|
// LastActivityAt is the latest user activity or observed online timestamp.
|
|
LastActivityAt time.Time `json:"lastActivityAt" db:"last_activity_at"`
|
|
// LastLoginIP stores the latest login IP reported by plugin-owned facts.
|
|
LastLoginIP string `json:"lastLoginIp,omitempty" db:"last_login_ip"`
|
|
// Online marks whether the user is currently considered online by platform facts.
|
|
Online bool `json:"online" db:"online"`
|
|
// X stores the latest observed world X coordinate.
|
|
X *float64 `json:"x,omitempty" db:"x"`
|
|
// Y stores the latest observed world Y coordinate.
|
|
Y *float64 `json:"y,omitempty" db:"y"`
|
|
// Z stores the latest observed world Z coordinate.
|
|
Z *float64 `json:"z,omitempty" db:"z"`
|
|
// BankBalance stores the latest observed bank scum-bucks balance.
|
|
BankBalance *int64 `json:"bankBalance,omitempty" db:"bank_balance"`
|
|
// GoldBars stores the latest observed gold-bar count.
|
|
GoldBars *int64 `json:"goldBars,omitempty" db:"gold_bars"`
|
|
// RiddenVehicleID links to the platform SCUM vehicle row when mounted.
|
|
RiddenVehicleID string `json:"riddenVehicleId,omitempty" db:"ridden_vehicle_id"`
|
|
// GameVehicleID stores the in-game vehicle identifier when mounted.
|
|
GameVehicleID string `json:"gameVehicleId,omitempty" db:"game_vehicle_id"`
|
|
// WelcomeQueuedAt records the delayed public welcome job eligibility time.
|
|
WelcomeQueuedAt time.Time `json:"welcomeQueuedAt,omitempty" db:"welcome_queued_at"`
|
|
// WelcomeLastError stores the latest welcome-message queue failure.
|
|
WelcomeLastError string `json:"welcomeLastError,omitempty" db:"welcome_last_error"`
|
|
// CreatedAt is the platform row creation timestamp.
|
|
CreatedAt time.Time `json:"createdAt" db:"created_at"`
|
|
// UpdatedAt is the latest platform row update timestamp.
|
|
UpdatedAt time.Time `json:"updatedAt" db:"updated_at"`
|
|
}
|
|
|
|
func (SCUMUser) TableName() string { return "scum_user" }
|
|
|
|
type SCUMUserTrajectory struct {
|
|
// ID is the stable platform trajectory sample identifier.
|
|
ID string `json:"id" db:"id"`
|
|
// ServerInstanceID scopes the sample to one platform server instance.
|
|
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
|
|
// SCUMUserID links to the platform SCUM user row.
|
|
SCUMUserID string `json:"scumUserId" db:"scum_user_id"`
|
|
// SteamID stores the user's Steam identifier for indexed lookups.
|
|
SteamID string `json:"steamId" db:"steam_id"`
|
|
// DisplayName stores the name observed with this sample.
|
|
DisplayName string `json:"displayName,omitempty" db:"display_name"`
|
|
// X stores the sampled world X coordinate.
|
|
X float64 `json:"x" db:"x"`
|
|
// Y stores the sampled world Y coordinate.
|
|
Y float64 `json:"y" db:"y"`
|
|
// Z stores the sampled world Z coordinate.
|
|
Z float64 `json:"z" db:"z"`
|
|
// RiddenVehicleID links to the platform vehicle row when mounted.
|
|
RiddenVehicleID string `json:"riddenVehicleId,omitempty" db:"ridden_vehicle_id"`
|
|
// GameVehicleID stores the in-game vehicle identifier when mounted.
|
|
GameVehicleID string `json:"gameVehicleId,omitempty" db:"game_vehicle_id"`
|
|
// ObservedAt is when the position fact was observed.
|
|
ObservedAt time.Time `json:"observedAt" db:"observed_at"`
|
|
// CreatedAt is the platform row creation timestamp.
|
|
CreatedAt time.Time `json:"createdAt" db:"created_at"`
|
|
}
|
|
|
|
func (SCUMUserTrajectory) TableName() string { return "scum_user_trajectory" }
|
|
|
|
type SCUMVehicle struct {
|
|
// ID is the stable platform SCUM vehicle row identifier.
|
|
ID string `json:"id" db:"id"`
|
|
// ServerInstanceID scopes the record to one platform server instance.
|
|
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
|
|
// GameVehicleID stores the in-game vehicle identifier.
|
|
GameVehicleID string `json:"gameVehicleId" db:"game_vehicle_id"`
|
|
// VehicleClass stores the latest observed SCUM vehicle class.
|
|
VehicleClass string `json:"vehicleClass,omitempty" db:"vehicle_class"`
|
|
// DisplayName is the user-visible vehicle label.
|
|
DisplayName string `json:"displayName,omitempty" db:"display_name"`
|
|
// Exists marks whether the vehicle still exists in game.
|
|
Exists bool `json:"exists" db:"exists"`
|
|
// Locked marks the latest observed lock state.
|
|
Locked bool `json:"locked" db:"locked"`
|
|
// X stores the latest observed world X coordinate.
|
|
X *float64 `json:"x,omitempty" db:"x"`
|
|
// Y stores the latest observed world Y coordinate.
|
|
Y *float64 `json:"y,omitempty" db:"y"`
|
|
// Z stores the latest observed world Z coordinate.
|
|
Z *float64 `json:"z,omitempty" db:"z"`
|
|
// LastObservedAt is when the latest vehicle fact was observed.
|
|
LastObservedAt time.Time `json:"lastObservedAt" db:"last_observed_at"`
|
|
// CreatedAt is the platform row creation timestamp.
|
|
CreatedAt time.Time `json:"createdAt" db:"created_at"`
|
|
// UpdatedAt is the latest platform row update timestamp.
|
|
UpdatedAt time.Time `json:"updatedAt" db:"updated_at"`
|
|
}
|
|
|
|
func (SCUMVehicle) TableName() string { return "scum_vehicle" }
|
|
|
|
type SCUMVehicleTrajectory struct {
|
|
// ID is the stable platform vehicle trajectory sample identifier.
|
|
ID string `json:"id" db:"id"`
|
|
// ServerInstanceID scopes the sample to one platform server instance.
|
|
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
|
|
// SCUMVehicleID links to the platform SCUM vehicle row.
|
|
SCUMVehicleID string `json:"scumVehicleId" db:"scum_vehicle_id"`
|
|
// GameVehicleID stores the in-game vehicle identifier.
|
|
GameVehicleID string `json:"gameVehicleId" db:"game_vehicle_id"`
|
|
// VehicleClass stores the vehicle class observed with this sample.
|
|
VehicleClass string `json:"vehicleClass,omitempty" db:"vehicle_class"`
|
|
// X stores the sampled world X coordinate.
|
|
X float64 `json:"x" db:"x"`
|
|
// Y stores the sampled world Y coordinate.
|
|
Y float64 `json:"y" db:"y"`
|
|
// Z stores the sampled world Z coordinate.
|
|
Z float64 `json:"z" db:"z"`
|
|
// ObservedAt is when the position fact was observed.
|
|
ObservedAt time.Time `json:"observedAt" db:"observed_at"`
|
|
// CreatedAt is the platform row creation timestamp.
|
|
CreatedAt time.Time `json:"createdAt" db:"created_at"`
|
|
}
|
|
|
|
func (SCUMVehicleTrajectory) TableName() string { return "scum_vehicle_trajectory" }
|
|
|
|
type SCUMVehicleLock struct {
|
|
// ID is the stable platform vehicle-lock history row identifier.
|
|
ID string `json:"id" db:"id"`
|
|
// ServerInstanceID scopes the lock event to one platform server instance.
|
|
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
|
|
// SCUMVehicleID links to the platform SCUM vehicle row.
|
|
SCUMVehicleID string `json:"scumVehicleId" db:"scum_vehicle_id"`
|
|
// GameVehicleID stores the in-game vehicle identifier.
|
|
GameVehicleID string `json:"gameVehicleId" db:"game_vehicle_id"`
|
|
// SCUMUserID links to the platform SCUM user row that applied the lock.
|
|
SCUMUserID string `json:"scumUserId" db:"scum_user_id"`
|
|
// SteamID stores the locking user's Steam identifier.
|
|
SteamID string `json:"steamId" db:"steam_id"`
|
|
// LockedAt is when the vehicle lock was observed or applied.
|
|
LockedAt time.Time `json:"lockedAt" db:"locked_at"`
|
|
// CreatedAt is the platform row creation timestamp.
|
|
CreatedAt time.Time `json:"createdAt" db:"created_at"`
|
|
}
|
|
|
|
func (SCUMVehicleLock) TableName() string { return "scum_vehicle_lock" }
|