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

import com.ym.mec.biz.dal.enums.PeriodEnum;
import com.ym.mec.common.entity.BaseEntity;
import com.ym.mec.common.enums.BaseEnum;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;

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

/**
 * 对应数据库表(cloud_coach_payment_program):
 */
public class CloudCoachPaymentProgram extends BaseEntity {

	/**  */
	private Long id;

	/** 会员名称 */
	private String name;
	
	/** 备注 */
	private String remark;
	
	/** 会员数量 */
	private BigDecimal memberNum;

	/** 云教练描述 */
	private String memberIntro;
	
	/** 缴费项目总人数 */
	private Integer userNum;
	
	/** 已缴费人数 */
	private Integer paymentUserNum = 0;
	
	/** 单位（年月日） */
	private PeriodEnum period = PeriodEnum.MONTH;
	
	/** 会员等级编号 */
	private Integer memberRankSettingId = 1;
	
	/** 现价 */
	private java.math.BigDecimal actualAmount = BigDecimal.ZERO;
	
	/** 原价 */
	private java.math.BigDecimal originalAmount = BigDecimal.ZERO;

	/** 是否自动激活团练宝缴费 */
	private Boolean autoActivationFlag = false;
	
	/** 创建人 */
	private Integer operator;

	private String operatorName;
	
	/**  */
	private java.util.Date createTime;
	
	/**  */
	private java.util.Date updateTime;
	
	/**  */
	private Integer tenantId;

	private Integer organId;

	private String organName;

	private List<Integer> userIds;

	@ApiModelProperty(value = "审核备注", required = false)
	private String memo;

	@ApiModelProperty(value = "状态", required = false)
	private CloudCoachPaymentProgram.StatusEnum status;

	@ApiModelProperty(value = "审核人", required = false)
	private Integer audit;

	@ApiModelProperty(value = "审核人", required = false)
	private String auditName;

	@ApiModelProperty(value = "审核时间", required = false)
	private Date auditTime;

	public Boolean getAutoActivationFlag() {
		return autoActivationFlag;
	}

	public void setAutoActivationFlag(Boolean autoActivationFlag) {
		this.autoActivationFlag = autoActivationFlag;
	}

	public enum StatusEnum implements BaseEnum<String, CloudCoachPaymentProgram.StatusEnum> {
		AUDITING("审核中"), REJECT("审核拒绝"), OPEN("审核通过");

		private String desc;

		StatusEnum(String desc) {
			this.desc = desc;
		}

		@Override
		public String getCode() {
			return this.name();
		}

		public String getDesc() {
			return desc;
		}
	}

	public String getOrganName() {
		return organName;
	}

	public void setOrganName(String organName) {
		this.organName = organName;
	}

	public Integer getAudit() {
		return audit;
	}

	public void setAudit(Integer audit) {
		this.audit = audit;
	}

	public String getAuditName() {
		return auditName;
	}

	public void setAuditName(String auditName) {
		this.auditName = auditName;
	}

	public Date getAuditTime() {
		return auditTime;
	}

	public void setAuditTime(Date auditTime) {
		this.auditTime = auditTime;
	}

	public StatusEnum getStatus() {
		return status;
	}

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

	public String getMemo() {
		return memo;
	}

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

	public String getMemberIntro() {
		return memberIntro;
	}

	public void setMemberIntro(String memberIntro) {
		this.memberIntro = memberIntro;
	}

	public String getOperatorName() {
		return operatorName;
	}

	public void setOperatorName(String operatorName) {
		this.operatorName = operatorName;
	}

	public Integer getOrganId() {
		return organId;
	}

	public void setOrganId(Integer organId) {
		this.organId = organId;
	}

	public List<Integer> getUserIds() {
		return userIds;
	}

	public void setUserIds(List<Integer> userIds) {
		this.userIds = userIds;
	}

	public void setId(Long id){
		this.id = id;
	}
	
	public Long getId(){
		return this.id;
	}
			
	public void setName(String name){
		this.name = name;
	}
	
	public String getName(){
		return this.name;
	}
			
	public void setRemark(String remark){
		this.remark = remark;
	}
	
	public String getRemark(){
		return this.remark;
	}

	public BigDecimal getMemberNum() {
		return memberNum;
	}

	public void setMemberNum(BigDecimal memberNum) {
		this.memberNum = memberNum;
	}

	public PeriodEnum getPeriod() {
		return period;
	}

	public void setPeriod(PeriodEnum period) {
		this.period = period;
	}

	public void setUserNum(Integer userNum){
		this.userNum = userNum;
	}
	
	public Integer getUserNum(){
		return this.userNum;
	}
			
	public void setPaymentUserNum(Integer paymentUserNum){
		this.paymentUserNum = paymentUserNum;
	}
	
	public Integer getPaymentUserNum(){
		return this.paymentUserNum;
	}

	public void setMemberRankSettingId(Integer memberRankSettingId){
		this.memberRankSettingId = memberRankSettingId;
	}
	
	public Integer getMemberRankSettingId(){
		return this.memberRankSettingId;
	}
			
	public void setActualAmount(java.math.BigDecimal actualAmount){
		this.actualAmount = actualAmount;
	}
	
	public java.math.BigDecimal getActualAmount(){
		return this.actualAmount;
	}
			
	public void setOriginalAmount(java.math.BigDecimal originalAmount){
		this.originalAmount = originalAmount;
	}
	
	public java.math.BigDecimal getOriginalAmount(){
		return this.originalAmount;
	}
			
	public void setOperator(Integer operator){
		this.operator = operator;
	}
	
	public Integer getOperator(){
		return this.operator;
	}
			
	public void setCreateTime(java.util.Date createTime){
		this.createTime = createTime;
	}
	
	public java.util.Date getCreateTime(){
		return this.createTime;
	}
			
	public void setUpdateTime(java.util.Date updateTime){
		this.updateTime = updateTime;
	}
	
	public java.util.Date getUpdateTime(){
		return this.updateTime;
	}
			
	public void setTenantId(Integer tenantId){
		this.tenantId = tenantId;
	}
	
	public Integer getTenantId(){
		return this.tenantId;
	}
			
	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this);
	}

}
