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

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

import java.math.BigDecimal;

/**
 * 对应数据库表(course_schedule_teacher_salary):
 */
public class CourseScheduleTeacherSalary {

	/**  */
	private Long id;
	
	private GroupType groupType;
	
	/**  */
	@ApiModelProperty(value = "乐团编号",required = false)
	private String musicGroupId;
	
	/**  */
	private Long courseScheduleId;
	
	/** 老师角色（主教、助教） */
	private TeachTypeEnum teacherRole;
	
	/**  */
	private Integer userId;

	@ApiModelProperty(value = "用户名称")
	private String userName;
	
	/** 预计薪水 */
	private java.math.BigDecimal expectSalary;
	
	/**  */
	private java.util.Date createTime;
	
	/**  */
	private java.util.Date updateTime;
	
	/** 补贴 */
	private java.math.BigDecimal subsidy;
	
	/** 实际薪水 */
	private java.math.BigDecimal actualSalary;

	/** 课酬结算时计算的课酬 */
	private java.math.BigDecimal teacherActualSalary;
	
	/** 结算时间 */
	private java.util.Date settlementTime;
	
	private Integer classGroupId;
	
	private CourseSchedule courseSchedule = new CourseSchedule();

	private BigDecimal reduceSalary;

	private TeacherSalaryConfirmStatus confirmStatus;

	private String memo;

	private String deductionReason;

	private Boolean belongToDaya;

	public Boolean getBelongToDaya() {
		return belongToDaya;
	}

	public void setBelongToDaya(Boolean belongToDaya) {
		this.belongToDaya = belongToDaya;
	}

	public BigDecimal getTeacherActualSalary() {
		return teacherActualSalary;
	}

	public void setTeacherActualSalary(BigDecimal teacherActualSalary) {
		this.teacherActualSalary = teacherActualSalary;
	}

	public CourseScheduleTeacherSalary() {
	}

	/**
	 * @describe
	 * @author Joburgess
	 * @date 2019/10/24
	 * @param courseScheduleId: 课程编号
	 * @param teacherRole: 教师角色
	 * @param userId: 教师编号
	 * @param expectSalary: 预计薪酬
	 * @param subsidy: 补贴
	 * @param classGroupId: 班级编号
	 * @return
	 */
	public CourseScheduleTeacherSalary(Long courseScheduleId, TeachTypeEnum teacherRole, Integer userId, BigDecimal expectSalary, BigDecimal subsidy, Integer classGroupId) {
		this.courseScheduleId = courseScheduleId;
		this.teacherRole = teacherRole;
		this.userId = userId;
		this.expectSalary = expectSalary;
		this.subsidy = subsidy;
		this.classGroupId = classGroupId;
	}

	public String getDeductionReason() {
		return deductionReason;
	}

	public void setDeductionReason(String deductionReason) {
		this.deductionReason = deductionReason;
	}

	public BigDecimal getReduceSalary() {
		return reduceSalary;
	}

	public void setReduceSalary(BigDecimal reduceSalary) {
		this.reduceSalary = reduceSalary;
	}

	public TeacherSalaryConfirmStatus getConfirmStatus() {
		return confirmStatus;
	}

	public void setConfirmStatus(TeacherSalaryConfirmStatus confirmStatus) {
		this.confirmStatus = confirmStatus;
	}

	public String getMemo() {
		return memo;
	}

	public void setMemo(String memo) {
		this.memo = memo;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public void setId(Long id){
		this.id = id;
	}
	
	public Long getId(){
		return this.id;
	}
			
	public GroupType getGroupType() {
		return groupType;
	}

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

	public String getMusicGroupId() {
		return musicGroupId;
	}

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

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

	public TeachTypeEnum getTeacherRole() {
		return teacherRole;
	}

	public void setTeacherRole(TeachTypeEnum teacherRole) {
		this.teacherRole = teacherRole;
	}

	public void setUserId(Integer userId){
		this.userId = userId;
	}
	
	public Integer getUserId(){
		return this.userId;
	}

	public void setExpectSalary(java.math.BigDecimal expectSalary){
		this.expectSalary = expectSalary;
	}
	
	public java.math.BigDecimal getExpectSalary(){
		return this.expectSalary;
	}
			
	public void setCreateTime(java.util.Date createTime){
		this.createTime = createTime;
	}
	
	public java.util.Date getCreateTime(){
		return this.createTime;
	}
			
	public java.util.Date getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(java.util.Date updateTime) {
		this.updateTime = updateTime;
	}

	public void setSubsidy(java.math.BigDecimal subsidy){
		this.subsidy = subsidy;
	}
	
	public java.math.BigDecimal getSubsidy(){
		return this.subsidy;
	}
			
	public void setActualSalary(java.math.BigDecimal actualSalary){
		this.actualSalary = actualSalary;
	}
	
	public java.math.BigDecimal getActualSalary(){
		return this.actualSalary;
	}
			
	public void setSettlementTime(java.util.Date settlementTime){
		this.settlementTime = settlementTime;
	}
	
	public java.util.Date getSettlementTime(){
		return this.settlementTime;
	}
			
	public Integer getClassGroupId() {
		return classGroupId;
	}

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

	public CourseSchedule getCourseSchedule() {
		return courseSchedule;
	}

	public void setCourseSchedule(CourseSchedule courseSchedule) {
		this.courseSchedule = courseSchedule;
	}

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

}
