package com.yuchen.saas.park.api.entity.property;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.nest.springwrap.core.mp.base.BaseEntity;

import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 物业-收费-应收管理-应收账单
 * </p>
 *
 * @author baichaojie
 * @since 2024-09-12
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("saas_park_property_receivable_manage")
@ApiModel(value="SaasParkPropertyReceivableManage对象", description="物业-收费-应收管理-应收账单")
public class SaasParkPropertyReceivableManage extends BaseEntity {

    /**
     * 项目id
     */
    @ApiModelProperty(name = "parkId", value = "项目id")
    private Long parkId;
    /**
     * 费用分类名称
     */
    @ApiModelProperty(name = "personName", value = "费用分类名称")
    private String personName;
    /**
     * 客户id
     */
    @ApiModelProperty(name = "personId", value = "客户id")
    private Long personId;
    /**
     * 房源
     */
    @ApiModelProperty(name = "roomName", value = "房源")
    private String roomName;
    /**
     * 房源id
     */
    @ApiModelProperty(name = "roomid", value = "房源id")
    private Long roomid;
    /**
     * 合同编号
     */
    @ApiModelProperty(name = "contractNumber", value = "合同编号")
    private String contractNumber;
    /**
     * 收费状态(0未收费、1待确认、2已收费)
     */
    @ApiModelProperty(name = "feeStatus", value = "收费状态(0未收费、1待确认、2已收费)")
    private Integer feeStatus;
    /**
     * 费用类型id
     */
    @ApiModelProperty(name = "feeItemId", value = "费用类型id")
    private Long feeItemId;
    /**
     * 账单金额
     */
    @ApiModelProperty(name = "billAmount", value = "账单金额")
    private Float billAmount;
    /**
     * 应收金额
     */
    @ApiModelProperty(name = "accountsReceivableAmount", value = "应收金额")
    private Float accountsReceivableAmount;
    /**
     * 需收金额
     */
    @ApiModelProperty(name = "amountToBeCollected", value = "需收金额")
    private Float amountToBeCollected;
    /**
     * 实收金额
     */
    @ApiModelProperty(name = "actualReceivedAmount", value = "实收金额")
    private Float actualReceivedAmount;
    /**
     * 税率
     */
    @ApiModelProperty(name = "taxRate", value = "税率")
    private BigDecimal taxRate;
    /**
     * 税额
     */
    @ApiModelProperty(name = "taxAmount", value = "税额")
    private Float taxAmount;
    /**
     * 逾期状态(0未逾期、1已逾期)
     */
    @ApiModelProperty(name = "overdueStatus", value = "逾期状态(0未逾期、1已逾期)")
    private Integer overdueStatus;
    /**
     * 缴费通知单
     */
    @ApiModelProperty(name = "paymentNotice", value = "缴费通知单")
    private String paymentNotice;
    /**
     * 开始时间
     */
    @ApiModelProperty(name = "startTime", value = "开始时间")
    private Date startTime;
    /**
     * 结束时间
     */
    @ApiModelProperty(name = "endTime", value = "结束时间")
    private Date endTime;
    /**
     * 应收日期
     */
    @ApiModelProperty(name = "accountsReceivableDate", value = "应收日期")
    private Date accountsReceivableDate;
    /**
     * 滞纳金
     */
    @ApiModelProperty(name = "lateFee", value = "滞纳金")
    private Float lateFee;
    /**
     * 调整金额
     */
    @ApiModelProperty(name = "adjustTheAmount", value = "调整金额")
    private Float adjustTheAmount;

    /**
     * 转入金额
     */
    @ApiModelProperty(name = "transferMoney", value = "转入金额")
    private Float transferMoney;

