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

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ycwl.basic.handler.LongListTypeHandler;
import com.ycwl.basic.handler.StringListTypeHandler;
import lombok.Data;
import org.apache.ibatis.type.JdbcType;

import java.util.Date;
import java.util.List;

/**
 * 视频评价实体类
 */
@Data
@TableName("video_review")
public class VideoReviewEntity {

    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

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

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

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

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

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

    /**
     * 有问题的机位ID列表
     * 格式: [12345, 12346, 12347]
     * 存储被标记为有问题的机位ID
     */
    @TableField(typeHandler = LongListTypeHandler.class, jdbcType = JdbcType.VARCHAR)
    private List<Long> problemDeviceIds;

    /**
     * 问题标签列表
     * 格式: ["画面模糊", "抖动严重", "色彩异常"]
     * 存储视频或机位的问题标签,可多选
     */
    @TableField(typeHandler = StringListTypeHandler.class, jdbcType = JdbcType.VARCHAR)
    private List<String> problemTags;

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

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

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;
}
