package com.ycwl.basic.model.pc.videoreview.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 管理后台视频评价日志响应DTO
 */
@Data
public class AdminVideoReviewLogRespDTO {

    /**
     * 评价ID
     */
    private Long id;

    /**
     * 视频ID
     */
    private Long videoId;

    /**
     * 视频URL(关联查询)
     */
    private String videoUrl;

    /**
     * 视频时长(秒,关联查询video表)
     */
    private BigDecimal duration;

    /**
     * 任务参数(JSON字符串,关联查询task表)
     */
    private String taskParams;

    /**
     * 模板ID(关联查询video表)
     */
    private Long templateId;

    /**
     * 模板名称(关联查询)
     */
    private String templateName;

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

    /**
     * 景区名称(关联查询)
     */
    private String scenicName;

    /**
     * 评价人ID(管理员ID)
     */
    private Long creator;

    /**
     * 评价人名称(关联查询)
     */
    private String creatorName;

    /**
     * 评价人账号(关联查询,管理后台显示)
     */
    private String creatorAccount;

    /**
     * 购买评分 1-5
     */
    private Integer rating;

    /**
     * 文字评价内容
     */
    private String content;

    /**
     * 有问题的机位ID列表
     * 格式: [12345, 12346, 12347]
     */
    private List<Long> problemDeviceIds;

    /**
     * 问题机位数量(方便前端展示)
     */
    private Integer problemDeviceCount;

    /**
     * 问题标签列表
     * 格式: ["画面模糊", "抖动严重", "色彩异常"]
     */
    private List<String> problemTags;

    /**
     * 来源
     * 固定值: ORDER(订单), RENDER(渲染)
     */
    private String source;

    /**
     * 来源ID
     * 用于溯源,关联订单ID或渲染任务ID等
     */
    private Long sourceId;

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

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

    /**
     * 操作时长(创建到更新的时间差,单位:秒)
     */
    private Long operationDuration;
}
