package models import ( "time" ) // SyncSetting represents user sync configurations and cloud storage allocation type SyncSetting struct { UserID string `gorm:"type:uuid;primaryKey" json:"userId"` AutoSyncWiFi bool `gorm:"default:true" json:"autoSyncWiFi"` SyncPhotos bool `gorm:"default:true" json:"syncPhotos"` SyncAudio bool `gorm:"default:true" json:"syncAudio"` AudioQuality string `gorm:"size:20;default:'HD'" json:"audioQuality"` // Standard, HD, Lossless CloudStorageMaxMB int64 `gorm:"default:5120" json:"cloudStorageMaxMB"` // 5 GB default CloudStorageUsedMB int64 `gorm:"default:0" json:"cloudStorageUsedMB"` LastSyncedAt *time.Time `json:"lastSyncedAt,omitempty"` UpdatedAt time.Time `gorm:"autoUpdateTime" json:"updatedAt"` } type UpdateSyncSettingRequest struct { AutoSyncWiFi *bool `json:"autoSyncWiFi,omitempty"` SyncPhotos *bool `json:"syncPhotos,omitempty"` SyncAudio *bool `json:"syncAudio,omitempty"` AudioQuality *string `json:"audioQuality,omitempty"` } type SyncSummary struct { DeviceCount int64 `json:"deviceCount"` SessionCount int64 `json:"sessionCount"` TotalDurationMs int64 `json:"totalDurationMs"` Storage SyncSetting `json:"storage"` }