package com.ylx.massage.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 退单申请实体类
 */
@Data
@TableName("t_cancel_order_application")
public class CancelOrderApplication implements Serializable {


    private static final long serialVersionUID = -791497428662364669L;

    /**
     * 主键ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    /**
     * 订单ID
     */
    private String orderId;

    /**
     * 订单号
     */
    private String orderNo;

    /**
     * 微信用户ID
     */
    private String openId;

    /**
     * 用户姓名
     */
    private String userName;

    /**
     * 用户手机号
     */
    private String userPhone;

    /**
     * 技师ID
     */
    private String techId;

    /**
     * 技师姓名
     */
    private String techName;

    /**
     * 技术姓名
     */
    @TableField(exist = false)
    @JsonProperty("cName")
    private String cName;

    /**
     * 技师昵称
     */
    private String techNickName;

    /**
     * 技师昵称
     */
    @TableField(exist = false)
    @JsonProperty("cNickName")
    private String cNickName;

     /**
     * 技师电话
     */
    private String techPhone;

    /**
     * 技师电话
     */
    @TableField(exist = false)
    @JsonProperty("cPhone")
    private String cPhone;

    /**
     * 服务项目名称
     */
    private String projectName;

    /**
     * 项目时长
     */
     private String projectDuration;

    /**
     * 服务时长（分钟）
     */
    private String serviceDuration;

    /**
     * 订单金额（元）
     */
    private BigDecimal orderAmount;

    /**
     * 退款金额（元）
     */
    private BigDecimal refundAmount;

    /**
     * 订单状态（订单状态(-1：待付款 0：待接单 1：已接单 6：已出发 2：已到达 3：服务中 4：待评价 5：已完成 7：退单待审核 8：退单审核通过   -2：已取消 -3：已拒绝)
     */
     private Integer orderStatus;

    /**
     * 审核状态（0：待审核，1：已审核，2：已取消）
     */
    private Integer auditStatus;

    /**
     * 申请时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime applicationTime;

    /**
     * 退单原因（申请备注）
     */
    private String cancelOrderReason;

    /**
     * 审核人ID
     */
    private String auditUserId;

    /**
     * 审核人姓名
     */
    private String auditUserName;

    /**
     * 审核时间
     */
    private LocalDateTime auditTime;

    /**
     * 审核备注
     */
    private String auditRemark;

    /**
     * 退单处理时间
     */
    private LocalDateTime cancelOrderProcessTime;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;

    /**
     * 删除状态（0：正常，1：已删除）
     */
    @TableLogic
    private Integer isDelete;

    /**
     * 申请开始时间
     */
    @JsonIgnore
    @TableField(exist = false)
    private String startTime;

    /**
     * 申请结束时间
     */
    @JsonIgnore
    @TableField(exist = false)
    private String endTime;
}