package kz.konturai.parser.model;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.mongodb.core.mapping.Field;

/**
 * Specific ad definition within an ad set.
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TargetingAd {

    @Field("ad_id")
    private String adId; // UUID

    @Field("name")
    private String name;

    @Field("ad_format")
    private String adFormat; // "SINGLE_IMAGE", "VIDEO", "CAROUSEL", "COLLECTION"

    @Field("media_url")
    private String mediaUrl; // MinIO filename

    @Field("headline")
    private String headline;

    @Field("primary_text")
    private String primaryText; // Capitalized text

    @Field("call_to_action")
    private String callToAction; // "LEARN_MORE", "SHOP_NOW", "SIGN_UP", "CONTACT_US", "BOOK_NOW"

    @Field("destination_url")
    private String destinationUrl;

    @Field("ai_generated_prompt")
    private String aiGeneratedPrompt;

    @Field("ab_variant")
    private String abVariant; // "A", "B", "C"

    @Field("performance_score")
    private Integer performanceScore; // 0-100, null если метрик ещё нет

    @Field("needs_destination_url")
    private Boolean needsDestinationUrl; // true если destinationUrl не задан
}
