package com.ycwl.basic.integration.render.dto.template;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ycwl.basic.integration.render.dto.common.OutputSpecDTO;
import lombok.Data;

import java.util.Date;

/**
 * 渲染模板V2 DTO
 */
@Data
public class TemplateV2DTO {

    /**
     * 模板ID
     */
    private Long id;

    /**
     * 景区ID
     */
    private Long scenicId;

    /**
     * 模板名称
     */
    private String name;

    /**
     * 版本号
     */
    private Integer version;

    /**
     * 状态 (0-草稿, 1-已发布)
     */
    private Integer status;

    /**
     * 描述
     */
    private String description;

    /**
     * 缩略图URL
     */
    private String thumbnailUrl;

    /**
     * 默认时长(毫秒)
     */
    private Long defaultDurationMs;

    /**
     * 输出规格
     */
    private OutputSpecDTO outputSpec;

    /**
     * 输出宽度
     */
    private Integer outputWidth;

    /**
     * 输出高度
     */
    private Integer outputHeight;

    /**
     * 输出帧率
     */
    private Integer outputFps;

    /**
     * 背景音乐URL
     */
    private String bgmUrl;

    /**
     * 背景音乐是否固定
     */
    private Boolean bgmFixed;

    /**
     * 封面URL
     */
    private String coverUrl;

    /**
     * 创建时间
     */
    @JsonProperty("createTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 更新时间
     */
    @JsonProperty("updateTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    /**
     * 删除标记
     */
    private Integer deleted;

    /**
     * 删除时间
     */
    @JsonProperty("deletedAt")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date deletedAt;
}
