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