package com.kt.event.eventservice.application.dto.kafka;

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

import java.time.LocalDateTime;

/**
 * AI 이벤트 생성 작업 메시지 DTO
 *
 * ai-event-generation-job 토픽에서 구독하는 메시지 형식
 * JSON 필드명: camelCase (Jackson 기본 설정)
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AIEventGenerationJobMessage {

    /**
     * 작업 ID
     */
    private String jobId;

    /**
     * 사용자 ID (UUID String)
     */
    private String userId;

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

    /**
     * 이벤트 목적
     * - "신규 고객 유치"
     * - "재방문 유도"
     * - "매출 증대"
     * - "브랜드 인지도 향상"
     */
    private String objective;

    /**
     * 업종 (storeCategory와 동일)
     */
    private String industry;

    /**
     * 지역 (시/구/동)
     */
    private String region;

    /**
     * 매장명
     */
    private String storeName;

    /**
     * 목표 고객층 (선택)
     */
    private String targetAudience;

    /**
     * 예산 (원) (선택)
     */
    private Integer budget;

    /**
     * 요청 시각
     */
    private LocalDateTime requestedAt;
}
