package top.continew.admin.business.model.req;

import lombok.Data;
import lombok.EqualsAndHashCode;
import top.continew.starter.extension.crud.model.req.BaseReq;

/**
 * 数字人-特效请求参数对象
 *
 * @author 王志维
 * @since 2025/12/29
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class EffectReq extends BaseReq {

    /**
     * 特效名称
     */
    private String name;

    /**
     * 特效模板ID
     */
    private Long templateId;

    /**
     * 关联的数字人任务ID
     */
    private Long digitalHumanId;

    /**
     * 特效类型('text','image','music','audio')
     */
    private String type;

    /**
     * 特效资源URL
     */
    private String sourceUrl;

    /**
     * 特效显示位置X坐标（像素）
     */
    private Integer positionX;

    /**
     * 特效显示位置Y坐标（像素）
     */
    private Integer positionY;

    /**
     * 特效宽度（像素）
     */
    private Integer sizeWidth;

    /**
     * 特效高度（像素）
     */
    private Integer sizeHeight;

    /**
     * 特效最大持续时间（秒）
     */
    private Double length;

    /**
     * 特效文本内容（仅文本类型有效）
     */
    private String subtitleText;

    /**
     * 字幕样式配置（JSON格式）
     */
    private String subtitleStyle;

    /**
     * 字幕中心位置X坐标
     */
    private String subtitlePositionX;

    /**
     * 字幕中心位置Y坐标
     */
    private String subtitlePositionY;

    /**
     * 特效开始偏移时间（秒）
     */
    private Double offset;

    /**
     * 特效播放开始时间
     */
    private String durationStart;

    /**
     * 特效播放结束时间
     */
    private String durationEnd;

    /**
     * 渲染层级（Z轴顺序）
     */
    private Integer zIndex;
}