#!/usr/bin/env python3 """ Script pour générer des périphériques de test """ import sys from pathlib import Path from datetime import datetime, timedelta import random # Add app to path sys.path.insert(0, str(Path(__file__).parent)) from app.db.session import get_peripherals_db from app.models.peripheral import Peripheral # Données de test TYPES = [ "USB", "Stockage", "Réseau", "Audio", "Vidéo", "Clavier", "Souris", "Webcam", "Adaptateur", "Hub", "Carte réseau", "Bluetooth" ] MARQUES = [ "Logitech", "SanDisk", "Kingston", "TP-Link", "D-Link", "Razer", "Corsair", "Samsung", "Western Digital", "Seagate", "Crucial", "Intel", "Realtek", "Broadcom", "Generic", "Microsoft" ] ETATS = ["Neuf", "Bon", "Usagé", "Défectueux"] BOUTIQUES = ["Amazon", "LDLC", "Rue du Commerce", "CDiscount", "Materiel.net", "Ebay"] def generate_peripherals(count=40): """Génère des périphériques de test""" db = next(get_peripherals_db()) try: print(f"🔧 Génération de {count} périphériques de test...") print("=" * 60) for i in range(1, count + 1): type_principal = random.choice(TYPES) marque = random.choice(MARQUES) # Générer nom basé sur type et marque nom = f"{marque} {type_principal} {random.randint(100, 9999)}" # Modèle modeles = [ f"Model {chr(65 + random.randint(0, 25))}{random.randint(100, 999)}", f"Pro {random.randint(1, 5)}", f"Elite {random.choice(['X', 'S', 'Pro', 'Plus'])}", f"{random.choice(['Ultra', 'Super', 'Mega'])} {random.randint(100, 999)}" ] modele = random.choice(modeles) # Créer périphérique peripheral = Peripheral( nom=nom, type_principal=type_principal, marque=marque, modele=modele, numero_serie=f"SN{random.randint(100000, 999999)}", etat=random.choice(ETATS), rating=random.randint(0, 5), quantite_totale=random.randint(1, 5), quantite_disponible=random.randint(0, 5), prix=round(random.uniform(5.99, 199.99), 2) if random.random() > 0.2 else None, devise="EUR", boutique=random.choice(BOUTIQUES) if random.random() > 0.3 else None, date_achat=(datetime.now() - timedelta(days=random.randint(0, 730))).date() if random.random() > 0.4 else None, garantie_duree_mois=random.choice([12, 24, 36]) if random.random() > 0.5 else None, synthese=f"Périphérique de test #{i}\n\nGénéré automatiquement pour tester la pagination." if random.random() > 0.7 else None, notes=f"Notes de test pour le périphérique #{i}" if random.random() > 0.6 else None, ) db.add(peripheral) if i % 10 == 0: db.commit() print(f" ✅ {i}/{count} périphériques créés") db.commit() print("\n" + "=" * 60) print(f"✅ {count} périphériques de test créés avec succès !") # Statistiques total = db.query(Peripheral).count() print(f"📊 Total dans la base : {total} périphériques") except Exception as e: print(f"❌ Erreur : {e}") db.rollback() finally: db.close() if __name__ == "__main__": import argparse parser = argparse.ArgumentParser(description='Générer des périphériques de test') parser.add_argument('--count', type=int, default=40, help='Nombre de périphériques à générer (défaut: 40)') args = parser.parse_args() generate_peripherals(args.count)