Skip to content

feat: add card batch-patch system (dated JSON files, ledger-tracked a… - #69

Merged
toxicity1985 merged 1 commit into
mainfrom
feature/card-batch-patches
Jul 22, 2026
Merged

feat: add card batch-patch system (dated JSON files, ledger-tracked a…#69
toxicity1985 merged 1 commit into
mainfrom
feature/card-batch-patches

Conversation

@toxicity1985

Copy link
Copy Markdown
Collaborator

…pply)

Adds a migration-style mechanism for one-off card corrections: dated JSON files under datas/card_patches/ target Card by exact reference or a trailing-wildcard pattern (for bulk-flagging uniques sharing a base card, e.g. ALT_ALIZE_B_BR_37_U_*). Fields are routed to Card or CardGroup depending on which entity owns them, with CardGroup writes restricted to boolean status flags (isBanned/isSuspended/isErrated) and deduplicated per group. CardPatchValidator checks structure and field whitelists before anything is written. app:cards:apply-patches scans the directory in filename (date) order, skips files already recorded in card_patch_log so a reimport never reprocesses them, and batches the Meilisearch resync the same way the gameplay-format import does to avoid the earlier 504.

…pply)

Adds a migration-style mechanism for one-off card corrections: dated
JSON files under datas/card_patches/ target Card by exact reference
or a trailing-wildcard pattern (for bulk-flagging uniques sharing a
base card, e.g. ALT_ALIZE_B_BR_37_U_*). Fields are routed to Card or
CardGroup depending on which entity owns them, with CardGroup writes
restricted to boolean status flags (isBanned/isSuspended/isErrated)
and deduplicated per group. CardPatchValidator checks structure and
field whitelists before anything is written. app:cards:apply-patches
scans the directory in filename (date) order, skips files already
recorded in card_patch_log so a reimport never reprocesses them, and
batches the Meilisearch resync the same way the gameplay-format
import does to avoid the earlier 504.
@toxicity1985
toxicity1985 merged commit 0867954 into main Jul 22, 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