mofilo_barcode_verifier 1.0.1
mofilo_barcode_verifier: ^1.0.1 copied to clipboard
Barcode validation with GS1 checksum verification. Supports EAN-13, UPC-A, EAN-8, and UPC-E formats.
example/main.dart
import 'package:mofilo_barcode_verifier/mofilo_barcode_verifier.dart';
void main() {
print('š Mofilo Barcode Verifier - Example Usage\n');
final verifier = BarcodeVerifier();
// Example 1: Basic Validation
print('1ļøā£ Basic Validation:');
final cocaCola = verifier.verify('5449000000996');
if (cocaCola.isValid) {
print('ā Valid ${cocaCola.barcodeType.name} barcode');
} else {
print('ā Invalid: ${cocaCola.message}');
}
print('');
// Example 2: Invalid Barcode Detection
print('2ļøā£ Invalid Barcode Detection:');
final invalid = verifier.verify('5449000000995'); // Wrong checksum
print('Valid: ${invalid.isValid}');
print('Status: ${invalid.status}');
print('Message: ${invalid.message}');
print('');
// Example 3: Batch Verification
print('3ļøā£ Batch Verification:');
final barcodes = [
'5449000000996', // Coca-Cola (EAN-13)
'012000001970', // Spam (UPC-A)
'96385074', // EAN-8
'invalid123', // Invalid
];
final results = verifier.verifyBatch(barcodes);
for (var i = 0; i < results.length; i++) {
final result = results[i];
final status = result.isValid ? 'ā' : 'ā';
print('$status ${barcodes[i]}: ${result.barcodeType.name} - ${result.message}');
}
print('');
// Example 4: Type Detection
print('4ļøā£ Barcode Type Detection:');
final examples = {
'5449000000996': 'EAN-13 (13 digits)',
'012000001970': 'UPC-A (12 digits)',
'96385074': 'EAN-8 (8 digits)',
'425261': 'UPC-E (6 digits)',
};
examples.forEach((barcode, description) {
final type = verifier.detectType(barcode);
print('$barcode ā ${type.name} ($description)');
});
print('');
// Example 5: Quick Validation
print('5ļøā£ Quick Boolean Check:');
final quickCheck = verifier.isValid('5449000000996');
print('Is Coca-Cola barcode valid? $quickCheck');
print('');
// Example 6: Real-World Scenario
print('6ļøā£ Real-World Food Scanner Scenario:');
print('Scanning products at checkout...\n');
final scannedProducts = [
('5449000000996', 'Coca-Cola'),
('8000500037447', 'Nutella'),
('9002490100070', 'Red Bull'),
('051000012081', 'Campbell Soup'),
];
int validCount = 0;
for (final (barcode, productName) in scannedProducts) {
final result = verifier.verify(barcode);
if (result.isValid) {
validCount++;
print('ā $productName: Valid ${result.barcodeType.name}');
} else {
print('ā $productName: ${result.message}');
}
}
print('\nSummary: $validCount/${scannedProducts.length} products validated successfully');
print('');
// Example 7: Error Handling
print('7ļøā£ Error Handling:');
final testCases = [
'', // Empty
'ABC123', // Non-numeric
'12345', // Wrong length
'544 900 000 099 6', // Contains spaces
];
for (final barcode in testCases) {
final result = verifier.verify(barcode);
print('Input: "$barcode"');
print(' Status: ${result.status}');
print(' Message: ${result.message}');
if (result.errors.isNotEmpty) {
print(' Errors: ${result.errors.join(", ")}');
}
print('');
}
// Example 8: JSON Serialization
print('8ļøā£ JSON Serialization:');
final result = verifier.verify('5449000000996');
final json = result.toJson();
print('Result as JSON:');
json.forEach((key, value) {
print(' $key: $value');
});
print('');
// Example 9: Different Regions
print('9ļøā£ Global Coverage:');
final globalProducts = {
'5449000000996': 'Europe - Coca-Cola',
'012000001970': 'USA - Spam',
'8000500037447': 'Italy - Nutella',
'9002490100070': 'Austria - Red Bull',
'4006040052425': 'Germany - Haribo',
};
globalProducts.forEach((barcode, product) {
final result = verifier.verify(barcode);
final status = result.isValid ? 'ā' : 'ā';
print('$status $product: ${result.barcodeType.name}');
});
print('\n⨠All examples completed!');
}