package com.correx.core.events.risk

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

@Serializable
sealed class RiskSignal {
    @Serializable
    @SerialName("CycleWithoutExit")
    data class CycleWithoutExit(val cycleId: String) : RiskSignal()

    @Serializable
    @SerialName("RepeatedFailure")
    data class RepeatedFailure(val reason: String, val count: Int) : RiskSignal()

    @Serializable
    @SerialName("ValidationErrors")
    data class ValidationErrors(val errorCount: Int) : RiskSignal()

    @Serializable
    @SerialName("InferenceTimeout")
    data class InferenceTimeout(val elapsedMs: Long) : RiskSignal()
}
