feat: 完整游戏运维功能
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"browser.local/platform/domain"
|
||||
)
|
||||
|
||||
type MetricSample struct {
|
||||
ID string `json:"id" db:"id"`
|
||||
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
|
||||
RunEndpointID string `json:"runEndpointId" db:"run_endpoint_id"`
|
||||
Online bool `json:"online" db:"online"`
|
||||
PlayerCount *int `json:"playerCount,omitempty" db:"player_count"`
|
||||
MaxPlayers *int `json:"maxPlayers,omitempty" db:"max_players"`
|
||||
TPS *float64 `json:"tps,omitempty" db:"tps"`
|
||||
LatencyMS *float64 `json:"latencyMs,omitempty" db:"latency_ms"`
|
||||
CPUPercent *float64 `json:"cpuPercent,omitempty" db:"cpu_percent"`
|
||||
MemoryPercent *float64 `json:"memoryPercent,omitempty" db:"memory_percent"`
|
||||
DiskPercent *float64 `json:"diskPercent,omitempty" db:"disk_percent"`
|
||||
Source string `json:"source" db:"source"`
|
||||
CollectedAt time.Time `json:"collectedAt" db:"collected_at"`
|
||||
}
|
||||
|
||||
func (MetricSample) TableName() string { return "metric_samples" }
|
||||
|
||||
func MetricSampleFromDomain(sample domain.MetricSample) MetricSample {
|
||||
return MetricSample{ID: sample.ID, ServerInstanceID: sample.ServerInstanceID, RunEndpointID: sample.RunEndpointID, Online: sample.Online, PlayerCount: sample.PlayerCount, MaxPlayers: sample.MaxPlayers, TPS: sample.TPS, LatencyMS: sample.LatencyMS, CPUPercent: sample.CPUPercent, MemoryPercent: sample.MemoryPercent, DiskPercent: sample.DiskPercent, Source: sample.Source, CollectedAt: sample.CollectedAt}
|
||||
}
|
||||
|
||||
func (sample MetricSample) ToDomain() domain.MetricSample {
|
||||
return domain.MetricSample{ID: sample.ID, ServerInstanceID: sample.ServerInstanceID, RunEndpointID: sample.RunEndpointID, Online: sample.Online, PlayerCount: sample.PlayerCount, MaxPlayers: sample.MaxPlayers, TPS: sample.TPS, LatencyMS: sample.LatencyMS, CPUPercent: sample.CPUPercent, MemoryPercent: sample.MemoryPercent, DiskPercent: sample.DiskPercent, Source: sample.Source, CollectedAt: sample.CollectedAt}
|
||||
}
|
||||
|
||||
type BackupRecord struct {
|
||||
ID string `json:"id" db:"id"`
|
||||
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
|
||||
ArtifactID string `json:"artifactId" db:"artifact_id"`
|
||||
Checksum string `json:"checksum" db:"checksum"`
|
||||
SizeBytes int64 `json:"sizeBytes" db:"size_bytes"`
|
||||
State domain.BackupState `json:"state" db:"state"`
|
||||
RecoveryStatus string `json:"recoveryStatus" db:"recovery_status"`
|
||||
RetentionUntil time.Time `json:"retentionUntil,omitempty" db:"retention_until"`
|
||||
CreatedAt time.Time `json:"createdAt" db:"created_at"`
|
||||
UpdatedAt time.Time `json:"updatedAt" db:"updated_at"`
|
||||
}
|
||||
|
||||
func (BackupRecord) TableName() string { return "backup_records" }
|
||||
|
||||
func BackupRecordFromDomain(record domain.BackupRecord) BackupRecord {
|
||||
return BackupRecord{ID: record.ID, ServerInstanceID: record.ServerInstanceID, ArtifactID: record.ArtifactID, Checksum: record.Checksum, SizeBytes: record.SizeBytes, State: record.State, RecoveryStatus: record.RecoveryStatus, RetentionUntil: record.RetentionUntil, CreatedAt: record.CreatedAt, UpdatedAt: record.UpdatedAt}
|
||||
}
|
||||
|
||||
func (record BackupRecord) ToDomain() domain.BackupRecord {
|
||||
return domain.BackupRecord{ID: record.ID, ServerInstanceID: record.ServerInstanceID, ArtifactID: record.ArtifactID, Checksum: record.Checksum, SizeBytes: record.SizeBytes, State: record.State, RecoveryStatus: record.RecoveryStatus, RetentionUntil: record.RetentionUntil, CreatedAt: record.CreatedAt, UpdatedAt: record.UpdatedAt}
|
||||
}
|
||||
Reference in New Issue
Block a user