using ProtoBuf; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Text; using TEAMModelOS.SDK.Context.Attributes.Azure; using TEAMModelOS.SDK.Module.AzureCosmosDBV3; using TEAMModelOS.Service.Models.Core; using TEAMModelOS.Service.Models.Syllabus; namespace TEAMModelOS.Service.Models.Courses { /// /// 课程 /// [CosmosDB(RU = 400, Name = "Course")] [ProtoContract] public class Course : ID { public int? ttl { get; set; } /// /// 学校编码 如果是教师私人知识点 则为 personal(写死) 否则为学校编码 /// [Required(ErrorMessage = "{0} 必须填写")] [PartitionKey] [ProtoMember(1)] public string scopeCode { get; set; } //[Required(ErrorMessage = "{0} 必须填写")] //public string TEAMModelId { get; set; } //public string schoolCode { get; set; } /// /// 基础信息 /// [ProtoMember(2)] public BaseInfo baseInfo { get; set; } ///// ///// personal:私有 school:校本 ///// //[Required(ErrorMessage = "{0} 必须填写")] //public string scope { get; set; } /// /// 协同教师 /// [ProtoMember(3)] public List assistTeacher { get; set; } /// /// 上课时间表 /// [ProtoMember(4)] public List courseTime { get; set; } /// /// 课程“教室” Classroom /// [ProtoMember(5)] public List classroom { get; set; } /// /// 关联课纲 SyllabusNode /// [ProtoMember(6)] public List syllabus { get; set; } /// /// id /// [Required(ErrorMessage = "{0} 必须填写")] [ProtoMember(7)] public string id { get; set; } } /// /// 基础信息 /// [ProtoContract] public class BaseInfo { /// /// 课程编码 /// [ProtoMember(1)] [Required(ErrorMessage = "{0} 必须填写")] public string courseCode { get; set; }//'T968475' /// /// 课程名称 /// [ProtoMember(2)] [Required(ErrorMessage = "{0} 必须填写")] public string courseName { get; set; }// '一次函数极其图像' /// /// 学段编码 /// [ProtoMember(3)] [Required(ErrorMessage = "{0} 必须填写")] public string periodCode { get; set; } /// /// 年级编码 /// [ProtoMember(4)] [Required(ErrorMessage = "{0} 必须填写")] public string gradeCode { get; set; } /// /// 学科编码 /// [ProtoMember(5)] [Required(ErrorMessage = "{0} 必须填写")] public string subjectCode { get; set; } /// /// 课程公告 /// [ProtoMember(6)] [Required(ErrorMessage = "{0} 必须填写")] public string notice { get; set; }// } /// /// 上课时间表 /// [ProtoContract] public class CourseTime { /// /// 上课频率 每日、每周、每月、临时课程 /// [ProtoMember(1)] public string frequencyCode { get; set; } /// /// 课程开始时间 /// [ProtoMember(2)] public string beginTime { get; set; } /// /// 课程结束时间 /// [ProtoMember(3)] public string endTime { get; set; } /// /// 上课班级/教室 /// [ProtoMember(4)] public string classroomCode { get; set; } // Classroom /// /// 临时课程 /// [ProtoMember(5)] public List frequencyName { get; set; } /// /// 每月课程 /// //public string month { get; set; } /// /// 每周课程 /// //public string weekly { get; set; } } }