package com.mortals.xhx.module.attendance.model;
import java.util.List;
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.AttendanceGroupFreeworkVo;
import com.mortals.xhx.module.attendance.model.AttendanceGroupFreeworkSpecialEntity;
/**
* 考勤组考勤自由工时配置实体对象
*
* @author zxfei
* @date 2023-04-08
*/

public class AttendanceGroupFreeworkEntity extends AttendanceGroupFreeworkVo {
    private static final long serialVersionUID = 1L;

    /**
    * 考勤组
    */
    private Long groupId;
    /**
    * 考勤组名称
    */
    private String groupName;
    /**
    * 周一是否考勤(0.否,1.是)
    */
    private Integer monday;
    /**
    * 周二是否考勤(0.否,1.是)
    */
    private Integer tuesday;
    /**
    * 周三是否考勤(0.否,1.是)
    */
    private Integer wednesday;
    /**
    * 周四是否考勤(0.否,1.是)
    */
    private Integer thursday;
    /**
    * 周五是否考勤(0.否,1.是)
    */
    private Integer friday;
    /**
    * 周六是否考勤(0.否,1.是)
    */
    private Integer saturday;
    /**
    * 周日是否考勤(0.否,1.是)
    */
    private Integer sunday;
    /**
    * 法定节假日自动排休(0.否,1.是)
    */
    private Integer holidays;
    /**
    * 工作时长，单位小时
    */
    private Integer workTime;
    /**
    * 备注
    */
    private String remark;

    /**
    * 考勤组考勤自由工时特殊日期配置信息
    */
    private List<AttendanceGroupFreeworkSpecialEntity> attendanceGroupFreeworkSpecialList=new ArrayList<>();;


    public AttendanceGroupFreeworkEntity(){}
    /**
    * 获取 考勤组
    * @return Long
    */
    public Long getGroupId(){
        return groupId;
    }
    /**
    * 设置 考勤组
    * @param groupId
    */
    public void setGroupId(Long groupId){
        this.groupId = groupId;
    }
    /**
    * 获取 考勤组名称
    * @return String
    */
    public String getGroupName(){
        return groupName;
    }
    /**
    * 设置 考勤组名称
    * @param groupName
    */
    public void setGroupName(String groupName){
        this.groupName = groupName;
    }
    /**
    * 获取 周一是否考勤(0.否,1.是)
    * @return Integer
    */
    public Integer getMonday(){
        return monday;
    }
    /**
    * 设置 周一是否考勤(0.否,1.是)
    * @param monday
    */
    public void setMonday(Integer monday){
        this.monday = monday;
    }
    /**
    * 获取 周二是否考勤(0.否,1.是)
    * @return Integer
    */
    public Integer getTuesday(){
        return tuesday;
    }
    /**
    * 设置 周二是否考勤(0.否,1.是)
    * @param tuesday
    */
    public void setTuesday(Integer tuesday){
        this.tuesday = tuesday;
    }
    /**
    * 获取 周三是否考勤(0.否,1.是)
    * @return Integer
    */
    public Integer getWednesday(){
        return wednesday;
    }
    /**
    * 设置 周三是否考勤(0.否,1.是)
    * @param wednesday
    */
    public void setWednesday(Integer wednesday){
        this.wednesday = wednesday;
    }
    /**
    * 获取 周四是否考勤(0.否,1.是)
    * @return Integer
    */
    public Integer getThursday(){
        return thursday;
    }
    /**
    * 设置 周四是否考勤(0.否,1.是)
    * @param thursday
    */
    public void setThursday(Integer thursday){
        this.thursday = thursday;
    }
    /**
    * 获取 周五是否考勤(0.否,1.是)
    * @return Integer
    */
    public Integer getFriday(){
        return friday;
    }
    /**
    * 设置 周五是否考勤(0.否,1.是)
    * @param friday
    */
    public void setFriday(Integer friday){
        this.friday = friday;
    }
    /**
    * 获取 周六是否考勤(0.否,1.是)
    * @return Integer
    */
    public Integer getSaturday(){
        return saturday;
    }
    /**
    * 设置 周六是否考勤(0.否,1.是)
    * @param saturday
    */
    public void setSaturday(Integer saturday){
        this.saturday = saturday;
    }
    /**
    * 获取 周日是否考勤(0.否,1.是)
    * @return Integer
    */
    public Integer getSunday(){
        return sunday;
    }
    /**
    * 设置 周日是否考勤(0.否,1.是)
    * @param sunday
    */
    public void setSunday(Integer sunday){
        this.sunday = sunday;
    }
    /**
    * 获取 法定节假日自动排休(0.否,1.是)
    * @return Integer
    */
    public Integer getHolidays(){
        return holidays;
    }
    /**
    * 设置 法定节假日自动排休(0.否,1.是)
    * @param holidays
    */
    public void setHolidays(Integer holidays){
        this.holidays = holidays;
    }
    /**
    * 获取 工作时长，单位小时
    * @return Integer
    */
    public Integer getWorkTime(){
        return workTime;
    }
    /**
    * 设置 工作时长，单位小时
    * @param workTime
    */
    public void setWorkTime(Integer workTime){
        this.workTime = workTime;
    }
    /**
    * 获取 备注
    * @return String
    */
    public String getRemark(){
        return remark;
    }
    /**
    * 设置 备注
    * @param remark
    */
    public void setRemark(String remark){
        this.remark = remark;
    }


    public List<AttendanceGroupFreeworkSpecialEntity> getAttendanceGroupFreeworkSpecialList(){
      return attendanceGroupFreeworkSpecialList;
    }

    public void setAttendanceGroupFreeworkSpecialList(List<AttendanceGroupFreeworkSpecialEntity> attendanceGroupFreeworkSpecialList){
        this.attendanceGroupFreeworkSpecialList = attendanceGroupFreeworkSpecialList;
    }


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

    public String toString(){
        StringBuilder sb = new StringBuilder("");
        sb.append(",groupId:").append(getGroupId());
        sb.append(",groupName:").append(getGroupName());
        sb.append(",monday:").append(getMonday());
        sb.append(",tuesday:").append(getTuesday());
        sb.append(",wednesday:").append(getWednesday());
        sb.append(",thursday:").append(getThursday());
        sb.append(",friday:").append(getFriday());
        sb.append(",saturday:").append(getSaturday());
        sb.append(",sunday:").append(getSunday());
        sb.append(",holidays:").append(getHolidays());
        sb.append(",workTime:").append(getWorkTime());
        sb.append(",remark:").append(getRemark());
        return sb.toString();
    }

    public void initAttrValue(){

            this.groupId = null;

            this.groupName = "";

            this.monday = 0;

            this.tuesday = 0;

            this.wednesday = 0;

            this.thursday = 0;

            this.friday = 0;

            this.saturday = 0;

            this.sunday = 0;

            this.holidays = 1;

            this.workTime = 0;

            this.remark = "";
    }
}