package com.ym.mec.biz.dal.entity;

import com.ym.mec.biz.dal.enums.ComplaintsStatusEnum;
import com.ym.mec.biz.dal.enums.GroupType;
import com.ym.mec.biz.dal.enums.UpdateAttendanceEnum;
import com.ym.mec.biz.dal.enums.YesOrNoEnum;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;

import java.util.Date;

/**
 * 对应数据库表(teacher_attendance):
 */
public class TeacherAttendance {

	/**  */
	private Long id;
	
	private GroupType groupType;
	
	/**  */
	@ApiModelProperty(value = "教师编号",required = false)
	private Integer teacherId;
	
	/**  */
	@ApiModelProperty(value = "乐团编号",required = false)
	private String musicGroupId;
	
	/**  */
	@ApiModelProperty(value = "班级编号",required = false)
	private Integer classGroupId;
	
	/**  */
	@ApiModelProperty(value = "课程计划编号",required = false)
	private Long courseScheduleId;

	/**  */
	@ApiModelProperty(value = "实际教室编号",required = false)
	private Long currentScheduleId;
	
	/** 签到时间 */
	@ApiModelProperty(value = "签到时间",required = false)
	private java.util.Date signInTime;
	
	@ApiModelProperty(value = "状态(0：签到，1：签退)",required = false)
	private Integer status;

	@ApiModelProperty(value = "签到状态:0异常，1正常")
	private YesOrNoEnum signInStatus;

	@ApiModelProperty(value = "签退状态:0异常，1正常")
	private YesOrNoEnum signOutStatus;

	@ApiModelProperty(value = "签退时间")
	private Date signOutTime;

	@ApiModelProperty(value = "当前课次")
	private Integer currentClassTimes;
	
	/** 备注 */
	@ApiModelProperty(value = "备注",required = false)
	private String remark;
	
	/**  */
	private java.util.Date createTime;

	//申述提交时间
	private java.util.Date complaintsTime;

	private String signInLongitudeLatitude;

	private String signOutLongitudeLatitude;

	private String schoolLongitudeLatitude;

	private Integer update;

	private int isComplaints;

	//申述状态0拒绝1通过2待处理3已撤销
	private ComplaintsStatusEnum complaintsStatus;

	//申述状态0拒绝1通过2待处理3已撤销
	private UpdateAttendanceEnum updateAttendanceEnum;

	//申述内容
	private String complaintsContent;

	//处理结果
	private String disposeContent;

	//处理结果
	private Integer operator;

	@ApiModelProperty(value = "签退附件")
	private String signOutAttachments;

	@ApiModelProperty(value = "签退备注")
	private String signOutRemark;

	@ApiModelProperty(value = "考勤申述凭证")
	private String url;

	@ApiModelProperty(value = "签到设备号")
	private String signInDeviceNo;

	@ApiModelProperty(value = "签退设备号")
	private String signOutDeviceNo;

	private String deviceNum;

	public String getDeviceNum() {
		return deviceNum;
	}

	public void setDeviceNum(String deviceNum) {
		this.deviceNum = deviceNum;
	}

	public String getSignInDeviceNo() {
		return signInDeviceNo;
	}

	public void setSignInDeviceNo(String signInDeviceNo) {
		this.signInDeviceNo = signInDeviceNo;
	}

	public String getSignOutDeviceNo() {
		return signOutDeviceNo;
	}

