package com.fabledsword.minstrel.models.wire

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

/**
 * Wire shape for `GET /api/albums/{id}` — server returns AlbumRef
 * fields PLUS an embedded `tracks` array.
 */
@Serializable
data class AlbumDetailWire(
    val id: String,
    val title: String,
    @SerialName("artist_id") val artistId: String,
    @SerialName("sort_title") val sortTitle: String = "",
    @SerialName("artist_name") val artistName: String = "",
    val year: Int? = null,
    @SerialName("track_count") val trackCount: Int = 0,
    @SerialName("duration_sec") val durationSec: Int = 0,
    @SerialName("cover_url") val coverUrl: String = "",
    val tracks: List<TrackWire> = emptyList(),
)
