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

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PayUserType;
import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType;
import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings;
import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderStudentDetail;
import io.swagger.annotations.ApiModelProperty;

public class MusicGroupPaymentCalenderDto {

	private String musicGroupId;

	private Integer musicGroupOrganizationCourseSettingId;

	private PayUserType payUserType;

	private Integer paymentPattern;

	private PaymentType paymentType;

	private String memo;

	private Boolean isGiveMusicNetwork;

	private String attribute1;

	private String attribute2;

	private String studentIds;
	
	private String batchNo;

	private Boolean mergeClassFlag = false;

	private List<String> IgnoreBatchNoList = null;

	private BigDecimal masterTotalPrice = BigDecimal.ZERO;

	@ApiModelProperty(value = "跨团合并时缴费项目中学员的缴费明细")
	private List<MusicGroupPaymentCalenderStudentDetail> musicGroupPaymentCalenderStudentDetails;

	public BigDecimal getMasterTotalPrice() {
		return masterTotalPrice;
	}

	public void setMasterTotalPrice(BigDecimal masterTotalPrice) {
		this.masterTotalPrice = masterTotalPrice;
	}

	public List<MusicGroupPaymentCalenderStudentDetail> getMusicGroupPaymentCalenderStudentDetails() {
		return musicGroupPaymentCalenderStudentDetails;
	}

	public void setMusicGroupPaymentCalenderStudentDetails(List<MusicGroupPaymentCalenderStudentDetail> musicGroupPaymentCalenderStudentDetails) {
		this.musicGroupPaymentCalenderStudentDetails = musicGroupPaymentCalenderStudentDetails;
	}

	public List<String> getIgnoreBatchNoList() {
		return IgnoreBatchNoList;
	}

	public void setIgnoreBatchNoList(List<String> ignoreBatchNoList) {
		IgnoreBatchNoList = ignoreBatchNoList;
	}

	public Boolean getMergeClassFlag() {
		return mergeClassFlag;
	}

	public void setMergeClassFlag(Boolean mergeClassFlag) {
		this.mergeClassFlag = mergeClassFlag;
	}

	private MusicGroupPaymentCalender.PaymentCalenderStatusEnum status;

	private List<MusicGroupPaymentDateRange> musicGroupPaymentDateRangeList = new ArrayList<MusicGroupPaymentDateRange>();

	private List<MusicGroupPaymentCalenderCourseSettings> musicGroupPaymentCalenderCourseSettingsList = new ArrayList<MusicGroupPaymentCalenderCourseSettings>();


	public MusicGroupPaymentCalender.PaymentCalenderStatusEnum getStatus() {
		return status;
	}

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

	public String getMusicGroupId() {
		return musicGroupId;
	}

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

	public Integer getMusicGroupOrganizationCourseSettingId() {
		return musicGroupOrganizationCourseSettingId;
	}

	public void setMusicGroupOrganizationCourseSettingId(Integer musicGroupOrganizationCourseSettingId) {
		this.musicGroupOrganizationCourseSettingId = musicGroupOrganizationCourseSettingId;
	}

	public PayUserType getPayUserType() {
		return payUserType;
	}

	public void setPayUserType(PayUserType payUserType) {
		this.payUserType = payUserType;
	}

	public Integer getPaymentPattern() {
		return paymentPattern;
	}

	public void setPaymentPattern(Integer paymentPattern) {
		this.paymentPattern = paymentPattern;
	}

	public PaymentType getPaymentType() {
		return paymentType;
	}

	public void setPaymentType(PaymentType paymentType) {
		this.paymentType = paymentType;
	}

	public String getMemo() {
		return memo;
	}

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

	public Boolean getIsGiveMusicNetwork() {
		return isGiveMusicNetwork;
	}

	public void setIsGiveMusicNetwork(Boolean isGiveMusicNetwork) {
		this.isGiveMusicNetwork = isGiveMusicNetwork;
	}

	public String getAttribute1() {
		return attribute1;
	}

	public void setAttribute1(String attribute1) {
		this.attribute1 = attribute1;
	}

	public String getAttribute2() {
		return attribute2;
	}

	public void setAttribute2(String attribute2) {
		this.attribute2 = attribute2;
	}

	public String getStudentIds() {
		return studentIds;
	}

	public void setStudentIds(String studentIds) {
		this.studentIds = studentIds;
	}

	public List<MusicGroupPaymentDateRange> getMusicGroupPaymentDateRangeList() {
		return musicGroupPaymentDateRangeList;
	}

	public void setMusicGroupPaymentDateRangeList(List<MusicGroupPaymentDateRange> musicGroupPaymentDateRangeList) {
		this.musicGroupPaymentDateRangeList = musicGroupPaymentDateRangeList;
	}

	public List<MusicGroupPaymentCalenderCourseSettings> getMusicGroupPaymentCalenderCourseSettingsList() {
		return musicGroupPaymentCalenderCourseSettingsList;
	}

	public void setMusicGroupPaymentCalenderCourseSettingsList(List<MusicGroupPaymentCalenderCourseSettings> musicGroupPaymentCalenderCourseSettingsList) {
		this.musicGroupPaymentCalenderCourseSettingsList = musicGroupPaymentCalenderCourseSettingsList;
	}

	public String getBatchNo() {
		return batchNo;
	}

	public void setBatchNo(String batchNo) {
		this.batchNo = batchNo;
	}

	public class MusicGroupPaymentDateRange {

		private java.util.Date startPaymentDate;

		private Date deadlinePaymentDate;

		private BigDecimal paymentAmount;

		private Date paymentValidStartDate;

		private Date paymentValidEndDate;

		public BigDecimal getPaymentAmount() {
			return paymentAmount;
		}

		public void setPaymentAmount(BigDecimal paymentAmount) {
			this.paymentAmount = paymentAmount;
		}

		public java.util.Date getStartPaymentDate() {
			return startPaymentDate;
		}

		public void setStartPaymentDate(java.util.Date startPaymentDate) {
			this.startPaymentDate = startPaymentDate;
		}

		public Date getDeadlinePaymentDate() {
			return deadlinePaymentDate;
		}

		public void setDeadlinePaymentDate(Date deadlinePaymentDate) {
			this.deadlinePaymentDate = deadlinePaymentDate;
		}

		public Date getPaymentValidStartDate() {
			return paymentValidStartDate;
		}

		public void setPaymentValidStartDate(Date paymentValidStartDate) {
			this.paymentValidStartDate = paymentValidStartDate;
		}

		public Date getPaymentValidEndDate() {
			return paymentValidEndDate;
		}

		public void setPaymentValidEndDate(Date paymentValidEndDate) {
			this.paymentValidEndDate = paymentValidEndDate;
		}
	}

}
