package com.mortals.xhx.module.attendance.model;

import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.vo.AttendanceGroupFreeworkSpecialVo;
/**
 * 考勤组考勤自由工时特殊日期配置实体对象
 *
 * @author zxfei
 * @date 2023-04-10
 */

public class AttendanceGroupFreeworkSpecialEntity extends AttendanceGroupFreeworkSpecialVo {
    private static final long serialVersionUID = 1L;

    /**
     * 自由工时考勤配置id
     */
    private Long freeWorkId;
    /**
     * 是否必须打卡的日期，当为1时有班次相关信息，否则有无需打卡时间段信息(0.否,1.是)
     */
    private Integer must;
    /**
     * 班次ID
     */
    private Long classId;
    /**
     * 班次名称
     */
    private String className;
    /**
     * 无需打卡的日期类型(0.单个日期,1.时间段)
     */
    private Integer addWay;
    /**
     * 特殊时间
     */
    private Date specialTime;
    /**
     * 备注
     */
    private String remark;
    /**
     * 时间段时候开始时间
     */
    private Date specialStartTime;
    /**
     * 时间段结束时间
     */
    private Date specialEndTime;



    public AttendanceGroupFreeworkSpecialEntity(){}
    /**
     * 获取 自由工时考勤配置id
     * @return Long
     */
    public Long getFreeWorkId(){
        return freeWorkId;
    }
    /**
     * 设置 自由工时考勤配置id
     * @param freeWorkId
     */
    public void setFreeWorkId(Long freeWorkId){
        this.freeWorkId = freeWorkId;
    }
    /**
     * 获取 是否必须打卡的日期，当为1时有班次相关信息，否则有无需打卡时间段信息(0.否,1.是)
     * @return Integer
     */
    public Integer getMust(){
        return must;
    }
    /**
     * 设置 是否必须打卡的日期，当为1时有班次相关信息，否则有无需打卡时间段信息(0.否,1.是)
     * @param must
     */
    public void setMust(Integer must){
        this.must = must;
    }
    /**
     * 获取 班次ID
     * @return Long
     */
    public Long getClassId(){
        return classId;
    }
    /**
     * 设置 班次ID
     * @param classId
     */
    public void setClassId(Long classId){
        this.classId = classId;
    }
    /**
     * 获取 班次名称
     * @return String
     */
    public String getClassName(){
        return className;
    }
    /**
     * 设置 班次名称
     * @param className
     */
    public void setClassName(String className){
        this.className = className;
    }
    /**
     * 获取 无需打卡的日期类型(0.单个日期,1.时间段)
     * @return Integer
     */
    public Integer getAddWay(){
        return addWay;
    }
    /**
     * 设置 无需打卡的日期类型(0.单个日期,1.时间段)
     * @param addWay
     */
    public void setAddWay(Integer addWay){
        this.addWay = addWay;
    }
    /**
     * 获取 特殊时间
     * @return Date
     */
    public Date getSpecialTime(){
        return specialTime;
    }
    /**
     * 设置 特殊时间
     * @param specialTime
     */
    public void setSpecialTime(Date specialTime){
        this.specialTime = specialTime;
    }
    /**
     * 获取 备注
     * @return String
     */
    public String getRemark(){
        return remark;
    }
    /**
     * 设置 备注
     * @param remark
     */
    public void setRemark(String remark){
        this.remark = remark;
    }
    /**
     * 获取 时间段时候开始时间
     * @return Date
     */
    public Date getSpecialStartTime(){
        return specialStartTime;
    }
    /**
     * 设置 时间段时候开始时间
     * @param specialStartTime
     */
    public void setSpecialStartTime(Date specialStartTime){
        this.specialStartTime = specialStartTime;
    }
    /**
     * 获取 时间段结束时间
     * @return Date
     */
    public Date getSpecialEndTime(){
        return specialEndTime;
    }
    /**
     * 设置 时间段结束时间
     * @param specialEndTime
     */
    public void setSpecialEndTime(Date specialEndTime){
        this.specialEndTime = specialEndTime;
    }




    @Override
    public int hashCode() {
        return this.getId().hashCode();
    }
    @Override
    public boolean equals(Object obj) {
        if (obj == null) return false;
        if (obj instanceof AttendanceGroupFreeworkSpecialEntity) {
            AttendanceGroupFreeworkSpecialEntity tmp = (AttendanceGroupFreeworkSpecialEntity) obj;
            if (this.getId() == tmp.getId()) {
                return true;
            }
        }
        return false;
    }

    public String toString(){
        StringBuilder sb = new StringBuilder("");
        sb.append(",freeWorkId:").append(getFreeWorkId());
        sb.append(",must:").append(getMust());
        sb.append(",classId:").append(getClassId());
        sb.append(",className:").append(getClassName());
        sb.append(",addWay:").append(getAddWay());
        sb.append(",specialTime:").append(getSpecialTime());
        sb.append(",remark:").append(getRemark());
        sb.append(",specialStartTime:").append(getSpecialStartTime());
        sb.append(",specialEndTime:").append(getSpecialEndTime());
        return sb.toString();
    }

    public void initAttrValue(){

        this.freeWorkId = null;

        this.must = 0;

        this.classId = null;

        this.className = "";

        this.addWay = 0;

        this.specialTime = null;

        this.remark = "";

        this.specialStartTime = null;

        this.specialEndTime = null;
    }
}