feat: surface SCUM vehicle functional state

This commit is contained in:
npc0-hue
2026-09-18 16:56:36 +08:00
parent 156392df1e
commit 60d479db71
13 changed files with 62 additions and 17 deletions
+4 -2
View File
@@ -84,6 +84,7 @@ type SCUMVehicleResponse struct {
Exists bool `json:"exists"`
Status string `json:"status"`
Locked bool `json:"locked"`
Functional *bool `json:"functional,omitempty"`
X *float64 `json:"x,omitempty"`
Y *float64 `json:"y,omitempty"`
Z *float64 `json:"z,omitempty"`
@@ -187,6 +188,7 @@ type SCUMVehicleFactBody struct {
DisplayName string `json:"displayName,omitempty"`
Exists *bool `json:"exists,omitempty"`
Locked *bool `json:"locked,omitempty"`
Functional *bool `json:"functional,omitempty"`
LockedBySteamID string `json:"lockedBySteamId,omitempty"`
LockedAt time.Time `json:"lockedAt,omitempty"`
ObservedAt time.Time `json:"observedAt,omitempty"`
@@ -240,7 +242,7 @@ func SCUMVehicleFromDomain(value domain.SCUMVehicle) SCUMVehicleResponse {
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}
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, Functional: value.Functional, 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 {
@@ -284,7 +286,7 @@ func (request SCUMUserFactBody) ToDomain() domain.SCUMUserFact {
}
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)}
return domain.SCUMVehicleFact{GameVehicleID: request.GameVehicleID, VehicleClass: request.VehicleClass, DisplayName: request.DisplayName, Exists: request.Exists, Locked: request.Locked, Functional: request.Functional, LockedBySteamID: request.LockedBySteamID, LockedAt: request.LockedAt, ObservedAt: request.ObservedAt, Position: positionToDomain(request.Position)}
}
func SCUMFactIngestFromDomain(result domain.SCUMFactIngestResult) SCUMFactIngestResponse {