getSuggestions method
Get all available fields as suggestions based on document type.
Implementation
List<String> getSuggestions() {
final suggestions = <String>[];
// Common suggestions for all documents
suggestions.addAll([
'name',
'phone',
'address',
'date of birth',
]);
final docType = _documentType?.toLowerCase() ?? '';
// Document-specific suggestions
if (docType.contains('aadhaar') || docType.contains('aadhar')) {
suggestions.addAll([
'aadhaar number',
'gender',
'father name',
'VID',
]);
} else if (docType.contains('pan')) {
suggestions.addAll([
'PAN number',
'father name',
]);
} else if (docType.contains('passport')) {
suggestions.addAll([
'passport number',
'nationality',
'place of birth',
'issue date',
'expiry date',
]);
} else if (docType.contains('voter') || docType.contains('epic')) {
suggestions.addAll([
'voter ID',
'EPIC number',
'father name',
'constituency',
]);
} else if (docType.contains('license') || docType.contains('licence') || docType.contains('dl')) {
suggestions.addAll([
'license number',
'vehicle class',
'valid till',
'blood group',
'RTO',
]);
} else if (docType.contains('cheque') || docType.contains('check')) {
suggestions.addAll([
'cheque number',
'MICR code',
'IFSC code',
'bank name',
'amount',
]);
} else if (docType.contains('loan')) {
suggestions.addAll([
'loan number',
'EMI amount',
'interest rate',
'tenure',
'outstanding balance',
'sanction date',
'maturity date',
'co-applicant',
]);
} else if (docType.contains('bank') || docType.contains('soa') || docType.contains('statement')) {
suggestions.addAll([
'account number',
'IFSC code',
'closing balance',
'bank name',
'statement period',
]);
} else if (docType.contains('vehicle') || docType.contains('rc') || docType.contains('registration')) {
suggestions.addAll([
'registration number',
'chassis number',
'engine number',
'owner name',
'make',
'model',
'fuel type',
'fitness valid',
'insurance valid',
]);
} else {
// Generic document - add all common suggestions
suggestions.addAll([
'aadhaar number',
'PAN number',
'account number',
'voter ID',
'license number',
'passport number',
]);
}
// Add extracted field names as suggestions (without duplicates)
final lowerSuggestions = suggestions.map((s) => s.toLowerCase()).toSet();
for (final key in _extractedFields.keys) {
if (!lowerSuggestions.contains(key.toLowerCase())) {
suggestions.add(key);
}
}
return suggestions;
}