Skip to content

feat: import missing EOLEOP/EOLETOP promo cards - #73

Merged
toxicity1985 merged 1 commit into
mainfrom
feature/import-eoleop-eoletop-missing-cards
Sep 14, 2026
Merged

toxicity1985 merged 1 commit into
mainfrom
feature/import-eoleop-eoletop-missing-cards

Conversation

@julesduroux

Copy link
Copy Markdown
Contributor

Contexte

Deux sets (EOLEOP "Roots of Corruption - Organized Play" et EOLETOP "Roots of
Corruption - Box Topper") n'ont jamais de dossier json/ dans le repo communautaire
AlteredEquinox/cards-nonunique (seules les images existent) — l'import classique
(app:import:equinox) n'a donc jamais rien pu importer pour ces 65 cartes.

Ce qui change

  • datas/card_set.csv : ajout des deux Sets manquants
  • datas/equinox/EOLEOP/ et datas/equinox/EOLETOP/ : 65 fichiers JSON, au format
    attendu par app:import:equinox (SET/FACTION/NUM/reference.json)

Chaque JSON est le vrai JSON Equinox de la carte donneuse (même carte, même
CardFamilyId, retrouvée dans un set qui a un vrai json/ — EOLE, BISE, CYCLONE
selon les cas), avec uniquement ces champs patchés :

  • id (nouvel identifiant, jamais celui du donneur — sinon risque d'écraser la
    carte donneuse existante en base)
  • reference, cardSet, cardProduct, isExclusive
  • collectorNumberFormatted et illustrator.nickName — lus directement sur les
    cartes imprimées (aucune des deux données n'existe côté Equinox pour ces sets)
  • mainFaction pour les variantes à faction alternative (_R2)
  • imagePath/assets/images de traduction mis à null (pas d'art de prod
    disponible pour ces impressions précises)

Le texte d'effet, le nom, les sous-types, la rareté et les stats viennent
tels quels du donneur — rien n'a été reconstruit.

Un cas a nécessité un arbitrage : pour les 3 Héros (AX_65, MU_65, OR_65),
deux donneurs existaient (CYCLONE et EOLE) avec un texte légèrement différent
(errata/format de mot-clé) — la version EOLE a été retenue (même génération
de texte de règles qu'EOLETOP, et format de mot-clé compatible avec
KeywordLocalizer).

Validation

Testé en local via Docker : dry-run et import réel tous les deux propres
(65/65 créées, 0 erreur), un second passage confirme l'idempotence
(0 créée / 65 mises à jour, pas de doublon). Vérifié en base que les traductions
5 langues et le partage de card_group entre réimpressions sont corrects.

À exécuter après merge (aucune migration de schéma dans cette PR)

php bin/console app:import:sets
php bin/console app:import:equinox --set EOLEOP --dry-run
php bin/console app:import:equinox --set EOLEOP
php bin/console app:import:equinox --set EOLETOP --dry-run
php bin/console app:import:equinox --set EOLETOP

Adds the two Sets (Roots of Corruption - Organized Play / Box Topper)
and 65 card JSON files for prints that have no json/ source in the
AlteredEquinox/cards-nonunique repo (only image assets exist there).

Each file is a real donor card's Equinox JSON (same CardFamilyId,
matched via CardsData's own asset-derived NonUniquePrints.csv) with
only the print-identity fields patched: id, reference, cardSet,
cardProduct, isExclusive, collectorNumberFormatted, illustrator, and
mainFaction for the alt-faction (_R2) variants. Effect text, name,
subtypes, rarity and stats come verbatim from the donor - collector
numbers and artist names were read directly off the printed cards
since neither exists in Equinox's data for these two sets.

Validated locally: dry-run and real import both clean (65/65
created, 0 errors), re-run confirms idempotence (0 created / 65
updated).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@toxicity1985
toxicity1985 merged commit 94d44e4 into main Sep 14, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants