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" }