package com.fdkankan.manage.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.fdkankan.common.annotation.Dict;
import com.fdkankan.common.constant.InvoiceRegisterStatus;
import com.fdkankan.common.constant.InvoiceType;
import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * TODO
 * </p>
 *
 * @author dengsixing
 * @since 2022/6/1
 **/
@Data
@EqualsAndHashCode
@ColumnWidth(20)
public class InvoiceVO {

    @ExcelIgnore
    private Long id;

    /**
     * 订单号
     */
    @ColumnWidth(20)
    @ExcelProperty("订单编号")
    private String orderSn;

    /**
     * 支付时间
     */
    @ColumnWidth(20)
    @ExcelProperty("支付时间")
    private Date payTime;

    /**
     * 开票时间
     */
    @ColumnWidth(20)
    @ExcelProperty("开票申请时间")
    private Date invoiceTime;

    /**
     * 开票金额
     */
    @ExcelProperty("开票金额")
    private Double money;

    /**
     * 发票类型 2-普通发票， 3-专用发票
     */
    @Dict(enumClazz = InvoiceType.class)
    @ExcelIgnore
    private Integer type;

    @ExcelProperty("开票类型")
    @ColumnWidth(10)
    private String typeStr;

    /**
     * 发票抬头
     */
    @ExcelProperty("发票抬头")
    private String title;

    /**
     * 纳税人识别号
     */
    @ExcelProperty("纳税人识别号")
    private String code;

    /**
     * 注册地址
     */
    @ExcelProperty("注册地址")
    private String organizedAddress;

    /**
     * 注册电话
     */
    @ExcelProperty("注册电话")
    private String registerPhone;

    /**
     * 开户银行
     */
    @ExcelProperty("开户银行")
    private String bankName;

    /**
     * 银行账号
     */
    @ExcelProperty("银行账号")
    private String bankAccount;

    /**
     * 收件人姓名
     */
    @ExcelProperty("收件人姓名")
    @ColumnWidth(10)
    private String shipName;

    /**
     * 收件人手机号码
     */
    @ExcelProperty("收件人电话")
    private String shipMobile;

    /**
     * 收货地址
     */
    @ExcelProperty("收货地址")
    private String shipAddress;

    /**
     * 邮箱
     */
    @ExcelProperty("邮箱")
    private String email;

    /**
     * 开票状态（0-否，1-是）
     */
    @Dict(enumClazz = InvoiceRegisterStatus.class)
    @ExcelIgnore
    private Integer invoiced;

    /**
     * 开票状态（0-否，1-是）
     */
    @ExcelProperty("状态")
    @ExcelIgnore
    private String invoicedStr;



}
