package space.nstart.pcp_tgu_service.dto

import java.time.LocalDateTime
import java.util.UUID

/**
 * Kafka-событие негативной обратной связи по выданному (принятому) плану.
 *
 * Используется двумя топиками — «не заложен» и «не принят». Сейчас форма общая;
 * при будущем расхождении поведения её можно разделить.
 */
data class PlanExecutionFeedbackMessage(
    /** Dedup key для at-least-once доставки этого Kafka event. */
    val eventId: UUID,

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

    /** Stable persisted planId плана, по которому пришёл негатив (текущий базовый план). */
    val planId: UUID,

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

    /** Причина/комментарий. */
    val reason: String?
)
