package com.kt.event.eventservice;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.kafka.annotation.EnableKafka;

/**
 * Event Service Application
 *
 * 이벤트 전체 생명주기 관리 서비스
 * - AI 기반 이벤트 추천 및 커스터마이징
 * - 이미지 생성 및 편집 오케스트레이션
 * - 배포 채널 관리 및 최종 배포
 * - 이벤트 상태 관리 (DRAFT, PUBLISHED, ENDED)
 *
 * @version 1.0.0
 * @since 2025-10-23
 */
@SpringBootApplication(
    scanBasePackages = {
        "com.kt.event.eventservice",
        "com.kt.event.common"
    },
    exclude = {
        UserDetailsServiceAutoConfiguration.class,
        org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration.class,
        org.springframework.boot.autoconfigure.data.redis.RedisReactiveAutoConfiguration.class
    }
)
@EnableJpaAuditing
@EnableKafka
@EnableFeignClients
public class EventServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(EventServiceApplication.class, args);
    }
}
