package com.xhpc.activity.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author yuyang
 * @date 2022/8/5 9:17
 */
@Data
public class XhpcWorkHistoryOrder implements Serializable {
    /**
     * 历史订单id
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long historyOrderId;

    /**
     * 电站id
     */
    private Long chargingStationId;

    /**
     * 充电订单id
     */
    private Long chargeOrderId;

    /**
     * 用户id
     */
    private Long userId;

    /**
     * 终端id
     */
    private Long terminalId;

    /**
     * 流水号
     */
    private String serialNumber;

    /**
     * 互联网订单流水号
     */
    private String internetSerialNumber;

    /**
     * Evcs订单号,供监管平台和第三方使用
     */
    private String evcsOrderNo;

    /**
     * 订单总价
     */
    private BigDecimal totalPrice;

    /**
     * 电站活动抵扣
     */
    private BigDecimal promotionDiscount;

    /**
     * 实际价格
     */
    private BigDecimal actPrice;

    /**
     * 实收电费
     */
    private BigDecimal actPowerPrice;

    /**
     * 实收服务费
     */
    private BigDecimal actServicePrice;

    /**
     * 流量方总金额抽成
     */
    private BigDecimal internetCommission;

    /**
     * 流量方服务费抽成
     */
    private BigDecimal internetSvcCommission;
    /**
     * 流量方电量抽成
     */
    private BigDecimal internetDegreeCommission;

    /**
     * 平台总金额抽成
     */
    private BigDecimal platformCommission;

    /**
     * 平台服务费抽成
     */
    private BigDecimal platformSvcCommisssion;

    /**
     * 运维总抽成
     */
    private BigDecimal operationCommission;

    /**
     * 运维服务费抽成
     */
    private BigDecimal operationSvcCommission;

    /**
     * 开始充电soc
     */
    private String startSoc;

    /**
     * 结束时soc
     */
    private String endSoc;

    /**
     * 对账状态（0待确认 1已确认，2待提交，3待审核）
     */
    private Integer reconciliationStatus;

    /**
     * 清分状态（0待清分 1清分在途，2已提现，3待提交，4待审核）
     */
    private Integer sortingStatus;

    /**
     * 1 自动结算 2 平台结算
     */
    private Integer type;

    /**
     * 状态（0正常 1停用）
     */
    private Integer status;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private Integer delFlag;

    /**
     * 总电费
     */
    private BigDecimal powerPriceTotal;

    /**
     * 总服务费
     */
    private BigDecimal servicePriceTotal;

    /**
     * 活动总电费
     */
    private BigDecimal activityPowerPriceTotal;

    /**
     * 活动总服务费
     */
    private BigDecimal activityServicePriceTotal;

    /**
     * 活动总金额
     */
    private BigDecimal activityTotalPrice;

    /**
     * 0未统计 1已统计
     */
    private Integer state;

    /**
     * VIN 码
     */
    private String vinNormal;

    /**
     * 充电电量
     */
    private Double totalPower;

    private Date startTime;
    /**
     * 结束时间
     */
    private Date endTime;

    /**
     * 停止原因
     */
    private String stopReasonEvcs ;


    private String stopReasonEvcsName ;

    /**
     * 运营商/场站OperatorID
     */
    private String operatorIdEvcs;

    /**
     * 流量方OperatorID
     */
    private String operatorId3rdptyEvcs;

    /**
     * 终端客户开启充电方式
     * 0：未知
     * 1：市/省级平台无卡启动
     * 2：有卡启动
     * 3：其他无卡启动
     */
    private Integer chargeModelEvcs;

    /**
     * 实际充电的客户在运营商侧的名称,<=20字符
     */
    private String userNameEvcs;

    /**
     * 接口额定功率
     * 单位：kW, 小数点后 1 位
     */
    private Double connectorPowerEvcs;

    /**
     * 电表总起值
     * 单位:度, 小数点后2位
     */
    private Double meterValueStartEvcs;

    /**
     * 电表总结束值
     * 单位:度, 小数点后2位
     */
    private Double meterValueEndEvcs;

    /**
     * 充电用户手机号
     */
    private String phone;


    /**
     * 推送第三方订单返回的确认结果
     */
    private Integer confirmResult;

    /**
     * 费率模型id
     */
    private Long rateModelId;

    /**
     * 充电方式
     */
    private String chargingMode;

    /**
     * 充电方式
     */
    private Integer source;

    /**
     * 活动id
     */
    private String activityId;

    /** 搜索值 */
    private String searchValue;

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

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

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

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 备注
     */
    private String remark;

    /**
     * 租户id
     */
    private String tenantId;
}
