package com.iformall.domain.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.iformall.common.SortColumn;
import com.iformall.domain.po.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.util.List;

/**
 * @author gongbiao
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class WxBillAll extends BaseEntity {

    @io.swagger.annotations.ApiModelProperty(value="appId",name="appId")
    private String appId;

    @io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId")
    private String tenantId;

    @io.swagger.annotations.ApiModelProperty(value="商户名称",name="merchantName")
    private String merchantName;

    @io.swagger.annotations.ApiModelProperty(value="账单类型",name="billTypeValue")
    private Integer billTypeValue;

    @io.swagger.annotations.ApiModelProperty(value="状态",name="status")
    private Integer status;

    @io.swagger.annotations.ApiModelProperty(value="日期",name="month")
    private String month;

    @io.swagger.annotations.ApiModelProperty(value="开始时间",name="starttime")
    private String starttime;

    @io.swagger.annotations.ApiModelProperty(value="结束时间",name="endtime")
    private String endtime;

    @io.swagger.annotations.ApiModelProperty(value="商户Id",name="merchantId")
    private Long merchantId;

    @TableField(exist = false)
    private String statusListStr;
    @TableField(exist = false)
    private String typeListStr;

    @io.swagger.annotations.ApiModelProperty(value="多个状态",name="statusList")
    private List<Integer> statusList;

    @io.swagger.annotations.ApiModelProperty(value="多个账单类型",name="typeList")
    private List<Integer> typeList;

    @io.swagger.annotations.ApiModelProperty(value="页码",name="pageIndex")
    private Integer pageIndex;

    @io.swagger.annotations.ApiModelProperty(value="条数",name="pageSize")
    private Integer pageSize;

    @io.swagger.annotations.ApiModelProperty(value="id",name="id")
    private Long id;

    @io.swagger.annotations.ApiModelProperty(value = "租赁店铺类型", name = "rentShopType")
    private Integer rentShopType;

    //费用收缴数据
    @io.swagger.annotations.ApiModelProperty(value = "欠缴租金", name = "rentOwe")
    @SortColumn(column = "rentOwe")
    private Integer rentOwe;
    @io.swagger.annotations.ApiModelProperty(value = "欠缴物业费", name = "propertyOwe")
    @SortColumn(column = "propertyOwe")
    private Integer propertyOwe;
    @io.swagger.annotations.ApiModelProperty(value = "欠缴押金", name = "depositOwe")
    @SortColumn(column = "depositOwe")
    private Integer depositOwe;
    @io.swagger.annotations.ApiModelProperty(value = "欠缴其他费用", name = "otherOwe")
    @SortColumn(column = "otherOwe")
    private Integer otherOwe;
    @io.swagger.annotations.ApiModelProperty(value = "欠缴总额", name = "totalOwe")
    @SortColumn(column = "totalOwe")
    private Integer totalOwe;

    private List<Integer> billTypeList;


    @TableField(exist = false)
    @SortColumn(column = "rentReceivePay")
    private Integer rentReceivePay;
    @TableField(exist = false)
    @SortColumn(column = "propertyReceivePay")
    private Integer propertyReceivePay;
    @TableField(exist = false)
    @SortColumn(column = "depositReceivePay")
    private Integer depositReceivePay;
    @TableField(exist = false)
    @SortColumn(column = "otherReceivePay")
    private Integer otherReceivePay;
    @TableField(exist = false)
    @SortColumn(column = "totalReceivePay")
    private Integer totalReceivePay;
    @TableField(exist = false)
    @SortColumn(column = "shopNumber")
    private String shopNumber;
    @TableField(exist = false)
    @SortColumn(column = "receivePay")
    private Integer receivePay;
    @TableField(exist = false)
    @SortColumn(column = "pay")
    private Integer pay;
    @TableField(exist = false)
    @SortColumn(column = "owe")
    private Integer owe;
    @TableField(exist = false)
    private String receiveDate;
    @TableField(exist = false)
    @SortColumn(column = "payDate")
    private String payDate;


    @TableField(exist = false)
    @io.swagger.annotations.ApiModelProperty(value = "过滤已收金额1过滤", name = "filterHasPay")
    private Integer filterHasPay;


    @io.swagger.annotations.ApiModelProperty(value = "金额旧值", name = "oldPrice")
    private Long oldPrice;
    @io.swagger.annotations.ApiModelProperty(value = "金额新值", name = "newPrice")
    private Long newPrice;

    //滞纳金
    @TableField(exist = false)
    private Long oldLatePrice;
    @TableField(exist = false)
    private Long newLatePrice;

    @TableField(exist = false)
    @SortColumn(column = "payOut")
    private Integer payOut;

    @TableField(exist = false)
    private Integer balance;


    @TableField(exist = false)
    @io.swagger.annotations.ApiModelProperty(value = "冻结状态0正常1冻结", name = "freeze")
    private Integer freeze;

    @io.swagger.annotations.ApiModelProperty(value = "多个类型", name = "typeStr")
    private String typeStr;


    @TableField(exist = false)
    private Integer servicePayRate;

    @TableField(exist = false)
    private Integer limitStart;
    @TableField(exist = false)
    private Integer limitEnd;

}
