User constructor
User({
- @Default('') @JsonKey(name: 'id') String userId,
- @Default('') @JsonKey(name: 'healthID') String healthId,
- @Default('') @JsonKey(name: 'username') String username,
- @Default('') @JsonKey(name: 'name') String name,
- @Default('') @JsonKey(name: 'firstName') String firstName,
- @Default('') @JsonKey(name: 'lastName') String lastName,
- @Default('') @JsonKey(name: 'nationalID') String nationalID,
- @Default('') @JsonKey(name: 'dateOfBirth') String dateOfBirth,
- @Default(Gender.unknown) @JsonKey(name: 'gender', fromJson: genderFromJson, toJson: genderToJson) Gender gender,
- @Default('') @JsonKey(name: 'avatar') String avatar,
- @JsonKey(name: 'contacts') Contact? primaryContact,
- @Default(<Contact>[]) @JsonKey(name: 'secondaryContacts') List<
Contact> secondaryContacts, - @Default('') @JsonKey(name: 'email') String email,
- @Default(<String>[]) @JsonKey(name: 'languages') List<
String> languages, - @Default('') @JsonKey(name: 'currentOrganizationID') String currentOrganizationID,
- @Default('') @JsonKey(name: 'currentProgramID') String currentProgramID,
- @Default(false) @JsonKey(name: 'active') bool active,
- @Default(false) @JsonKey(name: 'termsAccepted') bool termsAccepted,
- @Default(false) @JsonKey(name: 'hasSetPin') bool hasSetPin,
- @Default(false) @JsonKey(name: 'hasSetNickname') bool hasSetNickname,
- @Default(false) @JsonKey(name: 'isPhoneVerified') bool isPhoneVerified,
- @Default(false) @JsonKey(name: 'pinChangeRequired') bool pinChangeRequired,
- @Default(false) @JsonKey(name: 'pinUpdateRequired') bool pinUpdateRequired,
- @Default(false) @JsonKey(name: 'suspended') bool suspended,
- @Default('') String streamToken,
Implementation
factory User({
// Identification
@Default('') @JsonKey(name: 'id') String userId,
@Default('') @JsonKey(name: 'healthID') String healthId,
@Default('') @JsonKey(name: 'username') String username,
@Default('') @JsonKey(name: 'name') String name,
@Default('') @JsonKey(name: 'firstName') String firstName,
@Default('') @JsonKey(name: 'lastName') String lastName,
@Default('') @JsonKey(name: 'nationalID') String nationalID,
// Personal Information
@Default('') @JsonKey(name: 'dateOfBirth') String dateOfBirth,
@Default(Gender.unknown)
@JsonKey(name: 'gender', fromJson: genderFromJson, toJson: genderToJson)
Gender gender,
@Default('') @JsonKey(name: 'avatar') String avatar,
// Contact Information
@JsonKey(name: 'contacts') Contact? primaryContact,
@Default(<Contact>[])
@JsonKey(name: 'secondaryContacts')
List<Contact> secondaryContacts,
@Default('') @JsonKey(name: 'email') String email,
// Settings and Preferences
@Default(<String>[]) @JsonKey(name: 'languages') List<String> languages,
@Default('')
@JsonKey(name: 'currentOrganizationID')
String currentOrganizationID,
@Default('') @JsonKey(name: 'currentProgramID') String currentProgramID,
// Status Flags
@Default(false) @JsonKey(name: 'active') bool active,
@Default(false) @JsonKey(name: 'termsAccepted') bool termsAccepted,
@Default(false) @JsonKey(name: 'hasSetPin') bool hasSetPin,
@Default(false) @JsonKey(name: 'hasSetNickname') bool hasSetNickname,
@Default(false) @JsonKey(name: 'isPhoneVerified') bool isPhoneVerified,
@Default(false) @JsonKey(name: 'pinChangeRequired') bool pinChangeRequired,
@Default(false) @JsonKey(name: 'pinUpdateRequired') bool pinUpdateRequired,
@Default(false) @JsonKey(name: 'suspended') bool suspended,
// Additional Information
@Default('') String streamToken,
}) = _User;