118 lines
3.5 KiB
Dart
118 lines
3.5 KiB
Dart
class EmployeeDetailsModel {
|
|
final String id;
|
|
final String firstName;
|
|
final String lastName;
|
|
final String? middleName;
|
|
final String? email;
|
|
final String gender;
|
|
final DateTime? birthDate;
|
|
final DateTime? joiningDate;
|
|
final String? permanentAddress;
|
|
final String? currentAddress;
|
|
final String phoneNumber;
|
|
final String? emergencyPhoneNumber;
|
|
final String? emergencyContactPerson;
|
|
final bool isActive;
|
|
final bool isRootUser;
|
|
final bool isSystem;
|
|
final String jobRole;
|
|
final String jobRoleId;
|
|
final String? photo;
|
|
final String? applicationUserId;
|
|
final bool hasApplicationAccess;
|
|
final String? organizationId;
|
|
final String? aadharNumber;
|
|
final String? panNumber;
|
|
EmployeeDetailsModel({
|
|
required this.id,
|
|
required this.firstName,
|
|
required this.lastName,
|
|
this.middleName,
|
|
this.email,
|
|
required this.gender,
|
|
this.birthDate,
|
|
this.joiningDate,
|
|
this.permanentAddress,
|
|
this.currentAddress,
|
|
required this.phoneNumber,
|
|
this.emergencyPhoneNumber,
|
|
this.emergencyContactPerson,
|
|
required this.isActive,
|
|
required this.isRootUser,
|
|
required this.isSystem,
|
|
required this.jobRole,
|
|
required this.jobRoleId,
|
|
this.photo,
|
|
this.applicationUserId,
|
|
required this.hasApplicationAccess,
|
|
this.organizationId,
|
|
this.aadharNumber,
|
|
this.panNumber,
|
|
});
|
|
|
|
factory EmployeeDetailsModel.fromJson(Map<String, dynamic> json) {
|
|
return EmployeeDetailsModel(
|
|
id: json['id'],
|
|
firstName: json['firstName'],
|
|
lastName: json['lastName'],
|
|
middleName: json['middleName'],
|
|
email: json['email'],
|
|
gender: json['gender'],
|
|
birthDate: _parseDate(json['birthDate']),
|
|
joiningDate: _parseDate(json['joiningDate']),
|
|
permanentAddress: json['permanentAddress'],
|
|
currentAddress: json['currentAddress'],
|
|
phoneNumber: json['phoneNumber'],
|
|
emergencyPhoneNumber: json['emergencyPhoneNumber'],
|
|
emergencyContactPerson: json['emergencyContactPerson'],
|
|
isActive: json['isActive'],
|
|
isRootUser: json['isRootUser'],
|
|
isSystem: json['isSystem'],
|
|
jobRole: json['jobRole'],
|
|
jobRoleId: json['jobRoleId'],
|
|
photo: json['photo'],
|
|
applicationUserId: json['applicationUserId'],
|
|
hasApplicationAccess: json['hasApplicationAccess'],
|
|
organizationId: json['organizationId'],
|
|
aadharNumber: json['aadharNumber'],
|
|
panNumber: json['panNumber'],
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'id': id,
|
|
'firstName': firstName,
|
|
'lastName': lastName,
|
|
'middleName': middleName,
|
|
'email': email,
|
|
'gender': gender,
|
|
'birthDate': birthDate?.toIso8601String(),
|
|
'joiningDate': joiningDate?.toIso8601String(),
|
|
'permanentAddress': permanentAddress,
|
|
'currentAddress': currentAddress,
|
|
'phoneNumber': phoneNumber,
|
|
'emergencyPhoneNumber': emergencyPhoneNumber,
|
|
'emergencyContactPerson': emergencyContactPerson,
|
|
'isActive': isActive,
|
|
'isRootUser': isRootUser,
|
|
'isSystem': isSystem,
|
|
'jobRole': jobRole,
|
|
'jobRoleId': jobRoleId,
|
|
'photo': photo,
|
|
'applicationUserId': applicationUserId,
|
|
'hasApplicationAccess': hasApplicationAccess,
|
|
'organizationId': organizationId,
|
|
'aadharNumber': aadharNumber,
|
|
'panNumber': panNumber,
|
|
};
|
|
}
|
|
|
|
static DateTime? _parseDate(String? dateStr) {
|
|
if (dateStr == null || dateStr == "0001-01-01T00:00:00") {
|
|
return null;
|
|
}
|
|
return DateTime.tryParse(dateStr);
|
|
}
|
|
}
|