    /**
     * 减免金额
     */
    @ApiModelProperty(name = "reductionAmount", value = "减免金额")
    private Float reductionAmount;
    /**
     * 账单状态(0未出账、1已出账、2已冻结、3已作废)
     */
    @ApiModelProperty(name = "billStatus", value = "账单状态(0未出账、1已出账、2已冻结、3已作废)")
    private Integer billStatus;
    /**
     * 账单类型(0物业服务费、1保证金、2租赁押金)
     */
    @ApiModelProperty(name = "billType", value = "账单类型(0物业服务费、1保证金、2租赁押金)")
    private Integer billType;
    /**
     * 账单来源(0临时收费、1账单拆分、2租赁合同、3自动生成)
     */
    @ApiModelProperty(name = "billSource", value = "账单来源(0临时收费、1账单拆分、2租赁合同、3自动生成)")
    private Integer billSource;
    /**
     * 收费标准
     */
    @ApiModelProperty(name = "feeStandards", value = "收费标准")
    private String feeStandards;
    /**
     * 单价
     */
    @ApiModelProperty(name = "unitPrice", value = "单价")
    private Float unitPrice;
    /**
     * 仪表名称
     */
    @ApiModelProperty(name = "meterName", value = "仪表名称")
    private String meterName;
    /**
     * 用量
     */
    @ApiModelProperty(name = "consumption", value = "用量")
    private BigDecimal consumption;
    /**
     * 上期读数
     */
    @ApiModelProperty(name = "previousReading", value = "上期读数")
    private BigDecimal previousReading;
    /**
     * 本期读数
     */
    @ApiModelProperty(name = "currentReading", value = "本期读数")
    private BigDecimal currentReading;
    /**
     * 计费面积
     */
    @ApiModelProperty(name = "feeArea", value = "计费面积")
    private BigDecimal feeArea;
    /**
     * 合同状态(预留字段)
     */
    @ApiModelProperty(name = "contractStatus", value = "合同状态(预留字段)")
    private Integer contractStatus;
    /**
     * 滞纳金状态(0无、1有)
     */
    @ApiModelProperty(name = "latePaymentFeeStatus", value = "滞纳金状态(0无、1有)")
    private Integer latePaymentFeeStatus;
    /**
     * 创建开始时间
     */
    @ApiModelProperty(name = "createStartTime", value = "创建开始时间")
    private Date createStartTime;
    /**
     * 创建结束时间
     */
    @ApiModelProperty(name = "createEndTime", value = "创建结束时间")
    private Date createEndTime;
    /**
     * 最新入账开始时间
     */
    @ApiModelProperty(name = "latestEntryStartTime", value = "最新入账开始时间")
    private Date latestEntryStartTime;
    /**
     * 最新入账结束时间
     */
    @ApiModelProperty(name = "latestEntryEndTime", value = "最新入账结束时间")
    private Date latestEntryEndTime;
    /**
     * 开具收据状态(0未开、1已开)
     */
    @ApiModelProperty(name = "lssuanceReceiptsStatus", value = "开具收据状态(0未开、1已开)")
    private Integer lssuanceReceiptsStatus;
    /**
     * 开具状态(0未开、1已开)
     */
    @ApiModelProperty(name = "lssuanceStatus", value = "开具状态(0未开、1已开)")
    private Integer lssuanceStatus;
    /**
     * 开票记录状态(0未开、1已开)
     */
    @ApiModelProperty(name = "lnvoiceRecordStatus", value = "开票记录状态(0未开、1已开)")
    private Integer lnvoiceRecordStatus;
    /**
     * 项目
     */
    @ApiModelProperty(name = "parkName", value = "项目")
    private String parkName;
    /**
     * 楼宇
     */
    @ApiModelProperty(name = "buildingName", value = "楼宇")
    private String buildingName;
    /**
     * 楼宇id
     */
    @ApiModelProperty(name = "buildingId", value = "楼宇id")
    private Long buildingId;
    /**
     * 仪表id
     */
    @ApiModelProperty(name = "meterId", value = "仪表id")
    private Long meterId;
    /**
     * 缴费通知单id
     */
    @ApiModelProperty(name = "paymentNoticeId", value = "缴费通知单id")
    private Long paymentNoticeId;
    /**
     * 收费标准id
     */
    @ApiModelProperty(name = "feeStandardsId", value = "收费标准id")
    private Long feeStandardsId;



}
