Student.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using Newtonsoft.Json;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel.DataAnnotations;
  5. using System.Text;
  6. using System.Text.Json.Serialization;
  7. using TEAMModelOS.SDK.Context.Attributes.Azure;
  8. using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
  9. namespace TEAMModelOS.Service.Models.Core
  10. {
  11. [CosmosDB(RU = 400, Name = "CoreStudent")]
  12. public class Student :ID
  13. {
  14. public Student()
  15. {
  16. password = new Password();
  17. productToken = new List<ProductToken>();
  18. oauth = new List<Oauth>();
  19. classroom = new Classroom();
  20. }
  21. public string id { get; set; }
  22. /// <summary>
  23. /// 0 动态id 透過第三方申請,未認證手機號,TEAMModelId暫時為virtualId但是不顯示在介面上,當使用者驗證手機號後TEAMModelId會變為手機號。
  24. /// 1 动态id 透過手機號申請,TEAMModelId為手機號
  25. /// 2 學生ID,透過學校建立,TEAMModelId格式為 {學校簡碼}#{學號}
  26. /// </summary>
  27. [Required(ErrorMessage = "{0} 必须填写")]
  28. public int type { get; set; }
  29. [Required(ErrorMessage = "{0} 必须填写")]
  30. public string name { get; set; }
  31. public string email { get; set; }
  32. public string cellphone { get; set; }
  33. public string countryCode { get; set; }
  34. public int verifyFlg { get; set; }
  35. public int status { get; set; } = 0;
  36. public long createDate { get; set; }
  37. public Password password { get; set; }
  38. public string exValue { get; set; }
  39. public string product { get; set; }
  40. public List<ProductToken> productToken { get; set; }
  41. /// <summary>
  42. /// 0 1 dynamic 1学校id
  43. /// </summary>
  44. [PartitionKey]
  45. [Required(ErrorMessage = "{0} 必须填写")]
  46. public string schoolCode { get; set; } ///
  47. public string shortCode { get; set; }
  48. public string profilePicture { get; set; }
  49. public string profilePictureUrl { get; set; }
  50. [JsonPropertyName("TEAMModelId")]
  51. [JsonProperty("TEAMModelId")]
  52. public string TEAMModelId { get; set; }
  53. public string loginTime { get; set; }
  54. public string virtualId { get; set; }
  55. public List<Oauth> oauth { get; set; } // 0 1
  56. public string haveDevice { get; set; }//2
  57. public Classroom classroom { get; set; }
  58. public string studentId { get; set; }
  59. public int seatNo { get; set; }
  60. }
  61. }
  62. public class Password {
  63. public string value { get; set; }
  64. public bool isSet { get; set; } = false;
  65. public bool isReset { get; set; } = false;
  66. }
  67. public class ProductToken
  68. {
  69. public string station { get; set; }
  70. public string url { get; set; }
  71. public string licenseStatus { get; set; }
  72. public string exp { get; set; }
  73. public string memberId { get; set; }
  74. }
  75. public class Oauth
  76. {
  77. public string provider { get; set; }
  78. public string openId { get; set; }
  79. }