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-08
*/

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 Date specialTimeStart;
    /**
    * 时间段结束时间
    */
    private Date specialTimeEnd;
    /**
    * 备注
    */
    private String remark;



    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 Date
    */
    public Date getSpecialTimeStart(){
        return specialTimeStart;
    }
    /**
    * 设置 时间段时候开始时间
    * @param specialTimeStart
    */
    public void setSpecialTimeStart(Date specialTimeStart){
        this.specialTimeStart = specialTimeStart;
    }
    /**
    * 获取 时间段结束时间
    * @return Date
    */
    public Date getSpecialTimeEnd(){
        return specialTimeEnd;
    }
    /**
    * 设置 时间段结束时间
    * @param specialTimeEnd
    */
    public void setSpecialTimeEnd(Date specialTimeEnd){
        this.specialTimeEnd = specialTimeEnd;
    }
    /**
    * 获取 备注
    * @return String
    */
    public String getRemark(){
        return remark;
    }
    /**
    * 设置 备注
    * @param remark
    */
    public void setRemark(String remark){
        this.remark = remark;
    }




    @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(",specialTimeStart:").append(getSpecialTimeStart());
        sb.append(",specialTimeEnd:").append(getSpecialTimeEnd());
        sb.append(",remark:").append(getRemark());
        return sb.toString();
    }

    public void initAttrValue(){

            this.freeWorkId = null;

            this.must = 0;

            this.classId = null;

            this.className = "";

            this.addWay = 0;

            this.specialTime = null;

            this.specialTimeStart = null;

            this.specialTimeEnd = null;

            this.remark = "";
    }
}