package space.nstart.pcp.routepassportconsumer.config

import jakarta.validation.constraints.Min
import org.springframework.boot.context.properties.ConfigurationProperties
import org.springframework.validation.annotation.Validated

/**
 * Настройки bounded retry для input Kafka consumer route passport flow.
 */
@Validated
@ConfigurationProperties(prefix = "app.route-passport.consumer.retry")
data class RoutePassportConsumerRetryProperties(

    /** Максимальное количество попыток обработки, включая первичную delivery. */
    @field:Min(1)
    val maxAttempts: Long = 3,

    /** Начальная задержка retry в миллисекундах. */
    @field:Min(0)
    val backoffMs: Long = 1_000,

    /** Максимальная задержка между retry в миллисекундах. */
    @field:Min(0)
    val maxBackoffMs: Long = 30_000,
)
