package com.social.media.application.bot.command;

import com.social.media.domain.bot.valueobject.BotConfiguration;
import com.social.media.domain.bot.valueobject.BotType;
import com.social.media.domain.company.valueobject.CompanyId;
import com.social.media.domain.user.valueobject.UserId;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;

import java.util.Set;

/**
 * Command to create a new bot
 */
public record CreateBotCommand(
    @NotNull(message = "Company ID is required")
    CompanyId companyId,
    
    @NotNull(message = "Creator user ID is required")
    UserId createdBy,
    
    @NotBlank(message = "Bot name is required")
    @Size(max = 100, message = "Bot name must not exceed 100 characters")
    String name,
    
    @Size(max = 500, message = "Description must not exceed 500 characters")
    String description,
    
    @NotNull(message = "Bot type is required")
    BotType botType,
    
    BotConfiguration configuration,
    
    Set<String> targetSocialAccountIds,
    
    Set<String> targetUserListIds
) {}

