package com.cf.imes.module.system.dal.dataobject.funds.invoice;

import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @author 开票记录表
 */
@TableName("invoice_records")
@KeySequence("invoice_records_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class InvoiceRecordsDO extends BaseDO {

    /**
     * 主键
     */
    @TableId
    private Long id;


    /**
     * 组织ID
     */
    private Long organId;


    /**
     * 组织/发票抬头名称
     */
    private String organName;


    /**
     * 用户ID-发票申请人ID
     */
    private Long userId;


    /**
     * 发票号
     */
    private String invoiceNo;


    /**
     * 购买记录单号
     */
    private String purchaseIds;


    /**
     * 发票金额
     */
    private BigDecimal invoiceAmount;


    /**
     * 发票状态，1待开票 2已开票 3开票失败
     */
    private Integer status;


    /**
     * 发票附件保存路径
     */
    private Long invoiceAttachmentId;

    /**
     * 开票附件名称
     */
    private String invoiceAttachmentName;


    /**
     * 开票人
     */
    private String invoicePerson;


    /**
     * 开票人用户ID
     */
    private Long invoicePersonId;


    /**
     * 开票时间
     */
    private LocalDateTime invoiceTime;



    /**
     * 抬头ID
     */
    private Long invoiceTitleId;


    /**
     * 抬头
     */
    private String invoiceTitleInfo;


    /**
     * 备注
     */
    private String remark;

}
