package com.saas.voip.dto.response;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * Response DTO for Vapi assistants.
 * Maps Vapi API v1 response schema.
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@JsonInclude(JsonInclude.Include.NON_NULL)
public class VapiAssistantResponse implements Serializable {

    private static final long serialVersionUID = 1L;

    private String id;

    private String name;

    private String description;

    @JsonProperty("first_message")
    private String firstMessage;

    @JsonProperty("system_prompt")
    private String systemPrompt;

    @JsonProperty("voice_provider")
    private String voiceProvider;

    @JsonProperty("voice_id")
    private String voiceId;

    private String model;

    private Double temperature;

    @JsonProperty("max_duration_seconds")
    private Integer maxDurationSeconds;

    @JsonProperty("enable_transcription")
    private Boolean enableTranscription;

    @JsonProperty("enable_recording")
    private Boolean enableRecording;

    @JsonProperty("created_at")
    private LocalDateTime createdAt;

    @JsonProperty("updated_at")
    private LocalDateTime updatedAt;

    @JsonProperty("status")
    private String status;  // "active", "inactive"
}
