package com.fabledsword.minstrel.models.wire

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

/**
 * One row of `GET /api/quarantine/mine`. Mirrors
 * `flutter_client/lib/models/quarantine_mine.dart QuarantineMineRow`
 * (web `LidarrQuarantineMineRow`).
 *
 * Reason values: `bad_rip` / `wrong_file` / `wrong_tags` / `duplicate`
 * / `other`. Stored as a plain string on the wire; the UI does the
 * display-label mapping inline rather than via an enum to match
 * Flutter's switch-on-string pattern.
 */
@Serializable
data class QuarantineMineWire(
    @SerialName("track_id") val trackId: String = "",
    val reason: String = "other",
    val notes: String? = null,
    @SerialName("created_at") val createdAt: String = "",
    @SerialName("track_title") val trackTitle: String = "",
    @SerialName("track_duration_ms") val trackDurationMs: Int = 0,
    @SerialName("album_id") val albumId: String = "",
    @SerialName("album_title") val albumTitle: String = "",
    @SerialName("album_cover_art_path") val albumCoverArtPath: String? = null,
    @SerialName("artist_id") val artistId: String = "",
    @SerialName("artist_name") val artistName: String = "",
)
