package com.zksy.property.domain;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

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

/**
 * 租户信息管理表
 * @TableName a_tenant_management
 */
@TableName(value ="a_tenant_management")
@Data
public class ATenantManagement implements Serializable {
    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_UUID)
    @ApiModelProperty(value = "主键")
    @ExcelIgnore
    private String id;

    /**
     * 租户类型(1 = 个人，2 = 企业)
     */
    @ApiModelProperty(value = "租户类型(个人，企业)")
    @ExcelProperty(value = "租户类型(个人，企业)")
    private String tenantType;

    /**
     * 个人租户姓名
     */
    @ApiModelProperty(value = "个人租户姓名")
    @ExcelProperty(value = "个人租户姓名")
    private String personalName;

    /**
     * 个人身份证号
     */
    @ApiModelProperty(value = "个人身份证号")
    @ExcelProperty(value = "个人身份证号")
    private String idCard;

    /**
     * 企业租户名称
     */
    @ApiModelProperty(value = "企业租户名称")
    @ExcelProperty(value = "企业租户名称")
    private String companyName;

    /**
     * 企业统一社会信用代码
     */
    @ApiModelProperty(value = "企业统一社会信用代码")
    @ExcelProperty(value = "企业统一社会信用代码")
    private String creditCode;

    /**
     * 企业法定代表人姓名
     */
    @ApiModelProperty(value = "企业法定代表人姓名")
    @ExcelProperty(value = "企业法定代表人姓名")
    private String legalRep;

    /**
     * 房产名称
     */
    @ApiModelProperty(value = "房产名称")
    @ExcelProperty(value = "房产名称")
    private String propertyName;

    /**
     * 房产地址
     */
    @ApiModelProperty(value = "房产地址")
    @ExcelProperty(value = "房产地址")
    private String propertyAddr;

    /**
     * 租赁开始日期
     */
    @ApiModelProperty(value = "租赁开始日期")
    @ExcelProperty(value = "租赁开始日期")
    private LocalDate leaseStart;

    /**
     * 租赁结束日期
     */
    @ApiModelProperty(value = "租赁结束日期")
    @ExcelProperty(value = "租赁结束日期")
    private LocalDate leaseEnd;

    /**
     * 月租金金额
     */
    @ApiModelProperty(value = "月租金金额")
    @ExcelProperty(value = "月租金金额")
    private BigDecimal rentAmount;

    /**
     * 押金金额
     */
    @ApiModelProperty(value = "押金金额")
    @ExcelProperty(value = "押金金额")
    private BigDecimal depositAmount;

    /**
     * 押金状态(1 = 已缴纳，2 = 已退还，3 = 扣除中)
     */
    @ApiModelProperty(value = "押金状态(已缴纳，已退还，扣除中)")
    @ExcelProperty(value = "押金状态(已缴纳， 已退还，扣除中)")
    private String depositStatus;

    /**
     * 租赁合同编号
     */
    @ApiModelProperty(value = "租赁合同编号")
    @ExcelProperty(value = "租赁合同编号")
    private String contractNo;

    /**
     * 合同文件存储路径
     */
    @ApiModelProperty(value = "租赁合同文件存储路径")
    @ExcelProperty(value = "租赁合同文件存储路径")
    private String contractPath;

    /**
     * 主要联系电话
     */
    @ApiModelProperty(value = "主要联系电话")
    @ExcelProperty(value = "主要联系电话")
    private String contactPhone;

    /**
     * 紧急联系人姓名
     */
    @ApiModelProperty(value = "紧急联系人姓名")
    @ExcelProperty(value = "紧急联系人姓名")
    private String emergencyName;

    /**
     * 紧急联系人电话
     */
    @ApiModelProperty(value = "紧急联系人电话")
    @ExcelProperty(value = "紧急联系人电话")
    private String emergencyPhone;

    /**
     * 欠费金额
     */
    @ApiModelProperty(value = "欠费金额")
    @ExcelProperty(value = "欠费金额")
    private BigDecimal arrearsAmount;

    /**
     * 最后支付日期
     */
    @ApiModelProperty(value = "最后支付日期")
    @ExcelProperty(value = "最后支付日期")
    private LocalDate lastPaymentDate;

    /**
     * 租户状态(1 = 入住中，2 = 已退房，3 = 违约，4 = 待入)
     */
    @ApiModelProperty(value = "租户状态(入住中，已退房，违约，待入)")
    @ExcelProperty(value = "租户状态(入住中，已退房，违约，待入)")
    private String tenantStatus;

    /**
     * 退房日期
     */
    @ApiModelProperty(value = "退房日期")
    @ExcelProperty(value = "退房日期")
    private LocalDate moveOutDate;

    /**
     * 违约记录
     */
    @ApiModelProperty(value = "违约记录")
    @ExcelProperty(value = "违约记录")
    private String defaultRecord;

    /**
     * 记录创建时间
     */
    @ApiModelProperty(value = "记录创建时间")
    @ExcelIgnore
    private LocalDateTime createTime;

    /**
     * 创建人账号
     */
    @ApiModelProperty(value = "创建人账号")
    @ExcelIgnore
    private String createUser;

    /**
     * 最后更新时间
     */
    @ApiModelProperty(value = "最后更新时间")
    @ExcelIgnore
    private LocalDateTime updateTime;

    /**
     * 最后更新人账号
     */
    @ApiModelProperty(value = "最后更新人账号")
    @ExcelIgnore
    private String updateUser;

    /**
     * 备注信息
     */
    @ApiModelProperty(value = "备注信息")
    @ExcelProperty(value = "备注信息")
    private String remark;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}