package com.jsowell.pile.domain;

import lombok.*;

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

/**
 * 订单主表
 */
@Getter
@Setter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class OrderBasicInfo {
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    private Integer id;

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

    /**
     * 交易流水号
     */
    private String transactionCode;

    /**
     * 订单状态(0-未启动；1-充电中；2-待结算；3-待补缴；4-异常；5-可疑；6-订单完成；7-超时关闭)
     */
    private String orderStatus;

    /**
     * 会员id
     */
    private String memberId;

    /**
     * 站点id
     */
    private String stationId;

    /**
     * 运营商id
     */
    private String merchantId;

    /**
     * 充电桩sn
     */
    private String pileSn;

    /**
     * 充电桩枪口号
     */
    private String connectorCode;

    /**
     * 充电桩枪口编号
     */
    private String pileConnectorCode;

    /**
     * 卡启动时的卡号
     */
    private String logicCard;

    /**
     * vin启动时的vin码
     */
    private String vinCode;

    /**
     * 启动方式（0-后管启动；1-用户app启动；2-卡启动；3-离线卡启动; 4-联联平台启动; 5-车辆vin码启动）
     */
    private String startMode;

    /**
     * 第三方平台类型
     */
    private String thirdPartyType;

    /**
     * 支付方式(1-余额支付；3-白名单支付；4-微信支付；5-支付宝支付)
     */
    private String payMode;

    /**
     * 支付状态(0-待支付；1-支付完成; 2-无需支付; 3-待补缴)
     */
    private String payStatus;

    /**
     * 支付金额（指用户预存的金额）
     */
    private BigDecimal payAmount;

    /**
     * 支付时间
     */
    private Date payTime;

    /**
     * 车牌号码
     */
    private String plateNumber;

    /**
     * 订单总金额 = 电费总金额 + 服务费总金额
     */
    private BigDecimal orderAmount;

    /**
     * 虚拟金额（指使用赠送余额消费部分）
     */
    private BigDecimal virtualAmount;

    /**
     * 会员组编号
     */
    private String groupCode;

    /**
     * 折扣金额（指会员优惠金额）
     */
    private BigDecimal discountAmount;

    /**
     * 结算金额（指实际产生的消费，包括本金支付，微信支付等）
     */
    private BigDecimal settleAmount;

    /**
     * 应补缴金额
     */
    private BigDecimal remedialAmount;

    /**
     * 充电开始时间
     */
    private Date chargeStartTime;

    /**
     * 充电结束时间
     */
    private Date chargeEndTime;

    /**
     * 启动类型（now-立即启动；reserved-预约启动）
     */
    private String startType;

    /**
     * 预约开始时间
     */
    private Date reservedStartTime;

    /**
     * 预约结束时间
     */
    private Date reservedEndTime;

    /**
     * 开始SOC
     */
    private String startSoc;

    /**
     * 结束SOC
     */
    private String endSoc;

    /**
     * 异常原因
     */
    private String reason;

    /**
     * 结算时间
     */
    private Date settlementTime;

    /**
     * 退款金额
     */
    private BigDecimal refundAmount;

    /**
     * 退款状态（0-不需要退款；1-退款中；2-退款完成）
     */
    private String refundStatus;

    /**
     * 创建人
     */
    private String createBy;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新人
     */
    private String updateBy;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 删除标识（0-正常；1-删除）
     */
    private String delFlag;
}