114 lines
4.1 KiB
Go
114 lines
4.1 KiB
Go
package dto
|
|
|
|
import (
|
|
"time"
|
|
|
|
"browser.local/platform/domain"
|
|
)
|
|
|
|
type SCUMPlayerLiveStateListResponse struct {
|
|
Items []domain.SCUMPlayerLiveState `json:"items"`
|
|
Count int `json:"count"`
|
|
}
|
|
|
|
type SCUMSquadListResponse struct {
|
|
Items []domain.SCUMSquad `json:"items"`
|
|
Count int `json:"count"`
|
|
}
|
|
|
|
type SCUMSquadMemberListResponse struct {
|
|
Items []domain.SCUMSquadMember `json:"items"`
|
|
Count int `json:"count"`
|
|
}
|
|
|
|
type SCUMVehicleListResponse struct {
|
|
Items []domain.SCUMVehicle `json:"items"`
|
|
Count int `json:"count"`
|
|
}
|
|
|
|
type SCUMFlagListResponse struct {
|
|
Items []domain.SCUMFlag `json:"items"`
|
|
Count int `json:"count"`
|
|
}
|
|
|
|
type SCUMCurrentPositionListResponse struct {
|
|
Items []domain.SCUMCurrentPosition `json:"items"`
|
|
Count int `json:"count"`
|
|
}
|
|
|
|
type SCUMDataRowResponse struct {
|
|
ID string `json:"id"`
|
|
ServerInstanceID string `json:"serverInstanceId"`
|
|
TargetTable string `json:"targetTable"`
|
|
UpsertKey string `json:"upsertKey"`
|
|
Fields map[string]any `json:"fields"`
|
|
Payload map[string]any `json:"payload"`
|
|
PluginID string `json:"pluginId"`
|
|
QueryKey string `json:"queryKey"`
|
|
Freshness domain.SCUMProjectionFreshnessState `json:"freshness"`
|
|
CreatedAt time.Time `json:"createdAt"`
|
|
UpdatedAt time.Time `json:"updatedAt"`
|
|
}
|
|
|
|
type SCUMDataRowListResponse struct {
|
|
Items []SCUMDataRowResponse `json:"items"`
|
|
Count int `json:"count"`
|
|
}
|
|
|
|
func SCUMPlayerLiveStatesFromDomain(values []domain.SCUMPlayerLiveState) SCUMPlayerLiveStateListResponse {
|
|
out := make([]domain.SCUMPlayerLiveState, len(values))
|
|
for index, value := range values {
|
|
out[index] = domain.CopySCUMPlayerLiveState(value)
|
|
}
|
|
return SCUMPlayerLiveStateListResponse{Items: out, Count: len(out)}
|
|
}
|
|
|
|
func SCUMSquadsFromDomain(values []domain.SCUMSquad) SCUMSquadListResponse {
|
|
out := make([]domain.SCUMSquad, len(values))
|
|
for index, value := range values {
|
|
out[index] = domain.CopySCUMSquad(value)
|
|
}
|
|
return SCUMSquadListResponse{Items: out, Count: len(out)}
|
|
}
|
|
|
|
func SCUMSquadMembersFromDomain(values []domain.SCUMSquadMember) SCUMSquadMemberListResponse {
|
|
out := make([]domain.SCUMSquadMember, len(values))
|
|
for index, value := range values {
|
|
out[index] = domain.CopySCUMSquadMember(value)
|
|
}
|
|
return SCUMSquadMemberListResponse{Items: out, Count: len(out)}
|
|
}
|
|
|
|
func SCUMVehiclesFromDomain(values []domain.SCUMVehicle) SCUMVehicleListResponse {
|
|
out := make([]domain.SCUMVehicle, len(values))
|
|
for index, value := range values {
|
|
out[index] = domain.CopySCUMVehicle(value)
|
|
}
|
|
return SCUMVehicleListResponse{Items: out, Count: len(out)}
|
|
}
|
|
|
|
func SCUMFlagsFromDomain(values []domain.SCUMFlag) SCUMFlagListResponse {
|
|
out := make([]domain.SCUMFlag, len(values))
|
|
for index, value := range values {
|
|
out[index] = domain.CopySCUMFlag(value)
|
|
}
|
|
return SCUMFlagListResponse{Items: out, Count: len(out)}
|
|
}
|
|
|
|
func SCUMCurrentPositionsFromDomain(values []domain.SCUMCurrentPosition) SCUMCurrentPositionListResponse {
|
|
out := make([]domain.SCUMCurrentPosition, len(values))
|
|
for index, value := range values {
|
|
out[index] = domain.CopySCUMCurrentPosition(value)
|
|
}
|
|
return SCUMCurrentPositionListResponse{Items: out, Count: len(out)}
|
|
}
|
|
|
|
func SCUMDataRowsFromDomain(values []domain.SCUMDataRow) SCUMDataRowListResponse {
|
|
items := make([]SCUMDataRowResponse, len(values))
|
|
for index, value := range values {
|
|
value = domain.CopySCUMDataRow(value)
|
|
items[index] = SCUMDataRowResponse{ID: value.ID, ServerInstanceID: value.ServerInstanceID, TargetTable: string(value.TargetTable), UpsertKey: value.UpsertKey, Fields: value.Fields, Payload: value.Payload, PluginID: value.PluginID, QueryKey: value.QueryKey, Freshness: value.Freshness, CreatedAt: value.CreatedAt, UpdatedAt: value.UpdatedAt}
|
|
}
|
|
return SCUMDataRowListResponse{Items: items, Count: len(items)}
|
|
}
|