package shop.alien.entity.store.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 评论申诉视图对象
 *
 * @author system
 * @since 2025-01-XX
 */
@Data
@ApiModel(value = "CommentAppealVo对象", description = "评论申诉视图对象")
public class CommentAppealVo implements Serializable {

    @ApiModelProperty(value = "主键id")
    private Integer id;

    @ApiModelProperty(value = "评论id")
    private Integer commentId;

    @ApiModelProperty(value = "评论内容")
    private String commentInfo;

    @ApiModelProperty(value = "申诉理由")
    private String appealReason;

    @ApiModelProperty(value = "申诉处理状态, 0:审核中, 1:已通过, 2:已驳回")
    private Integer status;

    @ApiModelProperty(value = "申诉处理状态字符串")
    private String statusStr;

    @ApiModelProperty(value = "申诉时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date appealTime;

    @ApiModelProperty(value = "申诉审核通过/驳回时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date appealReviewTime;

    @ApiModelProperty(value = "审核原因")
    private String reviewReasons;

    @ApiModelProperty(value = "图片路径")
    private String imgUrl;

    @ApiModelProperty(value = "申诉图片列表")
    private List<String> imgList;

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

    @ApiModelProperty(value = "创建人ID")
    private Integer createdUserId;

    @ApiModelProperty(value = "创建人名称")
    private String createdUserName;

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

    @ApiModelProperty(value = "更新人ID")
    private Integer updatedUserId;

    @ApiModelProperty(value = "更新人名称")
    private String updatedUserName;

    @ApiModelProperty(value = "审核人ID")
    private Integer auditUserId;

    @ApiModelProperty(value = "审核人名称")
    private String auditUserName;

    // 评价相关信息
    @ApiModelProperty(value = "评价用户ID")
    private Integer reviewUserId;

    @ApiModelProperty(value = "评价用户名称")
    private String reviewUserName;

    @ApiModelProperty(value = "用户名称")
    private String userName;

    @ApiModelProperty(value = "评价用户头像")
    private String reviewUserAvatar;

    @ApiModelProperty(value = "总体评分")
    private Double overallRating;

    @ApiModelProperty(value = "服务态度评分")
    private Double serviceAttitudeRating;

    @ApiModelProperty(value = "响应时间评分")
    private Double responseTimeRating;

    @ApiModelProperty(value = "专业能力评分")
    private Double professionalAbilityRating;

    @ApiModelProperty(value = "评价内容")
    private String reviewContent;

    @ApiModelProperty(value = "评价时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date reviewTime;

    @ApiModelProperty(value = "评价图片（JSON字符串，用于查询）")
    private String reviewImages;

    @ApiModelProperty(value = "评价图片列表")
    private List<String> reviewImgList;

    @ApiModelProperty(value = "申诉结果描述（申诉成功/申诉失败）")
    private String appealResult;

    // 中台列表展示字段
    @ApiModelProperty(value = "订单编号")
    private String orderNumber;

    @ApiModelProperty(value = "用户电话")
    private String userPhone;

    @ApiModelProperty(value = "律师用户ID")
    private Integer lawyerUserId;

    @ApiModelProperty(value = "律师姓名")
    private String lawyerName;

    @ApiModelProperty(value = "律师电话")
    private String lawyerPhone;

    @ApiModelProperty(value = "申诉单号")
    private String appealNumber;

    @ApiModelProperty(value = "订单ID")
    private Integer orderId;
}

