Remove SCUM sqlite user projections
This commit is contained in:
@@ -0,0 +1,289 @@
|
||||
package dto
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"browser.local/platform/domain"
|
||||
)
|
||||
|
||||
type SCUMPositionBody struct {
|
||||
X float64 `json:"x"`
|
||||
Y float64 `json:"y"`
|
||||
Z float64 `json:"z"`
|
||||
}
|
||||
|
||||
type SCUMUserResponse struct {
|
||||
ID string `json:"id"`
|
||||
ServerInstanceID string `json:"serverInstanceId"`
|
||||
SteamID string `json:"steamId"`
|
||||
GamePlayerID string `json:"gamePlayerId"`
|
||||
DisplayName string `json:"displayName,omitempty"`
|
||||
SquadID int64 `json:"squadId,omitempty"`
|
||||
RegisteredAt time.Time `json:"registeredAt"`
|
||||
LastLoginAt time.Time `json:"lastLoginAt"`
|
||||
LastSeenAt time.Time `json:"lastSeenAt"`
|
||||
LastActivityAt time.Time `json:"lastActivityAt"`
|
||||
LastLoginAgeSeconds int64 `json:"lastLoginAgeSeconds,omitempty"`
|
||||
LastLoginIP string `json:"lastLoginIp,omitempty"`
|
||||
LoginIP string `json:"loginIp,omitempty"`
|
||||
Online bool `json:"online"`
|
||||
X *float64 `json:"x,omitempty"`
|
||||
Y *float64 `json:"y,omitempty"`
|
||||
Z *float64 `json:"z,omitempty"`
|
||||
Position *SCUMPositionBody `json:"position,omitempty"`
|
||||
BankBalance *int64 `json:"bankBalance,omitempty"`
|
||||
NormalBalance *int64 `json:"normalBalance,omitempty"`
|
||||
GoldBars *int64 `json:"goldBars,omitempty"`
|
||||
GoldBalance *int64 `json:"goldBalance,omitempty"`
|
||||
RiddenVehicleID string `json:"riddenVehicleId,omitempty"`
|
||||
GameVehicleID string `json:"gameVehicleId,omitempty"`
|
||||
Source string `json:"source"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
UpdatedAt time.Time `json:"updatedAt"`
|
||||
}
|
||||
|
||||
type SCUMUserListResponse struct {
|
||||
Items []SCUMUserResponse `json:"items"`
|
||||
Count int `json:"count"`
|
||||
}
|
||||
|
||||
type SCUMUserTrajectoryResponse struct {
|
||||
ID string `json:"id"`
|
||||
ServerInstanceID string `json:"serverInstanceId"`
|
||||
SCUMUserID string `json:"scumUserId"`
|
||||
SubjectType string `json:"subjectType"`
|
||||
SubjectID string `json:"subjectId"`
|
||||
SteamID string `json:"steamId"`
|
||||
DisplayName string `json:"displayName,omitempty"`
|
||||
X float64 `json:"x"`
|
||||
Y float64 `json:"y"`
|
||||
Z float64 `json:"z"`
|
||||
RiddenVehicleID string `json:"riddenVehicleId,omitempty"`
|
||||
GameVehicleID string `json:"gameVehicleId,omitempty"`
|
||||
ObservedAt time.Time `json:"observedAt"`
|
||||
SampledAt time.Time `json:"sampledAt"`
|
||||
Source string `json:"source"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
}
|
||||
|
||||
type SCUMUserTrajectoryListResponse struct {
|
||||
Items []SCUMUserTrajectoryResponse `json:"items"`
|
||||
Count int `json:"count"`
|
||||
}
|
||||
|
||||
type SCUMVehicleResponse struct {
|
||||
ID string `json:"id"`
|
||||
ServerInstanceID string `json:"serverInstanceId"`
|
||||
VehicleID string `json:"vehicleId"`
|
||||
GameVehicleID string `json:"gameVehicleId"`
|
||||
EntityID string `json:"entityId"`
|
||||
VehicleClass string `json:"vehicleClass,omitempty"`
|
||||
ClassName string `json:"className,omitempty"`
|
||||
DisplayName string `json:"displayName,omitempty"`
|
||||
Label string `json:"label,omitempty"`
|
||||
Exists bool `json:"exists"`
|
||||
Status string `json:"status"`
|
||||
Locked bool `json:"locked"`
|
||||
X *float64 `json:"x,omitempty"`
|
||||
Y *float64 `json:"y,omitempty"`
|
||||
Z *float64 `json:"z,omitempty"`
|
||||
Position *SCUMPositionBody `json:"position,omitempty"`
|
||||
LastObservedAt time.Time `json:"lastObservedAt"`
|
||||
VehicleObservedAt time.Time `json:"vehicleObservedAt"`
|
||||
Source string `json:"source"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
UpdatedAt time.Time `json:"updatedAt"`
|
||||
}
|
||||
|
||||
type SCUMVehicleListResponse struct {
|
||||
Items []SCUMVehicleResponse `json:"items"`
|
||||
Count int `json:"count"`
|
||||
}
|
||||
|
||||
type SCUMVehicleTrajectoryResponse struct {
|
||||
ID string `json:"id"`
|
||||
ServerInstanceID string `json:"serverInstanceId"`
|
||||
SCUMVehicleID string `json:"scumVehicleId"`
|
||||
SubjectType string `json:"subjectType"`
|
||||
SubjectID string `json:"subjectId"`
|
||||
VehicleID string `json:"vehicleId"`
|
||||
GameVehicleID string `json:"gameVehicleId"`
|
||||
VehicleClass string `json:"vehicleClass,omitempty"`
|
||||
ClassName string `json:"className,omitempty"`
|
||||
X float64 `json:"x"`
|
||||
Y float64 `json:"y"`
|
||||
Z float64 `json:"z"`
|
||||
ObservedAt time.Time `json:"observedAt"`
|
||||
SampledAt time.Time `json:"sampledAt"`
|
||||
Source string `json:"source"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
}
|
||||
|
||||
type SCUMVehicleTrajectoryListResponse struct {
|
||||
Items []SCUMVehicleTrajectoryResponse `json:"items"`
|
||||
Count int `json:"count"`
|
||||
}
|
||||
|
||||
type SCUMVehicleLockResponse struct {
|
||||
ID string `json:"id"`
|
||||
ServerInstanceID string `json:"serverInstanceId"`
|
||||
SCUMVehicleID string `json:"scumVehicleId"`
|
||||
GameVehicleID string `json:"gameVehicleId"`
|
||||
SCUMUserID string `json:"scumUserId"`
|
||||
SteamID string `json:"steamId"`
|
||||
LockedAt time.Time `json:"lockedAt"`
|
||||
Source string `json:"source"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
}
|
||||
|
||||
type SCUMVehicleLockListResponse struct {
|
||||
Items []SCUMVehicleLockResponse `json:"items"`
|
||||
Count int `json:"count"`
|
||||
}
|
||||
|
||||
type SCUMFactIngestRequest struct {
|
||||
RunEndpointID string `json:"runEndpointId"`
|
||||
SessionToken string `json:"sessionToken"`
|
||||
ServerInstanceID string `json:"serverInstanceId"`
|
||||
Users []SCUMUserFactBody `json:"users,omitempty"`
|
||||
Vehicles []SCUMVehicleFactBody `json:"vehicles,omitempty"`
|
||||
}
|
||||
|
||||
type SCUMUserFactBody struct {
|
||||
SteamID string `json:"steamId"`
|
||||
DisplayName string `json:"displayName,omitempty"`
|
||||
SquadID *int64 `json:"squadId,omitempty"`
|
||||
LoginIP string `json:"loginIp,omitempty"`
|
||||
Online bool `json:"online"`
|
||||
Login bool `json:"login,omitempty"`
|
||||
ObservedAt time.Time `json:"observedAt,omitempty"`
|
||||
LoginObservedAt time.Time `json:"loginObservedAt,omitempty"`
|
||||
Position *SCUMPositionBody `json:"position,omitempty"`
|
||||
BankBalance *int64 `json:"bankBalance,omitempty"`
|
||||
GoldBars *int64 `json:"goldBars,omitempty"`
|
||||
RiddenGameVehicleID string `json:"riddenGameVehicleId,omitempty"`
|
||||
}
|
||||
|
||||
type SCUMVehicleFactBody struct {
|
||||
GameVehicleID string `json:"gameVehicleId"`
|
||||
VehicleClass string `json:"vehicleClass,omitempty"`
|
||||
DisplayName string `json:"displayName,omitempty"`
|
||||
Exists *bool `json:"exists,omitempty"`
|
||||
Locked *bool `json:"locked,omitempty"`
|
||||
LockedBySteamID string `json:"lockedBySteamId,omitempty"`
|
||||
LockedAt time.Time `json:"lockedAt,omitempty"`
|
||||
ObservedAt time.Time `json:"observedAt,omitempty"`
|
||||
Position *SCUMPositionBody `json:"position,omitempty"`
|
||||
}
|
||||
|
||||
type SCUMFactIngestResponse struct {
|
||||
Accepted bool `json:"accepted"`
|
||||
AcceptedUserCount int `json:"acceptedUserCount"`
|
||||
AcceptedVehicleCount int `json:"acceptedVehicleCount"`
|
||||
WelcomeQueuedCount int `json:"welcomeQueuedCount"`
|
||||
ServerTime time.Time `json:"serverTime"`
|
||||
}
|
||||
|
||||
func SCUMUserListFromDomain(values []domain.SCUMUser) SCUMUserListResponse {
|
||||
items := make([]SCUMUserResponse, len(values))
|
||||
for i, value := range values {
|
||||
items[i] = SCUMUserFromDomain(value)
|
||||
}
|
||||
return SCUMUserListResponse{Items: items, Count: len(items)}
|
||||
}
|
||||
|
||||
func SCUMUserFromDomain(value domain.SCUMUser) SCUMUserResponse {
|
||||
value = domain.CopySCUMUser(value)
|
||||
return SCUMUserResponse{ID: value.ID, ServerInstanceID: value.ServerInstanceID, SteamID: value.SteamID, GamePlayerID: value.SteamID, DisplayName: value.DisplayName, SquadID: value.SquadID, RegisteredAt: value.RegisteredAt, LastLoginAt: value.LastLoginAt, LastSeenAt: value.LastActivityAt, LastActivityAt: value.LastActivityAt, LastLoginAgeSeconds: int64(value.LastLoginAge.Seconds()), LastLoginIP: value.LastLoginIP, LoginIP: value.LastLoginIP, Online: value.Online, X: value.X, Y: value.Y, Z: value.Z, Position: positionFromPointers(value.X, value.Y, value.Z), BankBalance: value.BankBalance, NormalBalance: value.BankBalance, GoldBars: value.GoldBars, GoldBalance: value.GoldBars, RiddenVehicleID: value.RiddenVehicleID, GameVehicleID: value.GameVehicleID, Source: "platform.scum_user", CreatedAt: value.CreatedAt, UpdatedAt: value.UpdatedAt}
|
||||
}
|
||||
|
||||
func SCUMUserTrajectoryListFromDomain(values []domain.SCUMUserTrajectory) SCUMUserTrajectoryListResponse {
|
||||
items := make([]SCUMUserTrajectoryResponse, len(values))
|
||||
for i, value := range values {
|
||||
items[i] = SCUMUserTrajectoryFromDomain(value)
|
||||
}
|
||||
return SCUMUserTrajectoryListResponse{Items: items, Count: len(items)}
|
||||
}
|
||||
|
||||
func SCUMUserTrajectoryFromDomain(value domain.SCUMUserTrajectory) SCUMUserTrajectoryResponse {
|
||||
return SCUMUserTrajectoryResponse{ID: value.ID, ServerInstanceID: value.ServerInstanceID, SCUMUserID: value.SCUMUserID, SubjectType: "player", SubjectID: value.SteamID, SteamID: value.SteamID, DisplayName: value.DisplayName, X: value.X, Y: value.Y, Z: value.Z, RiddenVehicleID: value.RiddenVehicleID, GameVehicleID: value.GameVehicleID, ObservedAt: value.ObservedAt, SampledAt: value.ObservedAt, Source: "platform.scum_user_trajectory", CreatedAt: value.CreatedAt}
|
||||
}
|
||||
|
||||
func SCUMVehicleListFromDomain(values []domain.SCUMVehicle) SCUMVehicleListResponse {
|
||||
items := make([]SCUMVehicleResponse, len(values))
|
||||
for i, value := range values {
|
||||
items[i] = SCUMVehicleFromDomain(value)
|
||||
}
|
||||
return SCUMVehicleListResponse{Items: items, Count: len(items)}
|
||||
}
|
||||
|
||||
func SCUMVehicleFromDomain(value domain.SCUMVehicle) SCUMVehicleResponse {
|
||||
value = domain.CopySCUMVehicle(value)
|
||||
status := "missing"
|
||||
if value.Exists {
|
||||
status = "exists"
|
||||
}
|
||||
return SCUMVehicleResponse{ID: value.ID, ServerInstanceID: value.ServerInstanceID, VehicleID: value.ID, GameVehicleID: value.GameVehicleID, EntityID: value.GameVehicleID, VehicleClass: value.VehicleClass, ClassName: value.VehicleClass, DisplayName: value.DisplayName, Label: value.DisplayName, Exists: value.Exists, Status: status, Locked: value.Locked, X: value.X, Y: value.Y, Z: value.Z, Position: positionFromPointers(value.X, value.Y, value.Z), LastObservedAt: value.LastObservedAt, VehicleObservedAt: value.LastObservedAt, Source: "platform.scum_vehicle", CreatedAt: value.CreatedAt, UpdatedAt: value.UpdatedAt}
|
||||
}
|
||||
|
||||
func SCUMVehicleTrajectoryListFromDomain(values []domain.SCUMVehicleTrajectory) SCUMVehicleTrajectoryListResponse {
|
||||
items := make([]SCUMVehicleTrajectoryResponse, len(values))
|
||||
for i, value := range values {
|
||||
items[i] = SCUMVehicleTrajectoryFromDomain(value)
|
||||
}
|
||||
return SCUMVehicleTrajectoryListResponse{Items: items, Count: len(items)}
|
||||
}
|
||||
|
||||
func SCUMVehicleTrajectoryFromDomain(value domain.SCUMVehicleTrajectory) SCUMVehicleTrajectoryResponse {
|
||||
return SCUMVehicleTrajectoryResponse{ID: value.ID, ServerInstanceID: value.ServerInstanceID, SCUMVehicleID: value.SCUMVehicleID, SubjectType: "vehicle", SubjectID: value.GameVehicleID, VehicleID: value.SCUMVehicleID, GameVehicleID: value.GameVehicleID, VehicleClass: value.VehicleClass, ClassName: value.VehicleClass, X: value.X, Y: value.Y, Z: value.Z, ObservedAt: value.ObservedAt, SampledAt: value.ObservedAt, Source: "platform.scum_vehicle_trajectory", CreatedAt: value.CreatedAt}
|
||||
}
|
||||
|
||||
func SCUMVehicleLockListFromDomain(values []domain.SCUMVehicleLock) SCUMVehicleLockListResponse {
|
||||
items := make([]SCUMVehicleLockResponse, len(values))
|
||||
for i, value := range values {
|
||||
items[i] = SCUMVehicleLockFromDomain(value)
|
||||
}
|
||||
return SCUMVehicleLockListResponse{Items: items, Count: len(items)}
|
||||
}
|
||||
|
||||
func SCUMVehicleLockFromDomain(value domain.SCUMVehicleLock) SCUMVehicleLockResponse {
|
||||
return SCUMVehicleLockResponse{ID: value.ID, ServerInstanceID: value.ServerInstanceID, SCUMVehicleID: value.SCUMVehicleID, GameVehicleID: value.GameVehicleID, SCUMUserID: value.SCUMUserID, SteamID: value.SteamID, LockedAt: value.LockedAt, Source: "platform.scum_vehicle_lock", CreatedAt: value.CreatedAt}
|
||||
}
|
||||
|
||||
func (request SCUMFactIngestRequest) ToDomain() domain.SCUMFactIngest {
|
||||
users := make([]domain.SCUMUserFact, len(request.Users))
|
||||
for i, user := range request.Users {
|
||||
users[i] = user.ToDomain()
|
||||
}
|
||||
vehicles := make([]domain.SCUMVehicleFact, len(request.Vehicles))
|
||||
for i, vehicle := range request.Vehicles {
|
||||
vehicles[i] = vehicle.ToDomain()
|
||||
}
|
||||
return domain.SCUMFactIngest{RunEndpointID: request.RunEndpointID, SessionToken: request.SessionToken, ServerInstanceID: request.ServerInstanceID, Users: users, Vehicles: vehicles}
|
||||
}
|
||||
|
||||
func (request SCUMUserFactBody) ToDomain() domain.SCUMUserFact {
|
||||
return domain.SCUMUserFact{SteamID: request.SteamID, DisplayName: request.DisplayName, SquadID: request.SquadID, LoginIP: request.LoginIP, Online: request.Online, Login: request.Login, ObservedAt: request.ObservedAt, LoginObservedAt: request.LoginObservedAt, Position: positionToDomain(request.Position), BankBalance: request.BankBalance, GoldBars: request.GoldBars, RiddenGameVehicleID: request.RiddenGameVehicleID}
|
||||
}
|
||||
|
||||
func (request SCUMVehicleFactBody) ToDomain() domain.SCUMVehicleFact {
|
||||
return domain.SCUMVehicleFact{GameVehicleID: request.GameVehicleID, VehicleClass: request.VehicleClass, DisplayName: request.DisplayName, Exists: request.Exists, Locked: request.Locked, LockedBySteamID: request.LockedBySteamID, LockedAt: request.LockedAt, ObservedAt: request.ObservedAt, Position: positionToDomain(request.Position)}
|
||||
}
|
||||
|
||||
func SCUMFactIngestFromDomain(result domain.SCUMFactIngestResult) SCUMFactIngestResponse {
|
||||
return SCUMFactIngestResponse{Accepted: result.Accepted, AcceptedUserCount: result.AcceptedUserCount, AcceptedVehicleCount: result.AcceptedVehicleCount, WelcomeQueuedCount: result.WelcomeQueuedCount, ServerTime: result.ServerTime}
|
||||
}
|
||||
|
||||
func positionToDomain(value *SCUMPositionBody) *domain.SCUMPosition {
|
||||
if value == nil {
|
||||
return nil
|
||||
}
|
||||
return &domain.SCUMPosition{X: value.X, Y: value.Y, Z: value.Z}
|
||||
}
|
||||
|
||||
func positionFromPointers(x, y, z *float64) *SCUMPositionBody {
|
||||
if x == nil || y == nil || z == nil {
|
||||
return nil
|
||||
}
|
||||
return &SCUMPositionBody{X: *x, Y: *y, Z: *z}
|
||||
}
|
||||
Reference in New Issue
Block a user