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
 * POST /api/distribution/distribute
 *
 * @author System Architect
 * @since 2025-10-23
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DistributionResponse {

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

    /**
     * 배포 성공 여부 (모든 채널 또는 일부 채널 성공)
     */
    private boolean success;

    /**
     * 채널별 배포 결과
     */
    private List<ChannelDistributionResult> channelResults;

    /**
     * 성공한 채널 수
     */
    private int successCount;

    /**
     * 실패한 채널 수
     */
    private int failureCount;

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

    /**
     * 전체 배포 소요 시간 (ms)
     */
    private long totalExecutionTimeMs;

    /**
     * 메시지
     */
    private String message;
}
