package cn.com.ty.lift.ud.chat.mapper.entity;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

import cn.com.ty.lift.ud.common.BaseEntity;
import cn.com.ty.lift.ud.liftCaseAppeal.mapper.entity.LiftCaseAppealEntity;
import cn.com.ty.lift.ud.question.mapper.entity.QuestionBankEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 诊单
 * 
 * @author Xson
 * @date 2020-04-23
 */
@ApiModel(description = "诊单 ")
@TableName(value = "lift_case")
@Data
public class LiftCaseEntity extends BaseEntity {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    /**
     * 问题描述 问题描述
     */
    @ApiModelProperty("问题描述 问题描述")
    private String expression;

    /**
     * 已尝试的方法 已尝试的方法
     */
    @ApiModelProperty("已尝试的方法 已尝试的方法")
    private String usedMethods;

    /**
     * 图集 图集
     */
    @ApiModelProperty("图集 图集")
    private String imgs;

    /**
     * 品牌 品牌id
     */
    @ApiModelProperty("品牌 品牌id")
    private Integer brandId;

    /**
     * 会话id
     */
    @ApiModelProperty("会话id")
    private String sessionId;

    /**
     * 出诊地址 地图显示，gps坐标
     */
    @ApiModelProperty("出诊地址 地图显示，gps坐标")
    private String address;

    /**
     * 专家 专家id
     */
    @ApiModelProperty("专家 专家id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long chargerId;

    /**
     * 差旅费 差旅费
     */
    @ApiModelProperty("差旅费 差旅费")
    private BigDecimal travelCost;

    /**
     * 服务费 服务费
     */
    @ApiModelProperty("服务费 服务费")
    private BigDecimal serviceCost;

    /**
     * 总价 总价
     */
    @ApiModelProperty("总价 总价")
    private BigDecimal totalCost;

    /**
     * 出诊时间
     */
    @ApiModelProperty("出诊时间")
    private Date arrivedTime;

    /**
     * 0待付款 1已付款 2待报价 3待打卡 4已打卡（专家待确认） 6专家已确认（用户待确认） 5用户已确认 7待评论 8待归档 9已归档 10申诉中 11申诉完成 12用户确认打卡 13拒绝接单
     */
    @ApiModelProperty("0待付款 1已付款 2待报价 3待打卡 4确认打卡 5用户确认问题已解决 6专家确认解决问题 7待评论 8待归档 9已归档")
    private Integer statuz;

    @ApiModelProperty("0待接单1已接单2拒绝接单")
    private Integer acceptStatus;

    /**
     * 打卡标记 0已打卡1未打卡
     */
    @ApiModelProperty("打卡标记 1已打卡0未打卡")
    private Integer arrivedFlag;

    /**
     * 打卡地点 打开地点
     */
    @ApiModelProperty("打卡地点 打开地点")
    private String arrivedAddress;
    
    /**
     * 打卡地点 打开地点
     */
    @ApiModelProperty("纬度")
    private String lat;
    
    /**
     * 打卡地点 打开地点
     */
    @ApiModelProperty("经度")
    private String lng;

    /**
     * 问诊出诊 1问诊2出诊
     */
    @ApiModelProperty("问诊出诊 1问诊2出诊")
    private Integer dataTable;

    @ApiModelProperty("创建人")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long createUserId;

    @ApiModelProperty("维修前")
    private String beforeRepair;

    @ApiModelProperty("维修后")
    private String afterRepair;

    @ApiModelProperty("平台客服id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long customerServiceId;

    /**
     * 是否已开发票
     */
    @ApiModelProperty("是否已开发票")
    private Integer isInvoice;

    /**
     * 红包抵扣
     */
    @ApiModelProperty("红包抵扣")
    private transient BigDecimal redEnvelopeDeduction;

    /**
     * 红包id
     */
    @ApiModelProperty("红包id")
    @TableField(strategy = FieldStrategy.IGNORED)
    private Long redEnvelopeId;

    /**
     * 优惠券抵扣
     */
    @ApiModelProperty("优惠券抵扣")
    private transient BigDecimal couponDeduction;

    /**
     * 优惠券id
     */
    @TableField(strategy = FieldStrategy.IGNORED)
    @ApiModelProperty("优惠券id")
    private Long couponId;

    /**
     * 实际支付价 实际支付价
     */
    @ApiModelProperty("实际支付价 实际支付价")
    private BigDecimal payCost;

    /**
     * 订单编号 订单编号
     */
    @ApiModelProperty("订单编号 订单编号")
    private String orderNo;

    /**
     * 支付方式 1:微信2:支付宝
     */
    @ApiModelProperty("支付方式 1:微信2:支付宝")
    private Integer payType;

    @ApiModelProperty("视频")
    private String videoUrl;
    
    /**
     * 支付宝流水号
     */
    @ApiModelProperty("支付宝流水号")
    private String orderSerialNumber;
    
    @ApiModelProperty("是否平台指定 1:是0:否")
    private Integer isPlatformSpecified;

    private transient String name;
    
    private transient String customerName;

    private transient String avatarUrl;

    private transient String brandName;
    
    @ApiModelProperty("申诉状态 1未结束 2 驳回 3 已结束 4已退款")
    private transient Integer liftCaseAppealStatus;

    private transient LiftCaseAppealEntity liftCaseAppealEntity;
    
    private transient QuestionBankEntity questionBankEntity;
    
    private transient String chargeName;

    //归档状态，及归档驳回原因
    @ApiModelProperty("归档状态 1已归档 2以驳回")
    private transient String examineFlag;
    private transient String notExamineReason;

    private Integer colorGrade;

}
