package com.emotion.dto.request;

import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.Map;

/**
 * 爽文剧本创建请求
 *
 * @author huazhongmin
 * @date 2025-12-22
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class EpicScriptCreateRequest extends BaseRequest {

    /**
     * 剧本标题
     */
    @NotBlank(message = "剧本标题不能为空")
    @Size(max = 200, message = "剧本标题长度不能超过200个字符")
    private String title;

    /**
     * 剧本主题/渴望
     */
    private String theme;

    /**
     * 剧本风格: career-职场逆袭, love-情感圆满, fantasy-玄幻觉醒
     */
    private String style;

    /**
     * 篇幅长度: medium-标准篇, long-长篇
     */
    private String length;

    /**
     * 序幕：低谷回响
     */
    private String plotIntro;

    /**
     * 转折：契机出现
     */
    private String plotTurning;

    /**
     * 高潮：命运抉择
     */
    private String plotClimax;

    /**
     * 结局：新的开始
     */
    private String plotEnding;

    /**
     * 完整剧情JSON结构
     */
    private Map<String, Object> plotJson;

    /**
     * 是否当前选中
     */
    private Boolean isSelected;

    /**
     * 角色信息（前端传入，用于AI生成）
     */
    private String characterInfo;

    /**
     * 过往经历关键词（前端传入，用于AI生成）
     */
    private String lifeEventsSummary;
}
