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.util.Date;
import java.util.List;

/**
 * 订单评价VO
 *
 * @author system
 * @since 2025-01-XX
 */
@Data
@ApiModel(value = "OrderReviewVo对象", description = "订单评价VO")
public class OrderReviewVo {

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

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

    @ApiModelProperty(value = "订单编号")
    private String orderNumber;

    @ApiModelProperty(value = "评价用户ID")
    private Integer userId;

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

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

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

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

    @ApiModelProperty(value = "律师头像")
    private String lawyerAvatar;

    @ApiModelProperty(value = "律所名称")
    private String lawFirmName;

    @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 = "评价图片列表")
    private List<String> reviewImages;

    @ApiModelProperty(value = "评价图片JSON字符串（内部使用，不对外暴露）")
    @com.fasterxml.jackson.annotation.JsonIgnore
    private String reviewImagesJson;

    @ApiModelProperty(value = "是否匿名评价，0:否，1:是")
    private Integer isAnonymous;

    @ApiModelProperty(value = "点赞数")
    private Integer likeCount;

    @ApiModelProperty(value = "评论数")
    private Integer commentCount;

    @ApiModelProperty(value = "当前用户是否已点赞，0:未点赞，1:已点赞")
    private Integer isLiked;

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

    @ApiModelProperty(value = "逻辑删除")
    private Integer deleteFlag;

    @ApiModelProperty(value = "订单申诉状态")
    private Integer isAppealed;

    @ApiModelProperty(value = "申诉id （如果该评价被申诉 申诉id会有值）")
    private String appealId;

    @ApiModelProperty(value = "用户手机号")
    private String userPhone;
}