	public void setSignOutDeviceNo(String signOutDeviceNo) {
		this.signOutDeviceNo = signOutDeviceNo;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public UpdateAttendanceEnum getUpdateAttendanceEnum() {
		return updateAttendanceEnum;
	}

	public void setUpdateAttendanceEnum(UpdateAttendanceEnum updateAttendanceEnum) {
		this.updateAttendanceEnum = updateAttendanceEnum;
	}

	public Long getCurrentScheduleId() {
		return currentScheduleId;
	}

	public void setCurrentScheduleId(Long currentScheduleId) {
		this.currentScheduleId = currentScheduleId;
	}

	public String getSignOutRemark() {
		return signOutRemark;
	}

	public void setSignOutRemark(String signOutRemark) {
		this.signOutRemark = signOutRemark;
	}

	public Date getComplaintsTime() {
		return complaintsTime;
	}

	public void setComplaintsTime(Date complaintsTime) {
		this.complaintsTime = complaintsTime;
	}

	public String getSignOutAttachments() {
		return signOutAttachments;
	}

	public void setSignOutAttachments(String signOutAttachments) {
		this.signOutAttachments = signOutAttachments;
	}

	public Integer getOperator() {
		return operator;
	}

	public void setOperator(Integer operator) {
		this.operator = operator;
	}

	public int getIsComplaints() {
		return isComplaints;
	}

	public void setIsComplaints(int isComplaints) {
		this.isComplaints = isComplaints;
	}

	public ComplaintsStatusEnum getComplaintsStatus() {
		return complaintsStatus;
	}

	public void setComplaintsStatus(ComplaintsStatusEnum complaintsStatus) {
		this.complaintsStatus = complaintsStatus;
	}

	public String getComplaintsContent() {
		return complaintsContent;
	}

	public void setComplaintsContent(String complaintsContent) {
		this.complaintsContent = complaintsContent;
	}

	public String getDisposeContent() {
		return disposeContent;
	}

	public void setDisposeContent(String disposeContent) {
		this.disposeContent = disposeContent;
	}

	public String getSchoolLongitudeLatitude() {
		return schoolLongitudeLatitude;
	}

	public void setSchoolLongitudeLatitude(String schoolLongitudeLatitude) {
		this.schoolLongitudeLatitude = schoolLongitudeLatitude;
	}

	public Integer getUpdate() {
		return update;
	}

	public void setUpdate(Integer update) {
		this.update = update;
	}

	public String getSignInLongitudeLatitude() {
		return signInLongitudeLatitude;
	}

	public void setSignInLongitudeLatitude(String signInLongitudeLatitude) {
		this.signInLongitudeLatitude = signInLongitudeLatitude;
	}

	public String getSignOutLongitudeLatitude() {
		return signOutLongitudeLatitude;
	}

	public void setSignOutLongitudeLatitude(String signOutLongitudeLatitude) {
		this.signOutLongitudeLatitude = signOutLongitudeLatitude;
	}

	public TeacherAttendance() {
	}

	public TeacherAttendance(Integer teacherId, String musicGroupId, Integer classGroupId, Long courseScheduleId, Date createTime) {
		this.teacherId = teacherId;
		this.musicGroupId = musicGroupId;
		this.classGroupId = classGroupId;
		this.courseScheduleId = courseScheduleId;
		this.createTime = createTime;
	}

	public TeacherAttendance(Integer teacherId, Long courseScheduleId) {
		this.teacherId = teacherId;
		this.courseScheduleId = courseScheduleId;
	}

	public TeacherAttendance(Long courseScheduleId, Integer status) {
		this.courseScheduleId = courseScheduleId;
		this.status = status;
	}

	public Integer getCurrentClassTimes() {
		return currentClassTimes;
	}

	public void setCurrentClassTimes(Integer currentClassTimes) {
		this.currentClassTimes = currentClassTimes;
	}

	public YesOrNoEnum getSignInStatus() {
		return signInStatus;
	}

	public void setSignInStatus(YesOrNoEnum signInStatus) {
		this.signInStatus = signInStatus;
	}

	public YesOrNoEnum getSignOutStatus() {
		return signOutStatus;
	}

	public void setSignOutStatus(YesOrNoEnum signOutStatus) {
		this.signOutStatus = signOutStatus;
	}

	public Date getSignOutTime() {
		return signOutTime;
	}

	public void setSignOutTime(Date signOutTime) {
		this.signOutTime = signOutTime;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public GroupType getGroupType() {
		return groupType;
	}

	public void setGroupType(GroupType groupType) {
		this.groupType = groupType;
	}

	public Integer getTeacherId() {
		return teacherId;
	}

	public void setTeacherId(Integer teacherId) {
		this.teacherId = teacherId;
	}

	public String getMusicGroupId() {
		return musicGroupId;
	}

	public void setMusicGroupId(String musicGroupId) {
		this.musicGroupId = musicGroupId;
	}

	public Integer getClassGroupId() {
		return classGroupId;
	}

	public void setClassGroupId(Integer classGroupId) {
		this.classGroupId = classGroupId;
	}

	public Long getCourseScheduleId() {
		return courseScheduleId;
	}

	public void setCourseScheduleId(Long courseScheduleId) {
		this.courseScheduleId = courseScheduleId;
	}

	public Date getSignInTime() {
		return signInTime;
	}

	public void setSignInTime(Date signInTime) {
		this.signInTime = signInTime;
	}

	public Integer getStatus() {
		return status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this);
	}

}
