HomeworkRecord.cs 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. using ProtoBuf;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using TEAMModelOS.SDK.Context.Attributes.Azure;
  6. using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
  7. namespace TEAMModelOS.Service.Models
  8. {
  9. /// <summary>
  10. /// 作业数据
  11. /// </summary>
  12. [ProtoContract]
  13. [CosmosDB(RU = 400, Name = "Student")]
  14. public class HomeworkRecord : ID
  15. {
  16. /// <summary>
  17. /// 学生id
  18. /// </summary>
  19. [PartitionKey]
  20. public string code { get; set; }
  21. public string pk { get; set; }
  22. public int? ttl { get; set; }
  23. public HomeworkRecord() {
  24. content = new List<HomeWorkContent>();
  25. stuCmt = new List<StudentComment>();
  26. classroom = new ClassroomItem();
  27. // nativeroom = new ClassroomItem();
  28. tchCmt = new HomeWorkComment();
  29. }
  30. /// <summary>
  31. /// 作业活动id
  32. /// </summary>
  33. [ProtoMember(1)]
  34. public string id { get; set; }
  35. /// <summary>
  36. /// 姓名
  37. /// </summary>
  38. [ProtoMember(3)]
  39. public string name { get; set; }
  40. /// <summary>
  41. /// 上课班级
  42. /// </summary>
  43. [ProtoMember(5)]
  44. public ClassroomItem classroom { get; set; }
  45. ///// <summary>
  46. ///// 原生班级
  47. ///// </summary>
  48. //[ProtoMember(6)]
  49. //public ClassroomItem nativeroom{ get; set; }
  50. /// <summary>
  51. /// 是否提交
  52. /// </summary>
  53. [ProtoMember(8)]
  54. public bool submit { get; set; } = false;
  55. /// <summary>
  56. /// 提交时间
  57. /// </summary>
  58. [ProtoMember(9)]
  59. public long submitTime { get; set; }
  60. /// <summary>
  61. /// 分数
  62. /// </summary>
  63. [ProtoMember(10)]
  64. public double score { get; set; }
  65. /// <summary>
  66. /// 作业内容
  67. /// </summary>
  68. [ProtoMember(11)]
  69. public List<HomeWorkContent> content { get; set; }
  70. /// <summary>
  71. /// 作业评论 (同学互评)
  72. /// </summary>
  73. [ProtoMember(12)]
  74. public List<StudentComment> stuCmt { get; set; }
  75. /// <summary>
  76. /// 教师评语
  77. /// </summary>
  78. [ProtoMember(13)]
  79. public HomeWorkComment tchCmt { get; set; }
  80. }
  81. [ProtoContract]
  82. public class ClassroomItem {
  83. [ProtoMember(1)]
  84. public string name { get; set; }
  85. [ProtoMember(2)]
  86. public string code { get; set; }
  87. }
  88. /// <summary>
  89. /// 作业内容
  90. /// </summary>
  91. [ProtoContract]
  92. public class HomeWorkContent {
  93. /// <summary>
  94. /// 作答记录
  95. /// </summary>
  96. [ProtoMember(1)]
  97. public string answers { get; set; }
  98. /// <summary>
  99. /// 其他模式url 及name
  100. /// </summary>
  101. [ProtoMember(2)]
  102. public List<ProcessRes> resource { get; set; }
  103. }
  104. [ProtoContract]
  105. public class StudentComment
  106. {
  107. public StudentComment()
  108. {
  109. reply = new List<Reply>();
  110. }
  111. /// <summary>
  112. /// 评论id
  113. /// </summary>
  114. [ProtoMember(1)]
  115. public string commentid { get; set; }
  116. /// <summary>
  117. /// 评论者id 醍摩豆或studenId
  118. /// </summary>
  119. [ProtoMember(2)]
  120. public string fromId { get; set; }
  121. /// <summary>
  122. /// 被评论者id 醍摩豆或studenId
  123. /// </summary>
  124. [ProtoMember(3)]
  125. public string toId { get; set; }
  126. /// <summary>
  127. /// 学生打分
  128. /// </summary>
  129. [ProtoMember(4)]
  130. public double? score { get; set; }
  131. /// <summary>
  132. /// 评论者身份 教师 学生
  133. /// </summary>
  134. [ProtoMember(5)]
  135. public string identity { get; set; }
  136. /// <summary>
  137. /// 评语
  138. /// </summary>
  139. [ProtoMember(6)]
  140. public string comment { get; set; }
  141. /// <summary>
  142. /// 评论时间
  143. /// </summary>
  144. [ProtoMember(7)]
  145. public long createTime { get; set; }
  146. ///// <summary>
  147. ///// 评论回复
  148. ///// </summary>
  149. [ProtoMember(8)]
  150. public List<Reply> reply { get; set; }
  151. }
  152. /// <summary>
  153. /// 作业评论
  154. /// </summary>
  155. [ProtoContract]
  156. public class HomeWorkComment {
  157. /// <summary>
  158. /// 评论者身份 教师 学生
  159. /// </summary>
  160. [ProtoMember(1)]
  161. public string identity { get; set; }
  162. /// <summary>
  163. /// 评语
  164. /// </summary>
  165. [ProtoMember(2)]
  166. public string comment { get; set; }
  167. /// <summary>
  168. /// 评论时间
  169. /// </summary>
  170. [ProtoMember(3)]
  171. public long createTime { get; set; }
  172. /// <summary>
  173. /// 醍摩豆id 或者学生id
  174. /// </summary>
  175. [ProtoMember(4)]
  176. public string TEAMModelId { get; set; }
  177. ///// <summary>
  178. ///// 评论回复
  179. ///// </summary>
  180. //public List<Reply> reply { get; set; }
  181. }
  182. /// <summary>
  183. /// 评论回复
  184. /// </summary>
  185. [ProtoContract]
  186. public class Reply
  187. {
  188. /// <summary>
  189. /// 评论者id 醍摩豆或studenId
  190. /// </summary>
  191. [ProtoMember(1)]
  192. public string fromId { get; set; }
  193. /// <summary>
  194. /// 被评论者id 醍摩豆或studenId
  195. /// </summary>
  196. [ProtoMember(2)]
  197. public string toId { get; set; }
  198. /// <summary>
  199. /// 评论者身份 教师 学生
  200. /// </summary>
  201. [ProtoMember(3)]
  202. public string identity { get; set; }
  203. /// <summary>
  204. /// 评语
  205. /// </summary>
  206. [ProtoMember(4)]
  207. public string comment { get; set; }
  208. [ProtoMember(5)]
  209. public long createTime { get; set; }
  210. }
  211. }