package com.yuchen.saas.parking.api.vo.coupon;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.poi.ss.usermodel.HorizontalAlignment;

import java.util.Date;

/**
 * @Author 蔡文强
 * @Date 2023/5/25 15:56
 * @Description 优惠券excel导出
 */
@Data
@HeadStyle(horizontalAlignment = HorizontalAlignment.CENTER)
@HeadRowHeight(25)
@ContentStyle(horizontalAlignment = HorizontalAlignment.CENTER)
@ColumnWidth(12)
@ContentRowHeight(15)
@HeadFontStyle(fontHeightInPoints =9)
@ExcelIgnoreUnannotated
public class PmgBatCouponRecordExcelVO {

    @ExcelProperty("优惠券编号")
    @ApiModelProperty(name = "couponNo", value = "优惠券编号")
    @ColumnWidth(20)
    private String couponNo;


    @ApiModelProperty(name = "couponType", value = "优惠券类型(1:优惠卡 2:优惠活动)")
    private Integer couponType;
    @ExcelProperty("优惠券类型")
    @ApiModelProperty(name = "couponTypeName", value = "优惠券类型(1:优惠卡 2:优惠活动)")
    private String couponTypeName;

    @ApiModelProperty(name = "discountType", value = "优惠类型(1:智慧停车 2:智慧充电 3:平台通用)")
    private Integer discountType;
    @ExcelProperty("优惠类型")
    @ApiModelProperty(name = "discountTypeName", value = "优惠类型(1:智慧停车 2:智慧充电 3:平台通用)")
    private String discountTypeName;

    @ApiModelProperty(name = "discountItems", value = "优惠适用费项(1:临停费用 2:月卡充值 3:错时充值 4:管理费 5:充电收费 6:停车占位收费),多选,逗号隔开")
    private String discountItems;
    @ExcelProperty("优惠适用费项")
    @ApiModelProperty(name = "discountItemsName", value = "优惠适用费项(1:临停费用 2:月卡充值 3:错时充值 4:管理费 5:充电收费 6:停车占位收费),多选,逗号隔开")
    private String discountItemsName;

    @ExcelProperty("发放对象名称")
    @ApiModelProperty(name = "grantName", value = "发放对象名称")
    @ColumnWidth(24)
    private String grantName;

    @ExcelProperty("归属对象")
    @ApiModelProperty(name = "belongName", value = "归属对象")
    @ColumnWidth(24)
    private String belongName;

    @ApiModelProperty(name = "fundType", value = "优惠资金类型(1:虚拟额度 2:充值资金)")
    private Integer fundType;
    @ExcelProperty("优惠资金类型")
    @ApiModelProperty(name = "fundTypeName", value = "优惠资金类型(1:虚拟额度 2:充值资金)")
    private String fundTypeName;

    @ApiModelProperty(name = "suitCondition", value = "使用条件(1:满xx元可使用 2:无门槛使用(若优惠金额大于产品金额，则该产品价格为免费))")
    private Integer suitCondition;
    @ApiModelProperty(name = "conditionAmount", value = "满xx元可使用(单位分)")
    private Integer conditionAmount;
    @ExcelProperty("使用条件")
    @ApiModelProperty(name = "suitConditionName", value = "使用条件(1:满xx元可使用 2:无门槛使用(若优惠金额大于产品金额，则该产品价格为免费))")
    private String suitConditionName;

    @ApiModelProperty(name = "startDate", value = "开始日期")
    private Date startDate;
    @ApiModelProperty(name = "endDate", value = "结束日期")
    private Date endDate;
    @ExcelProperty("使用有效期")
    @ApiModelProperty(name = "validityDate", value = "使用有效期")
    @ColumnWidth(24)
    private String validityDate;

    @ApiModelProperty(name = "discountMode", value = "优惠方式(1:限免优惠 2:全免优惠)")
    private Integer discountMode;
    @ExcelProperty("优惠方式")
    @ApiModelProperty(name = "discountModeName", value = "优惠方式(1:限免优惠 2:全免优惠)")
    private String discountModeName;

    @ApiModelProperty(name = "couponAmount", value = "优惠券额度(单位分)")
    private Integer couponAmount;
    @ExcelProperty("优惠券额度(元)")
    @ApiModelProperty(name = "couponAmountDouble", value = "优惠券额度(元)")
    private Double couponAmountDouble;

    @ApiModelProperty(name = "realCouponAmount", value = "实际优惠金额(单位分)")
    private Integer realCouponAmount;
    @ExcelProperty("实际优惠金额(元)")
    @ApiModelProperty(name = "realCouponAmountDouble", value = "实际优惠金额(元)")
    private Double realCouponAmountDouble;

    @ExcelProperty("适用范围")
    @ApiModelProperty(name = "parkingNames", value = "适用范围(停车场名称,多个逗号隔开)")
    private String parkingNames;

    @ExcelProperty("领取对象")
    @ApiModelProperty(name = "receiver", value = "领取对象(手机号或者车牌号)")
    private String receiver;
    @ExcelProperty("领取时间")
    @ApiModelProperty(name = "receiveTime", value = "领取时间")
    @ColumnWidth(24)
    private Date receiveTime;

    @ExcelProperty("使用对象")
    @ApiModelProperty(name = "user", value = "使用对象(手机号或者车牌号)")
    private String user;
    @ExcelProperty("使用时间")
    @ApiModelProperty(name = "useTime", value = "使用时间")
    @ColumnWidth(24)
    private Date useTime;

    @ExcelProperty("使用订单")
    @ApiModelProperty(name = "billId", value = "使用订单")
    @ColumnWidth(24)
    private String billId;

    @ApiModelProperty(name = "useStatus", value = "使用状态(1:未使用 2:已使用 3:已过期)")
    private Integer useStatus;
    @ExcelProperty("使用状态")
    @ApiModelProperty(name = "useStatusName", value = "使用状态(1:未使用 2:已使用 3:已过期)")
    private String useStatusName;

}
