package com.dora.dto.api;

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

import java.util.List;

/**
 * API请求消息
 * 
 * <p>支持两种content格式：
 * <ul>
 *   <li>简单字符串：用于纯文本提示词（文生图/视频）</li>
 *   <li>内容数组：用于复杂消息，包含文本和图片（图生视频）</li>
 * </ul>
 * 
 * @author 1818AI
 * @since 2025-10-20
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Message {
    private String role;
    
    // 简单文本内容（用于文生图/视频）
    private String content;
    
    // 复杂内容数组（用于图生视频）
    private List<ContentItem> contentArray;

    /**
     * 构造简单文本消息
     */
    public Message(String role, String content) {
        this.role = role;
        this.content = content;
    }

    /**
     * 构造复杂内容消息（文本 + 图片）
     */
    public Message(String role, List<ContentItem> contentArray) {
        this.role = role;
        this.contentArray = contentArray;
    }
}
