Course.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. using ProtoBuf;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel.DataAnnotations;
  5. using System.Text;
  6. using TEAMModelOS.SDK.Context.Attributes.Azure;
  7. using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
  8. using TEAMModelOS.Service.Models.Core;
  9. using TEAMModelOS.Service.Models.Syllabus;
  10. namespace TEAMModelOS.Service.Models.Courses
  11. {
  12. /// <summary>
  13. /// 课程
  14. /// </summary>
  15. [CosmosDB(RU = 400, Name = "Course")]
  16. [ProtoContract]
  17. public class Course : ID
  18. {
  19. /// <summary>
  20. /// 学校编码 如果是教师私人知识点 则为 personal(写死) 否则为学校编码
  21. /// </summary>
  22. [Required(ErrorMessage = "{0} 必须填写")]
  23. [PartitionKey]
  24. [ProtoMember(1)]
  25. public string scopeCode { get; set; }
  26. //[Required(ErrorMessage = "{0} 必须填写")]
  27. //public string TEAMModelId { get; set; }
  28. //public string schoolCode { get; set; }
  29. /// <summary>
  30. /// 基础信息
  31. /// </summary>
  32. [ProtoMember(2)]
  33. public BaseInfo baseInfo { get; set; }
  34. ///// <summary>
  35. ///// personal:私有 school:校本
  36. ///// </summary>
  37. //[Required(ErrorMessage = "{0} 必须填写")]
  38. //public string scope { get; set; }
  39. /// <summary>
  40. /// 协同教师
  41. /// </summary>
  42. [ProtoMember(3)]
  43. public List<string> assistTeacher { get; set; }
  44. /// <summary>
  45. /// 上课时间表
  46. /// </summary>
  47. [ProtoMember(4)]
  48. public List<CourseTime> courseTime { get; set; }
  49. /// <summary>
  50. /// 课程“教室” Classroom
  51. /// </summary>
  52. [ProtoMember(5)]
  53. public List<string> classroom { get; set; }
  54. /// <summary>
  55. /// 关联课纲 SyllabusNode
  56. /// </summary>
  57. [ProtoMember(6)]
  58. public List<string> syllabus { get; set; }
  59. /// <summary>
  60. /// id
  61. /// </summary>
  62. [Required(ErrorMessage = "{0} 必须填写")]
  63. [ProtoMember(7)]
  64. public string id { get; set; }
  65. }
  66. /// <summary>
  67. /// 基础信息
  68. /// </summary>
  69. [ProtoContract]
  70. public class BaseInfo
  71. {
  72. /// <summary>
  73. /// 课程编码
  74. /// </summary>
  75. [ProtoMember(1)]
  76. [Required(ErrorMessage = "{0} 必须填写")]
  77. public string courseCode { get; set; }//'T968475'
  78. /// <summary>
  79. /// 课程名称
  80. /// </summary>
  81. [ProtoMember(2)]
  82. [Required(ErrorMessage = "{0} 必须填写")]
  83. public string courseName { get; set; }// '一次函数极其图像'
  84. /// <summary>
  85. /// 学段编码
  86. /// </summary>
  87. [ProtoMember(3)]
  88. [Required(ErrorMessage = "{0} 必须填写")]
  89. public string periodCode { get; set; }
  90. /// <summary>
  91. /// 年级编码
  92. /// </summary>
  93. [ProtoMember(4)]
  94. [Required(ErrorMessage = "{0} 必须填写")]
  95. public string gradeCode { get; set; }
  96. /// <summary>
  97. /// 学科编码
  98. /// </summary>
  99. [ProtoMember(5)]
  100. [Required(ErrorMessage = "{0} 必须填写")]
  101. public string subjectCode { get; set; }
  102. /// <summary>
  103. /// 课程公告
  104. /// </summary>
  105. [ProtoMember(6)]
  106. [Required(ErrorMessage = "{0} 必须填写")]
  107. public string notice { get; set; }//
  108. }
  109. /// <summary>
  110. /// 上课时间表
  111. /// </summary>
  112. [ProtoContract]
  113. public class CourseTime
  114. {
  115. /// <summary>
  116. /// 上课频率 每日、每周、每月、临时课程
  117. /// </summary>
  118. [ProtoMember(1)]
  119. public string frequencyCode { get; set; }
  120. /// <summary>
  121. /// 课程开始时间
  122. /// </summary>
  123. [ProtoMember(2)]
  124. public string beginTime { get; set; }
  125. /// <summary>
  126. /// 课程结束时间
  127. /// </summary>
  128. [ProtoMember(3)]
  129. public string endTime { get; set; }
  130. /// <summary>
  131. /// 上课班级/教室
  132. /// </summary>
  133. [ProtoMember(4)]
  134. public string classroomCode { get; set; } // Classroom
  135. /// <summary>
  136. /// 临时课程
  137. /// </summary>
  138. [ProtoMember(5)]
  139. public string frequencyName { get; set; }
  140. /// <summary>
  141. /// 每月课程
  142. /// </summary>
  143. //public string month { get; set; }
  144. /// <summary>
  145. /// 每周课程
  146. /// </summary>
  147. //public string weekly { get; set; }
  148. }
  149. }