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

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

/**
 * 생성된 이미지 엔티티
 *
 * 이벤트별로 생성된 이미지를 관리합니다.
 *
 * @author Event Service Team
 * @version 1.0.0
 * @since 2025-10-23
 */
@Entity
@Table(name = "generated_images")
@Getter
@Setter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@Builder
public class GeneratedImage extends BaseTimeEntity {

    @Id
    @Column(name = "image_id", length = 50)
    private String imageId;

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

    @Column(name = "image_url", nullable = false, length = 500)
    private String imageUrl;

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

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

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