package com.social.media.domain.campaign.valueobject;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * Target Configuration Value Object
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TargetConfiguration {
    private List<String> targetUsers;
    private List<String> targetHashtags;
    private List<String> targetLocations;
    private List<String> excludeUsers;
    private FilterCriteria filterCriteria;
    
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class FilterCriteria {
        private Integer minFollowers;
        private Integer maxFollowers;
        private Integer accountAge;
        private Double engagementRate;
    }
    
    public boolean hasTargetUsers() {
        return targetUsers != null && !targetUsers.isEmpty();
    }
    
    public boolean hasTargetHashtags() {
        return targetHashtags != null && !targetHashtags.isEmpty();
    }
    
    public boolean hasTargetLocations() {
        return targetLocations != null && !targetLocations.isEmpty();
    }
    
    public boolean hasExcludeUsers() {
        return excludeUsers != null && !excludeUsers.isEmpty();
    }
}
