auth_model.dart 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. /// 机构信息模型
  2. class InstitutionInfo {
  3. final int id;
  4. final String uuid;
  5. final String name;
  6. InstitutionInfo({
  7. required this.id,
  8. required this.uuid,
  9. required this.name,
  10. });
  11. /// 从 JSON 创建 InstitutionInfo
  12. factory InstitutionInfo.fromJson(Map<String, dynamic> json) {
  13. return InstitutionInfo(
  14. id: json['id'] as int,
  15. uuid: json['uuid'] as String,
  16. name: json['name'] as String,
  17. );
  18. }
  19. /// 转换为 JSON
  20. Map<String, dynamic> toJson() {
  21. return {
  22. 'id': id,
  23. 'uuid': uuid,
  24. 'name': name,
  25. };
  26. }
  27. }
  28. /// 用户信息模型
  29. class UserInfo {
  30. final int id;
  31. final String uuid;
  32. final String institutionUuid;
  33. final String name;
  34. final int gender;
  35. final String? avatar;
  36. final String baseUuid;
  37. final String username;
  38. final String mobile;
  39. UserInfo({
  40. required this.id,
  41. required this.uuid,
  42. required this.institutionUuid,
  43. required this.name,
  44. required this.gender,
  45. this.avatar,
  46. required this.baseUuid,
  47. required this.username,
  48. required this.mobile,
  49. });
  50. /// 从 JSON 创建 UserInfo
  51. factory UserInfo.fromJson(Map<String, dynamic> json) {
  52. return UserInfo(
  53. id: json['id'] as int,
  54. uuid: json['uuid'] as String,
  55. institutionUuid: json['institution_uuid'] as String,
  56. name: json['name'] as String,
  57. gender: json['gender'] as int,
  58. avatar: json['avatar'] as String?,
  59. baseUuid: json['base_uuid'] as String,
  60. username: json['username'] as String,
  61. mobile: json['mobile'] as String,
  62. );
  63. }
  64. /// 转换为 JSON
  65. Map<String, dynamic> toJson() {
  66. return {
  67. 'id': id,
  68. 'uuid': uuid,
  69. 'institution_uuid': institutionUuid,
  70. 'name': name,
  71. 'gender': gender,
  72. 'avatar': avatar,
  73. 'base_uuid': baseUuid,
  74. 'username': username,
  75. 'mobile': mobile,
  76. };
  77. }
  78. }
  79. /// 认证响应模型
  80. class AuthModel {
  81. final String accessToken;
  82. final String? refreshToken;
  83. final List<InstitutionInfo> institutionInfo;
  84. final UserInfo userInfo;
  85. AuthModel({
  86. required this.accessToken,
  87. this.refreshToken,
  88. required this.institutionInfo,
  89. required this.userInfo,
  90. });
  91. /// 从 JSON 创建 AuthModel
  92. factory AuthModel.fromJson(Map<String, dynamic> json) {
  93. return AuthModel(
  94. accessToken: json['access_token'] as String,
  95. refreshToken: json['refresh_token'] as String?,
  96. institutionInfo: (json['institution_info'] as List)
  97. .map((item) => InstitutionInfo.fromJson(item as Map<String, dynamic>))
  98. .toList(),
  99. userInfo: UserInfo.fromJson(json['user_info'] as Map<String, dynamic>),
  100. );
  101. }
  102. /// 转换为 JSON
  103. Map<String, dynamic> toJson() {
  104. return {
  105. 'access_token': accessToken,
  106. 'refresh_token': refreshToken,
  107. 'institution_info': institutionInfo.map((item) => item.toJson()).toList(),
  108. 'user_info': userInfo.toJson(),
  109. };
  110. }
  111. }