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

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

@Data
@ApiModel(value = "账单设置", description = "")
public class PropertyBillingSettingsSaveDto implements Serializable, Cloneable {
    /**
     * id主键
     */
    @ApiModelProperty(name = "id主键", notes = "")
    private Long id;
    /**
     * 园区id
     */
    @NotNull(message = "园区不能为空")
    @ApiModelProperty(name = "园区id", notes = "")
    private Long parkId;
    /**
     * 账单金额取舍方式：1-四舍五入，2-直接舍掉
     */
    @NotNull(message = "账单金额取舍方式不能为空")
    @Range(min = 1, max = 2, message = "账单金额取舍参数不对")
    @ApiModelProperty(name = "账单金额取舍方式：1-四舍五入，2-直接舍掉", notes = "")
    private Integer tradeOffType;
    /**
     * 账单金额保留位数
     */
    @ApiModelProperty(name = "账单金额保留位数", notes = "")
    @Range(min = 0, max = 2, message = "金额保留位数，请输入0~2的整数")
    private Integer amountDigitsType;
    /**
     * 电量仪表保留位数
     */
    @NotNull(message = "电量仪表保留位数不能为空")
    @ApiModelProperty(name = "电量仪表保留位数", notes = "")
    @Range(min = 0, max = 2, message = "仪表用量保留位数，请输入0~2的整数")
    private Integer meterDigitsType;
    /**
     * 0元账单自动变成已结账单：1-是，0-否
     */
    @ApiModelProperty(name = "0元账单自动变成已结账单：1-是，0-否", notes = "")
//    @Range(min = 0, max = 1, message = "0元账单自动变成已结账单参数不对")
    private Integer zeroBillStatus;
    /**
     * 是否开启自动生成账单：1-是，0-否
     */
    @ApiModelProperty(name = "是否开启自动生成账单：1-是，0-否", notes = "")
//    @Range(min = 0, max = 1, message = "是否开启自动生成账单参数不对")
    private Integer autoBillStatus;
    /**
     * 第一次自动生成账单
     */
    @ApiModelProperty(name = "第一次自动生成账单", notes = "")
    @Range(min = 1, max = 28, message = "第一次自动生成账单日期参数不对")
    private Integer autoFirstDay;
    /**
     * 第二次自动生成账单
     */
    @ApiModelProperty(name = "第二次自动生成账单", notes = "")
    @Range(min = 1, max = 28, message = "第二次自动生成账单日期参数不对")
    private Integer autoSecondDay;
    /**
     * 是否开启自动冲抵预存款：1-是，0-否
     */
    @ApiModelProperty(name = "是否开启自动冲抵预存款：1-是，0-否", notes = "")
//    @Range(min = 0, max = 1, message = "是否开启自动冲抵预存款参数不对")
    private Integer autoSeductionStatus;
    /**
     * 自动冲抵账单
     */
    @ApiModelProperty(name = "自动冲抵账单", notes = "")
//    @Range(min = 1, max = 28, message = "自动冲抵账单日期参数不对")
    private Integer autoSeductionDay;
}
