feat: stocker et afficher les données étendues dans le modal détail

- Ajout des champs a_propos, description, carateristique, details au modèle ProductSnapshot
- Sérialisation JSON pour les listes et dictionnaires
- Modification du CRUD pour stocker/lire les données étendues
- Modification du runner pour passer les données lors du scrape
- AddProductModal envoie les données étendues lors de la création
- La base SQLite doit être recréée (suppression de suivi.db)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-20 03:30:09 +01:00
parent 6a10d496d8
commit 58e9aa1429
5 changed files with 83 additions and 1 deletions

View File

@@ -93,6 +93,19 @@ def _create_snapshot(
# Mettre à jour le produit avec titre/image si manquants
_update_product_from_scrape(session, product, data)
# Sérialiser les données étendues en JSON
a_propos = data.get("a_propos")
if a_propos is not None:
a_propos = json.dumps(a_propos, ensure_ascii=False)
carateristique = data.get("carateristique")
if carateristique is not None:
carateristique = json.dumps(carateristique, ensure_ascii=False)
details = data.get("details")
if details is not None:
details = json.dumps(details, ensure_ascii=False)
snapshot = models.ProductSnapshot(
produit_id=product.id,
run_scrap_id=run.id,
@@ -107,6 +120,10 @@ def _create_snapshot(
choix_amazon=data.get("choix_amazon"),
offre_limitee=data.get("offre_limitee"),
exclusivite_amazon=data.get("exclusivite_amazon"),
a_propos=a_propos,
description=data.get("description"),
carateristique=carateristique,
details=details,
chemin_json_brut=str(raw_json_path) if raw_json_path else None,
statut_scrap=status,
message_erreur=error_message,