package pl.firmatpp.kierowca.data.upload

enum class PhotoUploadStatus(
    val storageValue: String,
    val label: String,
    val isStoredOnServer: Boolean,
) {
    Pending("PENDING", "Czeka na wysłanie", false),
    Uploading("UPLOADING", "Wysyłam zdjęcie", false),
    Verifying("VERIFYING", "Sprawdzam zapis", false),
    Confirmed("CONFIRMED", "Zapisane", true),
    FailedRetryable("FAILED_RETRYABLE", "Nie wysłano, ponów", false),
    FailedPermanent("FAILED_PERMANENT", "Zdjęcie nie zostało zapisane", false),
    Cancelled("CANCELLED", "Anulowano", false);

    companion object {
        fun fromStorage(value: String): PhotoUploadStatus =
            entries.firstOrNull { it.storageValue == value } ?: Pending
    }
}
