package com.sonic.cow.client.request;

import com.byteplus.ark.runtime.model.completion.chat.ChatMessageRole;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
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.util.List;

@JsonInclude(JsonInclude.Include.NON_EMPTY)
@JsonIgnoreProperties(ignoreUnknown = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class InputRequest {

    /**
     * 角色类型：user, system, assistant, 或者 developer
     */
    private ChatMessageRole role;

    /**
     * 消息输入的类型，此处应为 message、function_call_output（工具调用结果）
     */
    private String type = "message";

    /**
     * 调用工具的id
     */
    @JsonProperty("call_id")
    private String callId;

    /**
     * 调用工具名称
     */
    private String name;

    /**
     * 调用工具输入的参数
     */
    private String arguments;

    /**
     * 调用工具后输出的结果
     */
    private String output;

    /**
     * 项目状态，可选值：in_progress，completed 或 incomplete。
     */
    private String status;

    /**
     * 内容列表
     */
    private List<ContentRequest> content;

}
