package com.example.data.model import android.net.Uri data class MediaItemData( val id: String, val contentUri: String, val title: String, val artist: String = "Unknown Artist", val album: String = "Unknown Album", val durationMs: Long = 0L, val mimeType: String = "", val isVideo: Boolean = false, val width: Int = 0, val height: Int = 0, val sizeBytes: Long = 0L, val dateAdded: Long = 0L, val folderName: String = "Internal", val relativePath: String = "", val albumArtUri: String? = null ) { val formattedDuration: String get() { if (durationMs <= 0) return "--:--" val totalSeconds = durationMs / 1000 val hours = totalSeconds / 3600 val minutes = (totalSeconds % 3600) / 60 val seconds = totalSeconds % 60 return if (hours > 0) { String.format("%d:%02d:%02d", hours, minutes, seconds) } else { String.format("%02d:%02d", minutes, seconds) } } val formattedSize: String get() { if (sizeBytes <= 0) return "Unknown" val mb = sizeBytes / (1024.0 * 1024.0) return if (mb >= 1024) { String.format("%.2f GB", mb / 1024.0) } else { String.format("%.1f MB", mb) } } val resolutionString: String get() { return if (width > 0 && height > 0) { "${width}x${height}" } else { "" } } }