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

import lombok.Data;

/**
 * 管理后台视频评价日志查询请求DTO
 */
@Data
public class AdminVideoReviewLogReqDTO {

    /**
     * 评价ID(可选,精确查询)
     */
    private Long id;

    /**
     * 视频ID(可选)
     */
    private Long videoId;

    /**
     * 景区ID(可选)
     */
    private Long scenicId;

    /**
     * 评价人ID(可选)
     */
    private Long creator;

    /**
     * 评价人名称(可选,模糊查询)
     */
    private String creatorName;

    /**
     * 评分(可选,精确匹配)
     */
    private Integer rating;

    /**
     * 最小评分(可选,范围查询)
     */
    private Integer minRating;

    /**
     * 最大评分(可选,范围查询)
     */
    private Integer maxRating;

    /**
     * 开始时间(可选,格式: yyyy-MM-dd HH:mm:ss)
     */
    private String startTime;

    /**
     * 结束时间(可选,格式: yyyy-MM-dd HH:mm:ss)
     */
    private String endTime;

    /**
     * 关键词搜索(可选,搜索评价内容、景区名称、模板名称)
     */
    private String keyword;

    /**
     * 模板ID(可选)
     */
    private Long templateId;

    /**
     * 模板名称(可选,模糊查询)
     */
    private String templateName;

    /**
     * 是否有机位评价(可选)
     * true: 仅查询有机位评价的记录
     * false: 仅查询无机位评价的记录
     * null: 不限制
     */
    private Boolean hasCameraRating;

    /**
     * 问题机位ID(可选,筛选包含该机位ID的评价)
     * 任意一个问题机位匹配即可
     */
    private Long problemDeviceId;

    /**
     * 问题标签(可选,筛选包含该标签的评价)
     * 任意一个标签匹配即可
     */
    private String problemTag;

    /**
     * 来源(可选,筛选指定来源的评价)
     * 固定值: ORDER(订单), RENDER(渲染)
     */
    private String source;

    /**
     * 页码(必填,默认1)
     */
    private Integer pageNum = 1;

    /**
     * 每页数量(必填,默认20)
     */
    private Integer pageSize = 20;

    /**
     * 排序字段(可选,默认create_time)
     * 可选值: create_time, rating, update_time, id
     */
    private String orderBy = "create_time";

    /**
     * 排序方向(可选,默认DESC)
     * 可选值: ASC, DESC
     */
    private String orderDirection = "DESC";
}
