package com.social.media.application.campaign.dto;

import com.social.media.domain.campaign.valueobject.CampaignInteractionType;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;

import java.time.LocalDate;
import java.time.LocalTime;

/**
 * DTO for creating campaigns
 */
public record CreateCampaignDTO(
    @NotBlank(message = "Campaign name is required")
    @Size(max = 50, message = "Campaign name must not exceed 50 characters")
    String name,
    
    @Size(max = 255, message = "Campaign description must not exceed 255 characters")
    String description,
    
    @NotNull(message = "User ID is required")
    Long userId,
    
    @NotNull(message = "Account Network ID is required")
    Long accountNetworkId,
    
    @NotNull(message = "Bot ID is required")
    Long botId,
    
    Long scriptId,
    
    Long listId,
    
    @NotNull(message = "Interaction type is required")
    CampaignInteractionType typeInteration,
    
    LocalDate dateInteration,
    
    LocalTime hourInteration,
    
    String textInteration,
    
    LocalDate dateStart,
    
    LocalTime hourStart,
    
    LocalDate dateEnd,
    
    LocalTime hourEnd
) {
}
