package com.hc.business.model;


import java.io.Serializable;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;


@Data
public class UserInvoices implements Serializable {

    private static final long serialVersionUID = 920828576723593539L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @ApiModelProperty(value = "ID")
    private Integer userInvoicesId;

    /**
     * 抬头
     */
    @ApiModelProperty(value = "抬头", required = true)
    private String invoicesHead;

    /**
     * 发票类型，12普票专票
     */
    @ApiModelProperty(value = "发票类型，12普票专票", required = true)
    private Integer invoicesType;

    /**
     * 税号
     */
    @ApiModelProperty(value = "税号", required = true)
    private String invoicesCode;

    /**
     * 开户行
     */
    @ApiModelProperty(value = "开户行")
    private String invoicesBank;

    /**
     * 开户名
     */
    @ApiModelProperty(value = "开户名")
    private String invoicesUser;

    /**
     * 开户账号
     */
    @ApiModelProperty(value = "开户账号")
    private String invoicesNo;

    /**
     * 发票金额
     */
    @ApiModelProperty(value = "发票金额")
    private Double invoicesPrice;

    @ApiModelProperty(value = "单位地址")
    private String invoicesAddress;

    @ApiModelProperty(value = "单位电话")
    private String invoicesTel;

    /**
     * 申请日期
     */
    @ApiModelProperty(value = "申请日期")
    private Long createTime;

    /**
     * 处理状态 0无效 1有效
     */
    @ApiModelProperty(value = "处理状态 0无效 1有效")
    private Integer status;

    /**
     * 处理日期
     */
    @ApiModelProperty(value = "处理日期")
    private Long time;

    /**
     * 用户ID
     */
    @ApiModelProperty(value = "用户ID")
    private Integer userId;

    /**
     * 班次id
     */
    @ApiModelProperty(value = "班次id")
    private Integer classId;

    /**
     * 前台发票备注
     */
    @ApiModelProperty(value = "前台发票备注")
    private String remarks;

    /**
     * 后台发票标记
     */
    @ApiModelProperty(value = "后台发票标记")
    private String remarksSign;

    /**
     * 发票代码
     */
    @ApiModelProperty(value = "发票代码")
    private String taxCode;

    @ApiModelProperty(value = "发票号")
    private String taxNo;

    @ApiModelProperty(value = "红票发票号")
    private String taxNoRed;

    /**
     * 关联订单
     */
    @ApiModelProperty(value = "关联订单")
    private Integer orderId;

    /**
     * 电话
     */
    @ApiModelProperty(value = "电话")
    private String buyerPhone;

    /**
     * 邮件
     */
    @ApiModelProperty(value = "邮件")
    private String buyerEmail;

    /**
     * 联系人姓名
     */
    @ApiModelProperty(value = "联系人姓名")
    private String buyerLinker;

    /**
     * 收件地址
     */
    @ApiModelProperty(value = "收件地址")
    private String buyerAddress;

    /**
     * 匹配订单号
     */
    @ApiModelProperty(value = "匹配订单号")
    private String syncOrderNo;

    /**
     * nono，发票所处状态-1不开只记录， 0申请中 10申请成功，20开票完成，30开票失败，40开票成功签章失败， 50作废申请，60未作废 70作废中 80作废失败 90作废成功
     */
    @ApiModelProperty(value = "nono，发票所处状态-1不开只记录， 0申请中 10申请成功，20开票完成，30开票失败，40开票成功签章失败， 50作废申请，60未作废 70作废中 80作废失败 90作废成功", required = true)
    private Integer syncStatus;

    /**
     * 当前失败状态的原因
     */
    @ApiModelProperty(value = "当前失败状态的原因")
    private String syncMsg;


    @ApiModelProperty(value = "流水号")
    private String syncSerialNum;

    @ApiModelProperty(value = "红票流水号")
    private String syncSerialRedNum;
    /**
     * 发票pdf地址（若同时返回了ofdUrl与pdfUrl，则pdf文件不能做为原始凭证，请用ofd文件做为原始凭证）
     */
    @ApiModelProperty(value = "发票pdf地址（若同时返回了ofdUrl与pdfUrl，则pdf文件不能做为原始凭证，请用ofd文件做为原始凭证）")
    private String syncUrl;

    @ApiModelProperty(value = "红票发票pdf地址（若同时返回了ofdUrl与pdfUrl，则pdf文件不能做为原始凭证，请用ofd文件做为原始凭证）")
    private String syncUrlRed;

    /**
     * 纸质URL地址
     */
    @ApiModelProperty(value = "纸质URL地址")
    private String syncPaperUrl;

    /**
     * 发票ofd地址
     */
    @ApiModelProperty(value = "发票ofd地址")
    private String syncOfdUrl;
}
