package com.zsElectric.boot.business.model.dto;

import cn.idev.excel.annotation.ExcelProperty;
import cn.idev.excel.annotation.format.DateTimeFormat;
import cn.idev.excel.annotation.write.style.ColumnWidth;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 充电订单信息导出DTO
 *
 * @author zsElectric
 * @since 2025-01-07
 */
@Data
@ColumnWidth(20)
public class ChargeOrderInfoExportDTO {

    @ExcelProperty(value = "订单号")
    private String chargeOrderNo;

    @ExcelProperty(value = "用户手机号")
    private String phone;

    @ExcelProperty(value = "订单类型")
    private String orderTypeName;

    @ExcelProperty(value = "充电站名称")
    private String stationName;

    @ExcelProperty(value = "充电设备接口名称")
    private String connectorName;

    @ExcelProperty(value = "充电桩编号")
    private String equipmentId;

    @ExcelProperty(value = "充电设备接口编号")
    private String connectorId;

    @ExcelProperty(value = "充电开始时间")
    private String startTime;

    @ExcelProperty(value = "充电结束时间")
    private String endTime;

    @ExcelProperty(value = "充电时长(秒)")
    private Integer chargeTime;

    @ExcelProperty(value = "订单状态")
    private String statusName;

    @ExcelProperty(value = "充电度数(kW/h)")
    private BigDecimal totalCharge;

    @ExcelProperty(value = "平台实际收取金额")
    private BigDecimal realCost;

    @ExcelProperty(value = "平台总服务费")
    private BigDecimal realServiceCost;

    @ExcelProperty(value = "第三方充电消费总额")
    private BigDecimal thirdPartyTotalCost;

    @ExcelProperty(value = "第三方充电服务费")
    private BigDecimal thirdPartyServerfee;

    @ExcelProperty(value = "第三方充电金额")
    private BigDecimal thirdPartyElecfee;

    @ExcelProperty(value = "预充值金额")
    private BigDecimal preAmt;

    @ExcelProperty(value = "优惠金额")
    private BigDecimal discountMoney;

    @ExcelProperty(value = "优惠描述")
    private String discountDesc;

    @ExcelProperty(value = "优惠券金额")
    private BigDecimal couponPrice;

    @ExcelProperty(value = "停止类型")
    private String stopTypeName;

    @ExcelProperty(value = "停止原因0:用户手动停止充电；1:客户归属地运营商平台停止充电；2:BMS停止充电；3:充电机设备故障；4:连接器断开；其它:自定义")
    private String stopReason;

    @ExcelProperty(value = "备注")
    private String remark;

    @ExcelProperty(value = "创建时间")
    @DateTimeFormat("yyyy/MM/dd HH:mm:ss")
    private LocalDateTime createTime;
}
