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;

import java.util.List;

/**
 * Target audience profile for an ad campaign.
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TargetingAudienceProfile {

    @Field("age_min")
    private int ageMin;

    @Field("age_max")
    private int ageMax;

    @Field("genders")
    private List<String> genders; // "MALE", "FEMALE", "ALL"

    @Field("locations")
    private List<LocationTarget> locations;

    @Field("interests")
    private List<String> interests;

    @Field("behaviors")
    private List<String> behaviors;

    @Field("languages")
    private List<String> languages;

    @Field("custom_audiences")
    private List<String> customAudiences; // IDs of custom audiences

    @Field("excluded_audiences")
    private List<String> excludedAudiences; // IDs of excluded audiences

    @Field("device_types")
    private List<String> deviceTypes; // "mobile", "desktop", "tablet"

    @Field("connection_type")
    private String connectionType; // "ALL", "WIFI", "CELLULAR"

    @Field("estimated_reach_min")
    private Long estimatedReachMin;

    @Field("estimated_reach_max")
    private Long estimatedReachMax;

    @Field("audience_score")
    private int audienceScore; // 0-100, AI rating
}
