package com.fastbee.rechargecard.domain.dto;

import com.fastbee.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
@Data
public class UserConsumptionDetailsDto {
    /** 主键 */
    public Long id;

    /** 关联用户 */
    @Excel(name = "关联用户")
    @ApiModelProperty("关联用户")
    public Long userId;

    /** 设备编码 */
    @Excel(name = "设备编码")
    @ApiModelProperty("设备编码")
    public String deviceNumber;

    /** 购水卡卡号 */
    @Excel(name = "购水卡卡号")
    @ApiModelProperty("购水卡卡号")
    public String cardNumber;

    /** 所属项目id */
    @Excel(name = "所属项目id")
    @ApiModelProperty("所属项目id")
    public Long projectId;

    /** 所属机构 */
    @Excel(name = "所属机构")
    @ApiModelProperty("所属机构")
    public Long deptId;

    /** 0充值，1刷卡(灌溉消费:刷卡开泵到刷卡关泵期间产生的消费) */
    @Excel(name = "0充值，1刷卡(灌溉消费:刷卡开泵到刷卡关泵期间产生的消费)")
    @ApiModelProperty("0充值，1刷卡(灌溉消费:刷卡开泵到刷卡关泵期间产生的消费)")
    public Integer billingType;

    /** 开泵时长 */
    @Excel(name = "开泵时长")
    @ApiModelProperty("开泵时长")
    public BigDecimal pumpTime;

    /** 单价 */
    @Excel(name = "单价")
    @ApiModelProperty("单价")
    public BigDecimal unitPrice;

    /** 总价（数量 * 单价） */
    @Excel(name = "总价", readConverterExp = "数=量,*=,单=价")
    @ApiModelProperty("总价")
    public BigDecimal totalPrice;

    /** 折扣金额 */
    @Excel(name = "折扣金额")
    @ApiModelProperty("折扣金额")
    public BigDecimal discount;

    /** 税金 */
    @Excel(name = "税金")
    @ApiModelProperty("税金")
    public BigDecimal taxAmount;

    /** 应付金额（总价-折扣金额-税金） */
    @Excel(name = "应付金额", readConverterExp = "总=价-折扣金额-税金")
    @ApiModelProperty("应付金额")
    public BigDecimal amountDue;

    /** 账单所属的周期单位，0：小时、1：天、2：周、3：月、4：季度、5：年 */
    @Excel(name = "账单所属的周期单位，0：小时、1：天、2：周、3：月、4：季度、5：年")
    @ApiModelProperty("账单所属的周期单位，0：小时、1：天、2：周、3：月、4：季度、5：年")
    public Integer billingPeriodUnit;

    /** 账单周期时长 */
    @Excel(name = "账单周期时长")
    @ApiModelProperty("账单周期时长")
    public BigDecimal billingPeriodDuration;

    /** 账单生成的日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:MM:SS")
    @Excel(name = "账单生成的日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("账单生成的日期")
    public Date billingDate;

    /** 开泵时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:MM:SS")
    @Excel(name = "开泵时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("开泵时间")
    public Date startTime;

    /** 关泵时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:MM:SS")
    @Excel(name = "关泵时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("关泵时间")
    public Date endTime;

    /** 表明账单是否已支付，0：“未支付”、1：“部分支付”、2：“已支付” */
    @Excel(name = "表明账单是否已支付，0：“未支付”、1：“部分支付”、2：“已支付”")
    @ApiModelProperty("表明账单是否已支付，0：“未支付”、1：“部分支付”、2：“已支付”")
    public Integer paymentStatus;

    /** 用户支付账单的方式1微信，2支付宝，3银联 */
    @Excel(name = "用户支付账单的方式1微信，2支付宝，3银联")
    @ApiModelProperty("用户支付账单的方式1微信，2支付宝，3银联")
    public Integer paymentMethod;

    /**  账单支付的时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:MM:SS")
    @Excel(name = " 账单支付的时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(" 账单支付的时间")
    public Date paymentTime;

    /** 账单的当前状态，0：已支付、1：已取消 */
    @Excel(name = "账单的当前状态，0：已支付、1：已取消")
    @ApiModelProperty("账单的当前状态，0：已支付、1：已取消")
    public Integer status;

    /** 区域码 */
    @Excel(name = "区域码")
    @ApiModelProperty("区域码")
    public String areaCode;
    public String userName;
}
