package com.fdkankan.manage.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@TableName("t_invoice")
public class Invoice implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 订单表t_order的id
     */
    @TableField("order_id")
    private Long orderId;

    /**
     * 订单表t_virtual_order的id  消费
     */
    @TableField("virtual_order_id")
    private Long virtualOrderId;

    /**
     * 订单表t_increment_order的id  权益
     */
    @TableField("increment_order_id")
    private Long incrementOrderId;

    /**
     * 用户表t_user的id
     */
    @TableField("user_id")
    private Long userId;

    /**
     * 发票类型，1表示不需要发票，2表示增值税普通发票，3表示增值税专用发票
     */
    @TableField("type")
    private Integer type;

    /**
     * 发票抬头(个人还是公司)
     */
    @TableField("title")
    private String title;

    /**
     * 税号
     */
    @TableField("code")
    private String code;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private Date createTime;

    /**
     * 公司名称
     */
    @TableField("organized_name")
    private String organizedName;

    /**
     * 公司地址
     */
    @TableField("organized_address")
    private String organizedAddress;

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

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

    /**
     * 银行账户
     */
    @TableField("bank_account")
    private String bankAccount;

    /**
     * 0表示购买相机，1表示充值，2会员权益, 3下载订单
     */
    @TableField("consume_type")
    private Integer consumeType;

    /**
     * 开票金额
     */
    @TableField("money")
    private BigDecimal money;

    /**
     * 相机主表t_camera的id
     */
    @TableField("camera_id")
    private Long cameraId;

    /**
     * 0：发票未开，1：发票已开,2:已发出
     */
    @TableField("finish")
    private Integer finish;

    /**
     * 电子发票收件邮箱
     */
    @TableField("email_address")
    private String emailAddress;

    /**
     * 记录的状态，A: 生效，I: 禁用
     */
    @TableLogic(value="A",delval = "I")
    @TableField("rec_status")
    private String recStatus;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private Date updateTime;

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

    /**
     * 收货地区
     */
    @TableField("ship_area")
    private String shipArea;

    /**
     * 收货地区路径
     */
    @TableField("ship_area_path")
    private String shipAreaPath;

    /**
     * 收货手机
     */
    @TableField("ship_mobile")
    private String shipMobile;

    /**
     * 收货人姓名
     */
    @TableField("ship_name")
    private String shipName;

    /**
     * 收货电话
     */
    @TableField("ship_phone")
    private String shipPhone;

    /**
     * 收货邮编
     */
    @TableField("ship_zip_code")
    private String shipZipCode;

    /**
     * 发送状态：0未发送，1快递发送，2邮箱发送
     */
    @TableField("send")
    private Integer send;

    /**
     * 快递公司
     */
    @TableField("express_company")
    private String expressCompany;

    /**
     * 快递单号
     */
    @TableField("express_number")
    private String expressNumber;

    /**
     * 电子发票存放url
     */
    @TableField("e_invoice")
    private String eInvoice;

    /**
     * 备注
     */
    @TableField("remarks")
    private String remarks;

    /**
     * 订单表t_download_order的id  权益
     */
    @TableField("download_order_id")
    private Long downloadOrderId;

    /**
     * 开票状态（0-否，1-是）
     */
    @TableField("invoiced")
    private Integer invoiced;

}
