class ProductManualModel { final String id; final String title; final ProductManualDetails productManual; final String createdAt; final String updatedAt; ProductManualModel({ required this.id, required this.title, required this.productManual, required this.createdAt, required this.updatedAt, }); // Factory method to create a ProductManualModel from JSON factory ProductManualModel.fromJson(Map json) { return ProductManualModel( id: json['_id'] ?? '', title: json['title'] ?? '', productManual: ProductManualDetails.fromJson(json['product_manual']), createdAt: json['createdAt'], updatedAt: json['updatedAt'], ); } // Method to convert a ProductManualModel to JSON Map toJson() { return { '_id': id, 'title': title, 'product_manual': productManual.toJson(), 'createdAt': createdAt, 'updatedAt': updatedAt, }; } // Override toString for better debugging @override String toString() { return 'ProductManualModel(id: $id, title: $title, productManual: $productManual, createdAt: $createdAt, updatedAt: $updatedAt)'; } } class ProductManualDetails { final String publicId; final String url; final String filename; ProductManualDetails({ required this.publicId, required this.url, required this.filename, }); // Factory method to create ProductManualDetails from JSON factory ProductManualDetails.fromJson(Map json) { return ProductManualDetails( publicId: json['public_id'] ?? '', url: json['url'] ?? '', filename: json['filename'] ?? '', ); } // Method to convert ProductManualDetails to JSON Map toJson() { return { 'public_id': publicId, 'url': url, 'filename': filename, }; } // Override toString for better debugging @override String toString() { return 'ProductManualDetails(publicId: $publicId, url: $url, filename: $filename)'; } } // Model for handling the entire response class ProductManualResponse { final bool success; final List productManuals; final int total; ProductManualResponse({ required this.success, required this.productManuals, required this.total, }); // Factory method to create ProductManualResponse from JSON factory ProductManualResponse.fromJson(Map json) { var productList = (json['productManuals'] as List) .map((manual) => ProductManualModel.fromJson(manual)) .toList(); return ProductManualResponse( success: json['success'] ?? false, productManuals: productList, total: json['total'] ?? 0, ); } // Method to convert ProductManualResponse to JSON Map toJson() { return { 'success': success, 'productManuals': productManuals.map((manual) => manual.toJson()).toList(), 'total': total, }; } // Override toString for better debugging @override String toString() { return 'ProductManualResponse(success: $success, total: $total, productManuals: $productManuals)'; } }