package com.keylightpiano.pianotimeline.data.remote

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

/**
 * Mirrors the top-level shape of list.json exactly.
 * This layer does NO interpretation — every field stays a String,
 * exactly as the server sends it. Mapping to clean types happens later.
 */
@Serializable
data class RecordingListDto(
    @SerialName("generated-at") val generatedAt: String,
    @SerialName("revision") val revision: Int,
    @SerialName("data") val data: List<RecordingDto>
)

@Serializable
data class RecordingDto(
    @SerialName("date") val date: String,
    @SerialName("artist") val artist: String,
    @SerialName("title") val title: String,
    @SerialName("extra-info") val extraInfo: String = "",
    @SerialName("performance-number") val performanceNumber: String = "0",
    @SerialName("file-name") val fileName: String,
    @SerialName("midi-file-name") val midiFileName: String = "",
    @SerialName("duration") val duration: String = "0",
    @SerialName("sound-start") val soundStart: String = "0",
    @SerialName("total-performances") val totalPerformances: String = "0",
    @SerialName("file-size") val fileSize: String = "0",
    @SerialName("ID") val id: String
)
