using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using System;
using VT.FW.DB;

namespace Edu.Model.Entity.Grade
{
    /// <summary>
    /// 班级实体类
    /// </summary>
    [Serializable]
    [DB(ConnectionName = "DefaultConnection")]
    public class RB_Class
    {
		/// <summary>
		/// 主键(班级ID)
		/// </summary>
		public int ClassId { get; set; }

		/// <summary>
		/// 班级名称
		/// </summary>
		public string ClassName { get; set; }

		/// <summary>
		/// 课程Id
		/// </summary>
		public int CouseId { get; set; }

		/// <summary>
		/// 讲师Id
		/// </summary>
		public int Teacher_Id { get; set; }

		/// <summary>
		/// 助教Id
		/// </summary>
		public int Assist_Id { get; set; }

		/// <summary>
		/// 集团编号
		/// </summary>
		public int Group_Id { get; set; }

        /// <summary>
        /// 校区默认值
        /// </summary>
        private int defaultSId = -1;

		/// <summary>
		/// 学校编号
		/// </summary>
		public int School_Id {
            get { return defaultSId; }
            set { defaultSId = value; }
        }

		/// <summary>
		/// 创建人
		/// </summary>
		public int CreateBy { get; set; }

		/// <summary>
		/// 创建时间
		/// </summary>
		public DateTime CreateTime { get; set; }

		/// <summary>
		/// 修改人
		/// </summary>
		public int UpdateBy { get; set; }

		/// <summary>
		/// 更新时间
		/// </summary>
		public DateTime UpdateTime { get; set; }

		/// <summary>
		/// 删除状态(0-正常,1-禁用)
		/// </summary>
		public DateStateEnum Status { get; set; }

		/// <summary>
		/// 招生人数
		/// </summary>
		public int ClassPersion { get; set; }

		/// <summary>
		/// 开班时间
		/// </summary>
		public DateTime OpenTime { get; set; }

		/// <summary>
		/// 截止报名时间
		/// </summary>
		public DateTime? EndOrderTime { get; set; }

		/// <summary>
		/// 原价
		/// </summary>
		public decimal OriginalPrice { get; set; }

		/// <summary>
		/// 售价
		/// </summary>
		public decimal SellPrice { get; set; }

		/// <summary>
		/// 是否阶梯价(1-是)
		/// </summary>
		public int IsStepPrice { get; set; }

		/// <summary>
		/// 教室编号
		/// </summary>
		public int ClassRoomId { get; set; }

		/// <summary>
		/// 是否开启提成设置(1-是)
		/// </summary>
		public int IsOpenCommission { get; set; }

		/// <summary>
		/// 提成类型(1-人头，2-百分比）
		/// </summary>
		public int CommissionType { get; set; }

		/// <summary>
		/// 提成值
		/// </summary>
		public decimal CommissionValue { get; set; }

		/// <summary>
		/// 课时
		/// </summary>
		public int ClassHours { get; set; }

		/// <summary>
		/// 排课方式(1-周，2-月，3-固定日期，4-约课)
		/// </summary>
		public ClassStyleEnum ClassStyle { get; set; }

		/// <summary>
		/// 班级状态
		/// </summary>
		public ClassStatusEnum ClassStatus { get; set; }

		/// <summary>
		/// 对内备注
		/// </summary>
		public string InnerRemark { get; set; }

		/// <summary>
		/// 对外备注
		/// </summary>
		public string OutRemark { get; set; }

		/// <summary>
		/// 完成进度
		/// </summary>
		public int CompleteProgress { get; set; }

		/// <summary>
		/// 班级类型(1-学生班，2-社会班)
		/// </summary>
		public int ClassType { get; set; }

		/// <summary>
		/// 默认时间字符串JSON
		/// </summary>
		public string DefaultTimeJson { get; set; }

		/// <summary>
		/// 默认选中的日期、周
		/// </summary>
		public string DateJson { get; set; }

		/// <summary>
		/// 结课日期
		/// </summary>
		public DateTime EndClassDate { get; set; }


		/// <summary>
		/// App是否可预约
		/// </summary>
		public int IsSubscribe { get; set; }

		/// <summary>
		/// 是否可抵扣
		/// </summary>
		public int IsDeduction { get; set; }

		/// <summary>
		/// 点数
		/// </summary>
		public int Point { get; set; }

		/// <summary>
		/// 分类类型
		/// </summary>
		public CourseClassTypeEnum? CourseClassType { get; set; }


		/// <summary>
		/// 上课人数
		/// </summary>
		public StudentNumTypeEnum? StudentNumType { get; set; }

		/// <summary>
		/// 课时分钟数
		/// </summary>
		public int ClassHourMinute { get; set; }

        /// <summary>
        /// 班级编号
        /// </summary>
        public string ClassNo { get; set; }

        /// <summary>
        /// 班级编号 - 字母排序
        /// </summary>
        public int ClassLetterNum { get; set; }

		private int scrollType = 1;//默认正常班

		/// <summary>
		/// 开班类型   1正常班   2滚动班
		/// </summary>
		public int ClassScrollType { get => scrollType; set => scrollType = value; }

		/// <summary>
		/// 滚动开班月份
		/// </summary>
		public string ScrollMonth { get; set; }

	}
}
