package com.kt.distribution.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * 배포 상태 조회 응답 DTO
 *
 * 특정 이벤트의 전체 배포 상태 및 채널별 상세 상태 정보를 담습니다.
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DistributionStatusResponse {

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

    /**
     * 전체 배포 상태
     * - PENDING: 대기 중
     * - IN_PROGRESS: 진행 중
     * - COMPLETED: 완료
     * - PARTIAL_FAILURE: 부분 성공
     * - FAILED: 실패
     * - NOT_FOUND: 배포 이력 없음
     */
    private String overallStatus;

    /**
     * 배포 시작 시각
     */
    private LocalDateTime startedAt;

    /**
     * 배포 완료 시각
     */
    private LocalDateTime completedAt;

    /**
     * 채널별 배포 상태 목록
     */
    private List<ChannelStatus> channels;
}
