getSuggestions method

List<String> getSuggestions()

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