package com.yuchen.saas.parking.api.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.nest.springwrap.core.tenant.mp.TenantEntity;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * @author 刘通
 * @version 1.0
 * @date 2021/4/15 19:04
 * 月卡车(固定车)包期规则
 */
@Data
@TableName("pmg_bat_charge_rule")
public class PmgBatChargeRule extends TenantEntity {
    /**
     * 项目Id
     */
    @ApiModelProperty(name = "projectId", value = "项目Id")
    @NotNull(message = "请选择项目")
    private Long projectId;
    /**
     * 停车库唯一标识
     */
    @ApiModelProperty("停车库唯一标识")
    private String parkingId;
    /**
     * 规则名称
     */
    @ApiModelProperty("规则名称")
    private String ruleName;
    /**
     * 车辆类型
     */
    @ApiModelProperty("车辆类型")
    private String vehicleType;
    /**
     * 包期类型（0：包月，1：包年，2：闲时月包）
     */
    @ApiModelProperty("包期类型（0：包月，1：包年，2：闲时月包）")
    private String ruleType;
    /**
     * 闲时月包模板ID（0：工作日计划模板，1：周末计划模板）
     */
    @ApiModelProperty("闲时月包模板ID（0：工作日计划模板，1：周末计划模板）")
    private String leisureModel;
    /**
     * 包期费用(分)
     */
    @ApiModelProperty("包期费用(分)")
    private Long fee;
    /**
     * 0-未产生账单，1-产生账单
     */
    @ApiModelProperty("0-未产生账单，1-产生账单")
    @TableField(exist = false)
    private Integer hasBill;
    /**
     * 包期费用(元)
     */
    @ApiModelProperty("包期费用(元)")
    @TableField(exist = false)
    private Double feeDouble;

    /**
     * 物业分成百分比
     */
    @ApiModelProperty("物业分成百分比")
    private Double propertyPer;


    @Deprecated
    @ApiModelProperty("是否固定车位号:0否,1是")
    private Integer isConstSpaceNo;

//    @NotNull(message = "缴费有效期(天)不能为空")

    @ApiModelProperty("缴费有效期(天)")
    private Integer validityPeriod;
    @ApiModelProperty("是否月卡失效日期限制")
    private Integer isValidityPeriod;

    @ApiModelProperty("开放的月卡数量")
    private Integer residueCard;
    @ApiModelProperty("是否月卡数量限制")
    private Integer isResidueCard;
    @ApiModelProperty(value = "生效开始时间")
    @TableField(value = "begin_time", fill = FieldFill.INSERT)
    private LocalDateTime beginTime;

    @ApiModelProperty(value = "生效结束时间")
    @TableField(value = "end_time", fill = FieldFill.INSERT)
    private LocalDateTime endTime;
    /**
     * 是否默认
     */
    @ApiModelProperty(name = "isDefault", value = "是否默认")
    private Integer isDefault;

    @ApiModelProperty("开放对象(1:公众，2:住户)")
    private Integer accessibleObject;
    @ApiModelProperty("绑定车辆数")
    private Integer bindCarNum;
    @ApiModelProperty("免费车申请(0否1是)")
    private Integer freeApply;
    @ApiModelProperty("最大月份数")
    private Integer maxMonth;
    /**
     * 协议内容
     */
    @ApiModelProperty(name = "protocolContent", value = "协议内容")
    @NotBlank(message = "请输入协议内容")
    private String protocolContent;
    @ApiModelProperty("备注")
    private String remark;
}
