/*
 * 文 件 名:  ChargingTransaction
 * 版    权:  华设设计集团股份有限公司
 * 描    述:  充电交易记录实体类
 * 修 改 人:  lvwenbin
 * 修改时间:  2026/01/08
 */
package com.ruoyi.ems.domain;

import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 充电交易记录实体类
 * 对应表 adm_charging_transaction
 *
 * @author lvwenbin
 * @version [版本号, 2026/01/08]
 */
@Data
public class ChargingTransaction implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 序号
     */
    private Long id;

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

    /**
     * 桩编码
     */
    private String pileCode;

    /**
     * 枪号
     */
    private String gunNo;

    /**
     * 关联充电枪设备编码
     */
    private String deviceCode;

    /**
     * 归属区域代码
     */
    private String areaCode;

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

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

    /**
     * 充电时长(分钟)
     */
    private Integer chargingDuration;

    /**
     * 记录日期
     */
    private Date recordDate;

    /**
     * 电表总起值(kWh)
     */
    private Double meterStart;

    /**
     * 电表总止值(kWh)
     */
    private Double meterEnd;

    /**
     * 总电量(kWh)
     */
    private Double totalEnergy;

    /**
     * 计损总电量(kWh)
     */
    private Double totalEnergyLoss;

    /**
     * 总金额(元)
     */
    private Double totalAmount;

    /**
     * VIN码
     */
    private String vin;

    /**
     * 交易类型(1:APP 2:刷卡 4:离线卡 5:VIN)
     */
    private Integer transactionType;

    /**
     * 停止原因代码
     */
    private String stopReason;

    /**
     * 停止原因描述
     */
    private String stopReasonDesc;

    /**
     * 是否正常结束
     */
    private Integer isNormalStop;

    /**
     * 物理卡号
     */
    private String physicalCardNo;

    /**
     * 是否纳入能耗统计(0:否 1:是)
     */
    private Integer includeInEms;

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

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

    @Override
    public String toString() {
        return "ChargingTransaction{" +
            "transactionNo='" + transactionNo + '\'' +
            ", pileCode='" + pileCode + '\'' +
            ", gunNo='" + gunNo + '\'' +
            ", deviceCode='" + deviceCode + '\'' +
            ", startTime=" + startTime +
            ", endTime=" + endTime +
            ", totalEnergy=" + totalEnergy +
            ", totalAmount=" + totalAmount +
            ", vin='" + vin + '\'' +
            ", isNormalStop=" + isNormalStop +
            '}';
    }
}
