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;

/**
 * 律师举报详情VO（包含举报信息、订单信息、律师信息）
 *
 * @author system
 * @since 2025-01-XX
 */
@Data
@ApiModel(value = "LawyerViolationDetailVO对象", description = "律师举报详情VO（包含举报信息、订单信息、律师信息）")
public class LawyerViolationDetailVO implements Serializable {

    private static final long serialVersionUID = 1L;

    // ========== 举报信息 ==========
    @ApiModelProperty(value = "举报ID")
    private Integer violationId;

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

    @ApiModelProperty(value = "举报原因")
    private String violationReason;

    @ApiModelProperty(value = "其他原因具体内容")
    private String otherReasonContent;

    @ApiModelProperty(value = "举报凭证图片")
    private String reportEvidenceImg;

    @ApiModelProperty(value = "处理状态(0：未处理，1：违规，2：未违规)")
    private String processingStatus;

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

    @ApiModelProperty(value = "举报结果")
    private String reportResult;

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

    @ApiModelProperty(value = "举报用户ID")
    private String reportingUserId;

    @ApiModelProperty(value = "举报用户姓名")
    private String reportingUserName;

    @ApiModelProperty(value = "被举报用户ID")
    private String reportedUserId;

    @ApiModelProperty(value = "举报用户类型(1：商户，2：用户，3：律师)")
    private String reportingUserType;

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

    @ApiModelProperty(value = "客户端用户ID")
    private Integer clientUserId;

    @ApiModelProperty(value = "问题描述")
    private String problemDescription;

    @ApiModelProperty(value = "订单金额,单位分")
    private Integer orderAmount;

    @ApiModelProperty(value = "咨询费用,单位分")
    private Integer consultationFee;

    @ApiModelProperty(value = "咨询开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startTime;

    @ApiModelProperty(value = "咨询结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endTime;

    @ApiModelProperty(value = "订单状态, 0:待支付,1.待接单 2:进行中, 3:已完成, 4:已取消，5.已退款")
    private Integer orderStatus;

    @ApiModelProperty(value = "支付状态, 0:未支付, 1:已支付")
    private Integer paymentStatus;

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

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

    @ApiModelProperty(value = "用户评分, 1-5星")
    private Integer rating;

    @ApiModelProperty(value = "用户评价内容")
    private String comment;

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

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

    @ApiModelProperty(value = "律师手机号")
    private String lawyerPhone;

    @ApiModelProperty(value = "律师邮箱")
    private String lawyerEmail;

    @ApiModelProperty(value = "律师执业证号")
    private String lawyerCertificateNo;

    @ApiModelProperty(value = "所属律师事务所")
    private String lawFirm;

    @ApiModelProperty(value = "执业年限")
    private Integer practiceYears;

    @ApiModelProperty(value = "专业领域,多个用逗号分隔")
    private String specialtyFields;

    @ApiModelProperty(value = "资质认证状态, 0:未认证, 1:认证中, 2:已认证, 3:认证失败")
    private Integer certificationStatus;

    @ApiModelProperty(value = "服务评分, 0-5分")
    private Double serviceScore;

    @ApiModelProperty(value = "服务次数")
    private Integer serviceCount;

    @ApiModelProperty(value = "咨询收费标准(单位分/小时)")
    private Integer lawyerConsultationFee;

    @ApiModelProperty(value = "所属省份")
    private String province;

    @ApiModelProperty(value = "所属城市")
    private String city;

    @ApiModelProperty(value = "所属区县")
    private String district;

    @ApiModelProperty(value = "详细地址")
    private String address;

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

    @ApiModelProperty(value = "律师昵称")
    private String nickName;

    @ApiModelProperty(value = "个人简介(详细)")
    private String personalIntroduction;

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

    @ApiModelProperty(value = "支付方式 1支付宝 2微信")
    private String payType;

    @ApiModelProperty(value = "订单金额字符串（拼接后的字段）")
    private String orderPriceStr;

    @ApiModelProperty(value = "分钟收费-钱数")
    private Integer chargeMinute;

    @ApiModelProperty(value = "分钟收费-分钟数")
    private Integer minuteNum;

    @ApiModelProperty(value = "次数收费-钱数")
    private Integer chargeTime;

    @ApiModelProperty(value = "次数收费-次数")
    private Integer timeNum;

}

