package com.kt.distribution.event;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.List;

/**
 * Distribution Completed Event
 * 배포 완료 시 Kafka로 발행하는 이벤트
 *
 * @author System Architect
 * @since 2025-10-23
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DistributionCompletedEvent {

    /**
     * 이벤트 ID
     */
    private String eventId;

    /**
     * 배포 완료된 채널 상세 정보 목록
     */
    private List<DistributedChannelInfo> distributedChannels;

    /**
     * 배포 완료 시각
     */
    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSS")
    private LocalDateTime completedAt;
}
