using System;
using Edu.Common.Enum.Course;
using Edu.Common.Plugin;
using Edu.Model.Entity.Sell;

namespace Edu.Model.ViewModel.Sell
{
    /// <summary>
    /// 学员名单扩展表
    /// </summary>
    public class RB_Order_Guest_Extend : RB_Order_Guest
    {
        /// <summary>
        /// 合同编号
        /// </summary>
        public string ContractNo { get; set; }

        /// <summary>
        /// 合同id
        /// </summary>
        public int ContractId { get; set; }

        /// <summary>
        /// 课程id
        /// </summary>
        public int CourseId { get; set; }

        /// <summary>
        /// 课程名称
        /// </summary>
        public string CourseName { get; set; }

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


        /// <summary>
        /// 班号
        /// </summary>
        public string ClassNo { get; set; }
        /// <summary>
        /// 老师id
        /// </summary>
        public int Teacher_Id { get; set; }

        /// <summary>
        /// 老师名称
        /// </summary>
        public string TeacherName { get; set; }

        /// <summary>
        ///下单时间
        /// </summary>
        public DateTime? OrderTime { get; set; }

        /// <summary>
        ///结束下单时间
        /// </summary>
        public DateTime? EndOrderTime { get; set; }

        /// <summary>
        /// 业务员
        /// </summary>
        public int EnterID { get; set; }

        /// <summary>
        /// 业务员
        /// </summary>
        public string EnterName { get; set; }

        /// <summary>
        /// 应收金额
        /// </summary>
        public decimal PreferPrice { get; set; }

        /// <summary>
        /// 实收金额
        /// </summary>
        public decimal Income { get; set; }
        /// <summary>
        /// 退款金额
        /// </summary>
        public decimal Refund { get; set; }
        /// <summary>
        /// 平台税金
        /// </summary>
        public decimal PlatformTax { get; set; }

        /// <summary>
        /// 剩余课时
        /// </summary>
        public int SurplusHours { get; set; }

        /// <summary>
        /// 缺勤次数
        /// </summary>
        public int AbsenceNum { get; set; }


        /// <summary>
        /// 请假次数
        /// </summary>
        public int LeaveNum { get; set; }

        /// <summary>
        /// 事件数
        /// </summary>
        public int EventlogNum { get; set; }

        /// <summary>
        /// 是否生效 (查询对应:(0-全部 1-未生效,2-正常,3-休学,4-完课)) (生效状态(0-未生效,1-生效中,2-完成))
        /// </summary>
        public int? EffectStatus { get; set; }

        /// <summary>
        /// 订单报入类型(查询的时候0-全部1-正常报入,2-插班报入,3-续费订单,4-转班订单,5-分拆订单)
        /// </summary>
        public int JoinType { get; set; }

        /// <summary>
        /// 学生id(rb_student 表中的id)
        /// </summary>
        public int Student_Id { get; set; }

        /// <summary>
        /// 预警类型(0-全部,1-不足5课时,)
        /// </summary>
        public Common.Enum.Course.GuestClassHoursEarlyWarningEnum EarlyWarning { get; set; }

        /// <summary>
        /// 学员状态
        /// </summary>
        public string GuestStateStr
        {
            get
            {
                return this.GuestState.ToName();
            }
        }

        /// <summary>
        /// 学员状态
        /// </summary>
        public string JoinTypeStr
        {
            get
            {
                string str = "";
                switch (this.JoinType)
                {
                    case 1: str = "正常报入"; break;
                    case 2: str = "插班报入"; break;
                    case 3: str = "续费订单"; break;
                    case 4: str = "转班订单"; break;
                    case 5: str = "分拆订单"; break;
                }
                return str;
            }
        }

        /// <summary>
        /// 课程等级
        /// </summary>
        public CourseRateEnum CourseRate { get; set; }
    }
}