package com.dora.dto.api;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 消息内容项（支持文本和图片）
 * 
 * <p>用于构建复杂的API请求消息，支持：
 * <ul>
 *   <li>文本类型：{"type": "text", "text": "描述文字"}</li>
 *   <li>图片URL类型：{"type": "image_url", "image_url": {"url": "https://..."}}</li>
 * </ul>
 * 
 * @author 1818AI
 * @since 2025-10-20
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ContentItem {
    private String type;    // "text" 或 "image_url"
    private String text;    // 当type为"text"时使用
    private ImageUrl imageUrl;  // 当type为"image_url"时使用

    /**
     * 创建文本内容项
     */
    public static ContentItem text(String text) {
        ContentItem item = new ContentItem();
        item.setType("text");
        item.setText(text);
        return item;
    }

    /**
     * 创建图片URL内容项
     */
    public static ContentItem imageUrl(String url) {
        ContentItem item = new ContentItem();
        item.setType("image_url");
        ImageUrl imgUrl = new ImageUrl();
        imgUrl.setUrl(url);
        item.setImageUrl(imgUrl);
        return item;
    }

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class ImageUrl {
        private String url;
    }
}

