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

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
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.tenant.mp.TenantEntity;

/**
 * <p>
 * 物业-收费-收费设置-收费标准_收费标准
 * </p>
 *
 * @author zhouhanwei
 * @since 2024-09-10
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("saas_park_property_fee_standards")
@ApiModel(value="SaasParkPropertyFeeStandards对象", description="物业-收费-收费设置-收费标准_收费标准")
public class SaasParkPropertyFeeStandards extends TenantEntity {

    /**
     * 标准名称
     */
    @ApiModelProperty(name = "standardsName", value = "标准名称")
    private String standardsName;
    /**
     * 计费模式(1单价、2固定金额、3指定金额)
     */
    @ApiModelProperty(name = "feeModel", value = "计费模式(1单价、2固定金额、3指定金额)")
    private Integer feeModel;
    /**
     * 单价
     */
    @ApiModelProperty(name = "unitPrice", value = "单价")
    private Long unitPrice;
    /**
     * 生效项目
     */
    @ApiModelProperty(name = "startProject", value = "生效项目")
    private Date startProject;
    /**
     * 绑定对象(1房间、2车位、3服务)
     */
    @ApiModelProperty(name = "bingObject", value = "绑定对象(1房间、2车位、3服务)")
    private Integer bingObject;
    /**
     * 绑定列表
     */
    @ApiModelProperty(name = "bingId", value = "绑定列表")
    private Date bingId;
    /**
     * 标准生效时间
     */
    @ApiModelProperty(name = "startTime", value = "标准生效时间")
    private Date startTime;
    /**
     * 标准失效时间
     */
    @ApiModelProperty(name = "overTime", value = "标准失效时间")
    private Date overTime;
    /**
     * 计费单位(1按周期*面积、2按周期、3按用量、4按数量)
     */
    @ApiModelProperty(name = "feeUnit", value = "计费单位(1按周期*面积、2按周期、3按用量、4按数量)")
    private Integer feeUnit;
    /**
     * 计费周期(1天、2月、3季、4年)
     */
    @ApiModelProperty(name = "feeCycle", value = "计费周期(1天、2月、3季、4年)")
    private Integer feeCycle;
    /**
     * 计费面积
     */
    @ApiModelProperty(name = "feeArea", value = "计费面积")
    private BigDecimal feeArea;
    /**
     * 不按整月时(1按实际天数收费、2按月份收费)
     */
    @ApiModelProperty(name = "noMonth", value = "不按整月时(1按实际天数收费、2按月份收费)")
    private Integer noMonth;
    /**
     * 不整月折合单价
     */
    @ApiModelProperty(name = "noMonthPrice", value = "不整月折合单价")
    private Float noMonthPrice;
    /**
     * 账单周期
     */
    @ApiModelProperty(name = "accountCycle", value = "账单周期")
    private Integer accountCycle;
    /**
     * 账单划分(1按起始日期划分,从起始日到1个月后的同日的前1日算1笔账单、2按自然月划分,首月非自然月划为第一笔账单,第二笔账单从下月1日开始、3按自然月划分,首月非整自然月算1个月)
     */
    @ApiModelProperty(name = "accountDivide", value = "账单划分(1按起始日期划分,从起始日到1个月后的同日的前1日算1笔账单、2按自然月划分,首月非自然月划为第一笔账单,第二笔账单从下月1日开始、3按自然月划分,首月非整自然月算1个月)")
    private Integer accountDivide;
    /**
     * 付款时间
     */
    @ApiModelProperty(name = "payTime", value = "付款时间")
    private Date payTime;
    /**
     * 在账单开始日期提前多久生成账单
     */
    @ApiModelProperty(name = "createOrderBeforStart", value = "在账单开始日期提前多久生成账单")
    private Integer createOrderBeforStart;
    /**
     * 违约金起算天数
     */
    @ApiModelProperty(name = "penaltyStartDay", value = "违约金起算天数")
    private Integer penaltyStartDay;
    /**
     * 违约金收取比例(每天)
     */
    @ApiModelProperty(name = "penaltyRatio", value = "违约金收取比例(每天)")
    private BigDecimal penaltyRatio;
    /**
     * 违约金收取上限
     */
    @ApiModelProperty(name = "penaltyMax", value = "违约金收取上限")
    private Float penaltyMax;
    /**
     * 仪表类型(1水表、2电表、3天然气表、4其他)
     */
    @ApiModelProperty(name = "meterType", value = "仪表类型(1水表、2电表、3天然气表、4其他)")
    private Integer meterType;
    /**
     * 数量
     */
    @ApiModelProperty(name = "count", value = "数量")
    private Integer count;
    /**
     * 固定金额
     */
    @ApiModelProperty(name = "fixedAmount", value = "固定金额")
    private Float fixedAmount;
    /**
     * 指定金额
     */
    @ApiModelProperty(name = "specifyAmount", value = "指定金额")
    private Float specifyAmount;



}
