marco.pms.mobileapp/lib/model/employees/employee_details_model.dart

117 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);
}
}