import 'dart:typed_data'; import 'package:em2rp/models/equipment_model.dart'; import 'package:em2rp/services/unified_pdf_generator_service.dart'; // Export QRLabelFormat pour rétrocompatibilité export 'package:em2rp/services/unified_pdf_generator_service.dart' show QRLabelFormat; /// Service pour la génération de PDFs avec QR codes pour équipements /// WRAPPER LEGACY - Utilise maintenant UnifiedPDFGeneratorService @Deprecated('Utiliser UnifiedPDFGeneratorService directement') class PDFGeneratorService { /// Génère un PDF avec des QR codes selon le format choisi static Future generateQRCodesPDF({ required List equipmentList, required QRLabelFormat format, }) async { // Pour les grandes étiquettes, ajouter les détails if (format == QRLabelFormat.large) { return UnifiedPDFGeneratorService.generateAdvancedQRCodesPDF( items: equipmentList, getId: (eq) => eq.id, getTitle: (eq) => '${eq.brand ?? ''} ${eq.model ?? ''}'.trim(), getSubtitle: (eq) { final details = []; // Marque if (eq.brand != null && eq.brand!.isNotEmpty) { details.add('Marque: ${eq.brand}'); } // Modèle if (eq.model != null && eq.model!.isNotEmpty) { details.add('Modèle: ${eq.model}'); } // Catégorie details.add('Catégorie: ${_getCategoryLabel(eq.category)}'); return details; }, format: format, ); } // Pour petites et moyennes étiquettes, juste ID + marque/modèle return UnifiedPDFGeneratorService.generateAdvancedQRCodesPDF( items: equipmentList, getId: (eq) => eq.id, getTitle: (eq) => '${eq.brand ?? ''} ${eq.model ?? ''}'.trim(), getSubtitle: null, format: format, ); } static String _getCategoryLabel(EquipmentCategory category) { switch (category) { case EquipmentCategory.lighting: return 'Lumière'; case EquipmentCategory.sound: return 'Son'; case EquipmentCategory.video: return 'Vidéo'; case EquipmentCategory.effect: return 'Effets'; case EquipmentCategory.structure: return 'Structure'; case EquipmentCategory.cable: return 'Câble'; case EquipmentCategory.consumable: return 'Consommable'; case EquipmentCategory.other: return 'Autre'; } } }