package space.nstart.pcp_tgu_service.dto

import space.nstart.pcp_tgu_service.domain.PlanDecision
import java.time.LocalDateTime
import java.util.UUID

/**
 * Kafka-событие решения по конкретной попытке выдачи плана.
 */
data class PlanDecisionMessage(
    /** Dedup key для at-least-once доставки этого Kafka event. */
    val eventId: UUID,

    /** Идентификатор КА внутри TGU. */
    val spacecraftId: String,

    /** Stable persisted planId бизнес-плана. */
    val planId: UUID,

    /** Идентификатор конкретной попытки выдачи, по которой принято решение. */
    val attemptId: UUID,

    /** ACCEPTED или REJECTED. */
    val decision: PlanDecision,

    /** Время принятия решения внешней системой. */
    val decisionTime: LocalDateTime,

    /** Причина отказа или дополнительный комментарий. */
    val reason: String?
)
