package com.correx.core.validation.pipeline

import com.correx.core.validation.approval.ApprovalRequest
import com.correx.core.validation.model.ValidationReport

sealed interface ValidationOutcome {
    data class Passed(val report: ValidationReport) : ValidationOutcome
    /**
     * @param retryable set by the validator based on failure type; orchestrator must read this
     *   and never override it.
     */
    data class Rejected(val report: ValidationReport, val retryable: Boolean) : ValidationOutcome
    data class NeedsApproval(val request: ApprovalRequest) : ValidationOutcome
}
