package com.correx.core.events.orchestration

import com.correx.core.events.execution.RetryPolicy
import com.correx.core.events.types.StageId
import kotlinx.serialization.Serializable

@Serializable
data class OrchestrationState(
    val workflowId: String = "",
    val currentStageId: StageId? = null,
    val status: OrchestrationStatus = OrchestrationStatus.IDLE,
    val retryCount: Int = 0,
    val pauseReason: String? = null,
    val pendingApproval: Boolean = false,
    val failureReason: String? = null,
    val retryPolicy: RetryPolicy? = null,
    val refinementIterations: Map<String, Int> = emptyMap(),
)
