package com.xinelu.applet.vo.nursingorder;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;


/**
 * @author ljh
 * @version 1.0
 * Create by 2022/10/25 15:49
 */
@Data
public class AppletGoodsOrderVO implements Serializable {
    private static final long serialVersionUID = -1046127024688630443L;

    /**
     * 商品订单表id
     */
    private Long goodsOrderId;

    /**
     * 会员id
     */
    private Long patientId;

    /**
     * 订单编号
     */
    private String goOrderNo;

    /**
     * 订单状态，待付款：WAIT_PAY，已付款：PAY，已取消：CANCEL，待收货：WAIT_RECEIVED，已收货：RECEIVED，待退款：WAIT_REFUND，已退款：REFUNDED，待退货：WAIT_RETURNED，已退货：RETURNED
     */
    private String orderStatus;

    /**
     * 订单总金额
     */
    private BigDecimal totalPrice;
    /**
     * 收货人
     */
    private String receiver;
    /**
     * 收货地址
     */
    private String receiveAddress;
    /**
     * 联系电话
     */
    private String phone;

    /**
     * 订单总金额
     */
    private BigDecimal godTotalPrice;

    /**
     * 下单时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime orderTime;

    /**
     * 主键id
     */
    private Long goodsOrderDetailsId;

    /**
     * 商品名称
     */
    private String goodsName;

    /**
     * 商品数量
     */
    private Integer goodsCount;

    /**
     * 商品属性名称
     */
    private String goodsAttributeName;

    /**
     * 商品属性内容
     */
    private String goodsAttributeContent;

    /**
     * 商品单价（元）
     */
    private BigDecimal goodsPrice;

    /**
     * 优惠金额（元）
     */
    private BigDecimal discountPrice;

    /**
     * 运费金额（元）
     */
    private BigDecimal transportPrice;

    /**
     * 赠送积分
     */
    private Integer giveIntegral;


    /**
     * 退款退货类型：REFUND_MONEY_GOODS，仅退款：ONLY_REFUND_MONEY
     */
    private String refundType;

    /**
     * 退款原因类型字典表id
     */
    private Long refundReasonDictId;

    /**
     * 退货原因具体描述
     */
    private String refundReasonRemark;

    /**
     * 确认退款状态，未确认：NOT_CONFIRM，已确认：CONFIRMED
     */
    private String confirmRefundStatus;

    /**
     * 商品属性图片地址
     */
    private String attributePitureUrl;

    /**
     * 退款时间时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    /**
     * 字典标签
     */
    private String dictLabel;

    /**
     * 快递单号
     */
    private String expressNo;

    /**
     * 购买来源
     */
    private String buySource;

    /**
     * 订单类型，积分兑换：INTEGRAL_EXCHANGE，直接购买：DIRECT_BUY，健康咨询：HEALTH_CONSULTATION
     */
    private String orderType;

    /**
     * 订单类型，积分兑换：INTEGRAL_EXCHANGE，直接购买：DIRECT_BUY，健康咨询：HEALTH_CONSULTATION
     */
    private List<String> orderTypeList;

    /**
     * 积分抵扣数量
     */
    private Integer integralDeductionCount;

    /**
     * 退款详情-申请时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime appleTime;

    /**
     * 积分兑换标识，0：否，1：是
     */
    private Integer integralExchangeFlag;

    /**
     * 积分兑换门槛值
     */
    private Integer integralExchangeSill;

    /**
     * 积分兑换商品数量
     */
    private Integer integralExchangeCount;

    /**
     * 订单原始总金额（优惠券之前的价格，即：商品数量*商品单价）
     */
    private BigDecimal originalTotalPrice;

    /**
     * 优惠券名称
     */
    private String couponTitle;

    /**
     * 优惠券id
     */
    private Long couponId;

    /**
     * 健康咨询人员表id，记录咨询订单中选择的医生
     */
    private Long hospitalPersonId;

    /**
     * 下单方式，手机App：MOBILE_APP，微信小程序：WECHAT_APPLET，支付宝小程序：ALI_PAY_APPLET
     */
    private String orderChannel;

    /**
     * 健康咨询内容，健康咨询类型的订单使用
     */
    private String healthConsultationContent;

    /**
     * 健康咨询预约时间，健康咨询订单使用
     **/
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date healthAppointDate;

    /**
     * 健康咨询专家名称，健康咨询类型的订单使用
     */
    private String hospitalPersonName;

    /**
     * 科室人员头像地址
     */
    private String personPictureUrl;

    /**
     * 科室人员联系电话
     */
    private String personPhone;

    /**
     * 人员职称，主任医师：CHIEF_PHYSICIAN，副主任医师：DEPUTY_CHIEF_PHYSICIAN，主治医师：ATTENDING_DOCTOR，医师：PHYSICIAN，医士：HEALER，住院医师：RESIDENT_PHYSICIAN
     */
    private String academicTitle;
}
