textToPassport method
dynamic
textToPassport(
- dynamic text, {
- required String? inputGivenName,
- required String? inputSurName,
- required String? inputCitizenShipNumber,
- required String? inputFatherName,
- required String? inputAddress,
- required String? inputPassportNumber,
- required String? inputExpiryDate,
- required String? inputIssueDate,
- required String? inputBirthDate,
- required String? inputGender,
- required String? inputCountry,
- required String? inputTrackingNumber,
Implementation
textToPassport(text,
{required String? inputGivenName,
required String? inputSurName,
required String? inputCitizenShipNumber,
required String? inputFatherName,
required String? inputAddress,
required String? inputPassportNumber,
required String? inputExpiryDate,
required String? inputIssueDate,
required String? inputBirthDate,
required String? inputGender,
required String? inputCountry,
required String? inputTrackingNumber}) {
String? givenName;
String? fatherName;
String? surName;
String? passportNumber;
String? citizenShipNumber;
String? address;
String? expiryDate;
String? issueDate;
String? birthDate;
String? gender;
String? country;
String? trackingNumber;
debugPrint('----------------------------- I am from passport model');
debugPrint(text);
country = text.toLowerCase().contains('pakistan') ? 'Pakistan' : 'Unknown';
text = removeStopWords(text);
List<String> dates = getDates(text);
if (dates.length > 2) {
birthDate = dates[0];
issueDate = dates[1];
expiryDate = dates[2];
removeFromText(text, birthDate);
removeFromText(text, issueDate);
removeFromText(text, expiryDate);
}
citizenShipNumber = extractIdCardNumber(text);
removeFromText(text, citizenShipNumber);
trackingNumber = extractTrackingNumber(text);
removeFromText(text, trackingNumber);
String prefix =
text.split(' ')['Surname'.bestMatch(text.split(' ')).bestMatchIndex];
surName = getValueFromPrefix(text, '$prefix ');
removeFromText(text, surName);
prefix = text.split(' ')['Given'.bestMatch(text.split(' ')).bestMatchIndex];
// List<String> list = text.split(' ');
// String prefix = 'Given'.bestMatch(list).toString();
// prefix = 'Given'.bestMatch(text.split(' ')).toString();
prefix =
"$prefix ${text.split(' ')[getValueFromPrefix(text, '$prefix ').bestMatch(text.split(' ')).bestMatchIndex ?? '']} ";
// print('------------------ $prefix');
givenName = getValueFromPrefix(text, prefix);
prefix =
text.split(' ')['Father'.bestMatch(text.split(' ')).bestMatchIndex];
prefix =
"$prefix ${text.split(' ')[getValueFromPrefix(text, '$prefix ').bestMatch(text.split(' ')).bestMatchIndex ?? '']} ";
removeFromText(text, givenName);
fatherName = getValueFromPrefix(text, prefix);
// passportNumber = extractByRegex(text, r'^(?!^0+$)[a-zA-Z0-9]{3,20}$');
removeFromText(text, fatherName);
passportNumber = extractPassportNumber(text);
removeFromText(text, passportNumber);
gender = getGender(text);
removeFromText(text, gender);
prefix = text.split(' ')['Place'.bestMatch(text.split(' ')).bestMatchIndex];
String prefixMid = text.split(' ')[getValueFromPrefix(text, '$prefix ')
.bestMatch(text.split(' '))
.bestMatchIndex ??
''];
prefix =
"$prefix $prefixMid ${text.split(' ')[getValueFromPrefix(text, '$prefixMid ').bestMatch(text.split(' ')).bestMatchIndex ?? '']} ";
debugPrint('---------------- $prefix');
address = getValueFromPrefix(text, prefix);
Map<String, String?> passportData = {
'given_name': givenName ?? inputGivenName,
'surname': surName ?? inputSurName,
'citizenship_number': citizenShipNumber ?? inputCitizenShipNumber,
'address': address ?? inputAddress,
'father_name': fatherName ?? inputFatherName,
'passport_number': passportNumber ?? inputPassportNumber,
'date_of_expiry': expiryDate ?? inputExpiryDate,
'date_of_issue': issueDate ?? inputIssueDate,
'date_of_birth': birthDate ?? inputBirthDate,
'country': country ?? inputCountry,
'gender': gender ?? inputGender,
'tracking_number': trackingNumber ?? inputTrackingNumber
};
// passportData['given_name'] ?? inputGivenName;
// passportData['surname'] ?? inputSurName;
// passportData['citizenship_number'] ?? inputCitizenShipNumber;
// passportData['address'] ?? inputAddress;
// passportData['father_name'] ?? inputFatherName;
// passportData['passport_number'] ?? inputFatherName;
// passportData['date_of_expiry'] ?? inputExpiryDate;
// passportData['date_of_issue'] ?? inputIssueDate;
// passportData['date_of_birth'] ?? inputBirthDate;
// country = passportData['country'] ?? inputCountry;
// gender = passportData['gender'] ?? inputGender;
debugPrint(passportData.toString());
return passportData;
}