package com.saas.admin.dto;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Map;

/**
 * DTO for creating a new Vapi.ai assistant
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CreateVapiAssistantDTO {
    
    @NotBlank(message = "Assistant name is required")
    @Size(max = 200, message = "Name must be less than 200 characters")
    private String name;
    
    @NotBlank(message = "Model is required")
    @Size(max = 100, message = "Model must be less than 100 characters")
    @Builder.Default
    private String model = "gpt-4";
    
    @NotBlank(message = "Voice is required")
    @Size(max = 100, message = "Voice must be less than 100 characters")
    @Builder.Default
    private String voice = "11labs-rachel";
    
    @Size(max = 5000, message = "Prompt must be less than 5000 characters")
    private String prompt;
    
    @Size(max = 500, message = "First message must be less than 500 characters")
    private String firstMessage;
    
    @Size(max = 500, message = "Server URL must be less than 500 characters")
    private String serverUrl;
    
    @Size(max = 200, message = "Server URL secret must be less than 200 characters")
    private String serverUrlSecret;
    
    private Map<String, Object> config;
}
