main function
void
main()
Implementation
void main() {
print('šÆ Mixed Model Examples\n');
// Example 1: Schema-only validation
print('1ļøā£ Basic User (schema-only):');
final basicUserData = {
'id': 'user_123',
'username': 'johndoe',
'email': 'john@example.com',
};
try {
final result = basicUserSchema.parse(basicUserData) as Map<String, dynamic>;
print(' ā
Valid: ${result['username']}');
} catch (e) {
print(' ā Error: $e');
}
// Example 2: Enhanced User validation
print('\n2ļøā£ Enhanced User (schema validation):');
final enhancedUserData = {
'id': 'user_456',
'username': 'janedoe',
'email': 'jane@example.com',
'createdAt': '2024-01-15T10:30:00Z',
};
try {
final result =
enhancedUserSchema.parse(enhancedUserData) as Map<String, dynamic>;
print(' ā
Valid user:');
print(' Username: ${result['username']}');
print(' Email: ${result['email']}');
print(' Created: ${result['createdAt']}');
} catch (e) {
print(' ā Error: $e');
}
// Example 3: Enum validation
print('\n3ļøā£ Order Status (enum validation):');
final orderData = {'id': 'order_789', 'status': 'shipped', 'total': 149.99};
try {
final result = orderSchema.parse(orderData) as Map<String, dynamic>;
print(' ā
Valid status: ${result['status']}');
} catch (e) {
print(' ā Error: $e');
}
// Example 4: Nested models validation
print('\n4ļøā£ Blog Post (nested models):');
final blogData = {
'id': 'post_001',
'title': 'Getting Started with Ack',
'content': 'Learn how to use schema validation...',
'author': enhancedUserData,
'publishedAt': '2024-01-20T14:00:00Z',
'tags': ['dart', 'validation', 'tutorial'],
'viewCount': 1500,
'featured': true,
};
try {
final result = blogPostSchema.parse(blogData) as Map<String, dynamic>;
print(' ā
Blog post: ${result['title']}');
print(
' Author: ${(result['author'] as Map<String, dynamic>)['username']}',
);
print(' Tags: ${(result['tags'] as List).join(', ')}');
print(' Metadata: ${result['metadata']}');
} catch (e) {
print(' ā Error: $e');
}
// Example 5: Constraints validation
print('\n5ļøā£ Product Inventory (constraints):');
// Valid data
final validInventory = {
'sku': 'PROD-123',
'quantity': 50,
'unitPrice': 29.99,
'lastRestocked': '2024-01-15',
'isAvailable': true,
};
try {
final result =
productInventorySchema.parse(validInventory) as Map<String, dynamic>;
print(' ā
Valid inventory: SKU ${result['sku']}');
} catch (e) {
print(' ā Error: $e');
}
// Invalid data
final invalidInventory = {
'sku': 'PR', // Too short
'quantity': -5, // Negative
'unitPrice': 0, // Below minimum
'lastRestocked': '2024/01/15', // Wrong format
'isAvailable': true,
};
try {
productInventorySchema.parse(invalidInventory);
} catch (e) {
print(' ā Validation errors detected');
}
print('\n⨠Examples demonstrate:');
print(' - Schema validation');
print(' - Enum validation');
print(' - Nested model support');
print(' - Constraint validation');
print(' - Additional properties handling');
}