package com.kt.ai.model.dto.response;

import com.kt.ai.model.enums.AIProvider;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * AI 이벤트 추천 결과 DTO
 * Redis Key: ai:recommendation:{eventId}
 * TTL: 86400초 (24시간)
 *
 * @author AI Service Team
 * @since 1.0.0
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AIRecommendationResult {
    /**
     * 이벤트 ID
     */
    private String eventId;

    /**
     * 트렌드 분석 결과
     */
    private TrendAnalysis trendAnalysis;

    /**
     * 추천 이벤트 기획안 (3개)
     */
    private List<EventRecommendation> recommendations;

    /**
     * 생성 시각
     */
    private LocalDateTime generatedAt;

    /**
     * 캐시 만료 시각 (생성 시각 + 24시간)
     */
    private LocalDateTime expiresAt;

    /**
     * 사용된 AI 제공자
     */
    private AIProvider aiProvider;
}
