package com.jsowell.pile.vo.web;

import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
import com.jsowell.pile.vo.base.OrderAmountDetailVO;
import com.jsowell.pile.vo.base.OrderPeriodAmountVO;
import com.jsowell.pile.vo.base.PileInfoVO;
import com.jsowell.pile.vo.uniapp.MemberVO;
import lombok.Data;

import java.util.List;

/**
 * 订单详情信息VO
 */
@Data
public class OrderDetailInfoVO {
	// 订单信息
	private OrderInfo orderInfo;

	// 账单明细
	private OrderAmountDetailVO billingDetails;

	// 用户信息
	private MemberVO memberInfo;

	// 设备信息
	private PileInfoVO pileInfo;

	// 支付信息
	private List<PayRecord> payRecordList;



	// 枪口监控信息
	private List<PileMonitorData> realTimeMonitorDataList;

	// 订单相关实时数据
	private OrderRealTimeInfo orderRealTimeInfo;

	private RealTimeMonitorData lastMonitorData;

	// 收费明细
	private List<OrderPeriodAmountVO> chargeDetails;

	@Data
	public static class OrderInfo {
		private String orderCode; // 订单编号
		private String transactionCode; // 交易流水号
		private String orderStatus; // 订单状态
		private String orderStatusDescribe; // 订单状态描述
		private String logicCard; // 卡号
		private String startTime; // 充电开始时间
		private String endTime; // 充电结束时间
		private String stopReasonMsg; // 停止原因
		private String createTime; // 订单创建时间
		private String startSOC; // 开始SOC
		private String endSOC; // 结束SOC
	}

	@Data
	public static class PayRecord {
		private String payAmount; // 支付金额
		private String payStatus; // 支付状态
		private String payMode; // 支付方式(1-余额支付；2-微信支付；3-支付宝支付)
		private String payModeDesc; // 支付方式描述
		private String payTime; // 支付时间
		private String outTradeNo; // 微信商户订单号  real_time_monitor_data
		private String transactionId; // 微信支付订单号
		private String refundAmount; // 退款金额
	}

	@Data
	public static class PileMonitorData {
		private String instantCurrent; // 实时电流
		private String instantVoltage; // 实时电压
		private String instantPower; // 实时功率
		private String SOC;
		private String time;
	}

	@Data
	public static class OrderRealTimeInfo{
		private String orderAmount; // 订单金额
		private String totalElectricityAmount; // 总电费
		private String totalServiceAmount; // 总服务费
		private String chargedDegree; // 已充度数
		private String SOC; // soc
		private String chargingTime; // 充电时长（分钟）
	}
}
