package com.tourism.webadmin.app.website.dto;

import com.tourism.common.core.object.MyOrderParam;
import com.tourism.common.core.validator.UpdateGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

/**
 * 游记评论Dto对象。
 *
 * @author 吃饭睡觉
 * @date 2024-09-06
 */
@Schema(description = "游记评论Dto对象")
@Data
public class TravelNotesCommentToWebDto {

    /**
     * 主键。
     */
    @Schema(description = "主键。", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "数据验证失败，主键不能为空！", groups = {UpdateGroup.class})
    private String id;

    /**
     * 评论内容。
     */
    @Schema(description = "评论内容。")
    private String commentContent;

    /**
     * 上级评论ID，一级为空。
     */
    @Schema(description = "上级评论ID，一级为空。")
    private String parentId;

    /**
     * 游记ID。
     */
    @Schema(description = "游记ID。")
    private String travelNoteId;

    /**
     * 回复的评论ID。
     */
    @Schema(description = "回复的评论ID。")
    private String replyCommentId;

    /**
     * 回复的评论用户ID。
     */
    @Schema(description = "回复的评论用户ID。")
    private String replyUserId;

    /**
     * 点赞量。
     */
    @Schema(description = "点赞量。")
    private Integer likeNum;

    /**
     * 评论楼层。
     */
    @Schema(description = "评论楼层。")
    private String floor;

    /**
     * 分页号码，从1开始计数。
     */
    @Schema(description = "分页号码。")
    private Integer pageNum;

    /**
     * 每页大小。
     */
    @Schema(description = "每页大小。")
    private Integer pageSize;

    /**
     * 是否统计totalCount。
     */
    @Schema(description = "是否统计totalCount。")
    private Boolean count;

    /**
     * 排序。
     */
    @Schema(description = "排序。")
    private MyOrderParam orderParamList;

    /**
     * 评论类型。
     */
    @Schema(description = "评论类型。0:全部;1:我发出的;2:我收到的。")
    private Integer commentType;
}
