1010
1111// ignore_for_file: no_leading_underscores_for_library_prefixes
1212import 'package:serverpod_client/serverpod_client.dart' as _i1;
13- import '../../../features/project/models/user_role_membership.dart' as _i2;
13+ import '../../../domains/users/models/user_account_status.dart' as _i2;
14+ import '../../../features/project/models/user_role_membership.dart' as _i3;
1415
1516/// Represents a Serverpod cloud customer user.
1617abstract class User implements _i1.SerializableModel {
@@ -19,26 +20,28 @@ abstract class User implements _i1.SerializableModel {
1920 DateTime ? createdAt,
2021 DateTime ? updatedAt,
2122 this .archivedAt,
22- required this .userAuthId,
23+ _i2.UserAccountStatus ? accountStatus,
24+ this .userAuthId,
2325 this .displayName,
2426 required this .email,
2527 this .image,
2628 this .memberships,
27- int ? maxOwnedProjects,
29+ this . maxOwnedProjects,
2830 }) : createdAt = createdAt ?? DateTime .now (),
2931 updatedAt = updatedAt ?? DateTime .now (),
30- maxOwnedProjects = maxOwnedProjects ?? 3 ;
32+ accountStatus = accountStatus ?? _i2. UserAccountStatus .registered ;
3133
3234 factory User ({
3335 int ? id,
3436 DateTime ? createdAt,
3537 DateTime ? updatedAt,
3638 DateTime ? archivedAt,
37- required String userAuthId,
39+ _i2.UserAccountStatus ? accountStatus,
40+ String ? userAuthId,
3841 String ? displayName,
3942 required String email,
4043 Uri ? image,
41- List <_i2 .UserRoleMembership >? memberships,
44+ List <_i3 .UserRoleMembership >? memberships,
4245 int ? maxOwnedProjects,
4346 }) = _UserImpl ;
4447
@@ -52,15 +55,17 @@ abstract class User implements _i1.SerializableModel {
5255 archivedAt: jsonSerialization['archivedAt' ] == null
5356 ? null
5457 : _i1.DateTimeJsonExtension .fromJson (jsonSerialization['archivedAt' ]),
55- userAuthId: jsonSerialization['userAuthId' ] as String ,
58+ accountStatus: _i2.UserAccountStatus .fromJson (
59+ (jsonSerialization['accountStatus' ] as String )),
60+ userAuthId: jsonSerialization['userAuthId' ] as String ? ,
5661 displayName: jsonSerialization['displayName' ] as String ? ,
5762 email: jsonSerialization['email' ] as String ,
5863 image: jsonSerialization['image' ] == null
5964 ? null
6065 : _i1.UriJsonExtension .fromJson (jsonSerialization['image' ]),
6166 memberships: (jsonSerialization['memberships' ] as List ? )
6267 ? .map ((e) =>
63- _i2 .UserRoleMembership .fromJson ((e as Map <String , dynamic >)))
68+ _i3 .UserRoleMembership .fromJson ((e as Map <String , dynamic >)))
6469 .toList (),
6570 maxOwnedProjects: jsonSerialization['maxOwnedProjects' ] as int ? ,
6671 );
@@ -77,8 +82,11 @@ abstract class User implements _i1.SerializableModel {
7782
7883 DateTime ? archivedAt;
7984
85+ /// The status of the user's account.
86+ _i2.UserAccountStatus accountStatus;
87+
8088 /// External user authentication id. Must be unique.
81- String userAuthId;
89+ String ? userAuthId;
8290
8391 String ? displayName;
8492
@@ -89,10 +97,9 @@ abstract class User implements _i1.SerializableModel {
8997 Uri ? image;
9098
9199 /// The role memberships of this user.
92- List <_i2 .UserRoleMembership >? memberships;
100+ List <_i3 .UserRoleMembership >? memberships;
93101
94102 /// Max number of projects this user can own.
95- /// If null, the default value is used.
96103 int ? maxOwnedProjects;
97104
98105 /// Returns a shallow copy of this [User]
@@ -103,11 +110,12 @@ abstract class User implements _i1.SerializableModel {
103110 DateTime ? createdAt,
104111 DateTime ? updatedAt,
105112 DateTime ? archivedAt,
113+ _i2.UserAccountStatus ? accountStatus,
106114 String ? userAuthId,
107115 String ? displayName,
108116 String ? email,
109117 Uri ? image,
110- List <_i2 .UserRoleMembership >? memberships,
118+ List <_i3 .UserRoleMembership >? memberships,
111119 int ? maxOwnedProjects,
112120 });
113121 @override
@@ -117,7 +125,8 @@ abstract class User implements _i1.SerializableModel {
117125 'createdAt' : createdAt.toJson (),
118126 'updatedAt' : updatedAt.toJson (),
119127 if (archivedAt != null ) 'archivedAt' : archivedAt? .toJson (),
120- 'userAuthId' : userAuthId,
128+ 'accountStatus' : accountStatus.toJson (),
129+ if (userAuthId != null ) 'userAuthId' : userAuthId,
121130 if (displayName != null ) 'displayName' : displayName,
122131 'email' : email,
123132 if (image != null ) 'image' : image? .toJson (),
@@ -141,17 +150,19 @@ class _UserImpl extends User {
141150 DateTime ? createdAt,
142151 DateTime ? updatedAt,
143152 DateTime ? archivedAt,
144- required String userAuthId,
153+ _i2.UserAccountStatus ? accountStatus,
154+ String ? userAuthId,
145155 String ? displayName,
146156 required String email,
147157 Uri ? image,
148- List <_i2 .UserRoleMembership >? memberships,
158+ List <_i3 .UserRoleMembership >? memberships,
149159 int ? maxOwnedProjects,
150160 }) : super ._(
151161 id: id,
152162 createdAt: createdAt,
153163 updatedAt: updatedAt,
154164 archivedAt: archivedAt,
165+ accountStatus: accountStatus,
155166 userAuthId: userAuthId,
156167 displayName: displayName,
157168 email: email,
@@ -169,7 +180,8 @@ class _UserImpl extends User {
169180 DateTime ? createdAt,
170181 DateTime ? updatedAt,
171182 Object ? archivedAt = _Undefined ,
172- String ? userAuthId,
183+ _i2.UserAccountStatus ? accountStatus,
184+ Object ? userAuthId = _Undefined ,
173185 Object ? displayName = _Undefined ,
174186 String ? email,
175187 Object ? image = _Undefined ,
@@ -181,11 +193,12 @@ class _UserImpl extends User {
181193 createdAt: createdAt ?? this .createdAt,
182194 updatedAt: updatedAt ?? this .updatedAt,
183195 archivedAt: archivedAt is DateTime ? ? archivedAt : this .archivedAt,
184- userAuthId: userAuthId ?? this .userAuthId,
196+ accountStatus: accountStatus ?? this .accountStatus,
197+ userAuthId: userAuthId is String ? ? userAuthId : this .userAuthId,
185198 displayName: displayName is String ? ? displayName : this .displayName,
186199 email: email ?? this .email,
187200 image: image is Uri ? ? image : this .image,
188- memberships: memberships is List <_i2 .UserRoleMembership >?
201+ memberships: memberships is List <_i3 .UserRoleMembership >?
189202 ? memberships
190203 : this .memberships? .map ((e0) => e0.copyWith ()).toList (),
191204 maxOwnedProjects:
0 commit comments