package com.kt.event.eventservice.domain.entity;

import com.kt.event.common.entity.BaseTimeEntity;
import jakarta.persistence.*;
import lombok.*;

/**
 * AI 추천 엔티티
 *
 * AI가 추천한 이벤트 기획안을 관리합니다.
 *
 * @author Event Service Team
 * @version 1.0.0
 * @since 2025-10-23
 */
@Entity
@Table(name = "ai_recommendations")
@Getter
@Setter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@Builder
public class AiRecommendation extends BaseTimeEntity {

    @Id
    @Column(name = "recommendation_id", length = 50)
    private String recommendationId;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "event_id", nullable = false)
    private Event event;

    @Column(name = "event_name", nullable = false, length = 200)
    private String eventName;

    @Column(name = "description", columnDefinition = "TEXT")
    private String description;

    @Column(name = "promotion_type", length = 50)
    private String promotionType;

    @Column(name = "target_audience", length = 100)
    private String targetAudience;

    @Column(name = "is_selected", nullable = false)
    @Builder.Default
    private boolean isSelected = false;
}
