package com.yuchen.saas.parking.charge.api.entity.charge;

import com.baomidou.mybatisplus.annotation.TableName;
import com.thinkunion.park.service.common.entity.BasicEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.nest.springwrap.core.mp.base.BaseEntity;

/**
 * <p>
 * 停车账单表
 * </p>
 *
 * @author caiwq
 * @since 2023-04-13
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("spc_charge_bill_payment")
@ApiModel(value="SpcChargeBillPayment对象", description="停车账单表")
public class SpcChargeBillPayment extends BaseEntity {

    /**
     * 充电订单id
     */
    @ApiModelProperty(name = "billId", value = "充电订单id")
    private Long billId;
    /**
     * 车辆id，无牌车用无牌车id
     */
    @ApiModelProperty(name = "noPlateId", value = "车辆id，无牌车用无牌车id")
    private Long noPlateId;
    /**
     * 车牌
     */
    @ApiModelProperty(name = "plateNo", value = "车牌")
    private String plateNo;
    /**
     * 微信openid or 支付宝账号
     */
    @ApiModelProperty(name = "payUserId", value = "微信openid or 支付宝账号")
    private String payUserId;
    /**
     * 详细的支付类型
     */
    @ApiModelProperty(name = "payType", value = "详细的支付类型")
    private String payType;
    /**
     * 应收金额（最大长度8） 单位：分
     */
    @ApiModelProperty(name = "supposeCost", value = "应收金额（最大长度8） 单位：分")
    private Long supposeCost;
    /**
     * 已支付金额（最大长度8） 单位：分
     */
    @ApiModelProperty(name = "paidCost", value = "已支付金额（最大长度8） 单位：分")
    private Long paidCost;
    /**
     * 账单总金额（最大长度8） 单位：分
     */
    @ApiModelProperty(name = "totalCost", value = "账单总金额（最大长度8） 单位：分")
    private Long totalCost;
    /**
     * 开票状态(0:开票中 1:开票成功 2:开票失败 3:红冲中(待退票) 4:已红冲(已退票) 5:被驳回 6:重开发票申请中 7:待作废 8:已作废 9:未开票 10:被驳回且重新申请 11:待红冲 12:红冲失败)
     */
    @ApiModelProperty(name = "invoicingStatus", value = "开票状态(0:开票中 1:开票成功 2:开票失败 3:红冲中(待退票) 4:已红冲(已退票) 5:被驳回 6:重开发票申请中 7:待作废 8:已作废 9:未开票 10:被驳回且重新申请 11:待红冲 12:红冲失败)")
    private Integer invoicingStatus;
    /**
     * 减免金额（最大长度8） 单位：分
     */
    @ApiModelProperty(name = "deduceCost", value = "减免金额（最大长度8） 单位：分")
    private Long deduceCost;
    /**
     * 是否使用优惠券 0：不使用 1：使用
     */
    @ApiModelProperty(name = "isUsedCoupon", value = "是否使用优惠券 0：不使用 1：使用")
    private Integer isUsedCoupon;
    /**
     * 优惠券码（最大长度64）
     */
    @ApiModelProperty(name = "couponCode", value = "优惠券码（最大长度64）")
    private String couponCode;
    /**
     * 优惠券失败原因 1:抵扣券已失效 2:抵扣券不存在 3:请使用当前停车场抵扣券 4:超时缴费不能使用抵扣券减免 5:已使用抵扣券减免 6:已使用过优惠券，不能多次使用
     */
    @ApiModelProperty(name = "couponUsedMsg", value = "优惠券失败原因 1:抵扣券已失效 2:抵扣券不存在 3:请使用当前停车场抵扣券 4:超时缴费不能使用抵扣券减免 5:已使用抵扣券减免 6:已使用过优惠券，不能多次使用")
    private Integer couponUsedMsg;
    /**
     * 本次账单减免金额 单位：分
     */
    @ApiModelProperty(name = "currentDeduceCost", value = "本次账单减免金额 单位：分")
    private Long currentDeduceCost;
    /**
     * 停车场ID
     */
    @ApiModelProperty(name = "parkingId", value = "停车场ID")
    private Long parkingId;
    private Long paidPlaceIdleCost;

}
