Aller au contenu

Historique et copies

tilttek/deck-builder

Versions

Decks::save($deck, $at, $note = null) enregistre le paquet comme sa version suivante, à partir de 1 : une DeckVersion avec le paquet tel qu'il était, le moment en UTC et une note facultative d'au plus 500 caractères — « après le régional ». Une version n'est jamais réécrite. Un paquet qui n'a pas changé depuis sa dernière version garde cette version, de sorte qu'enregistrer à chaque changement d'un formulaire est sans danger.

Deux requêtes qui enregistrent le même paquet en même temps demandent à l'entrepôt d'ajouter la même version : l'entrepôt garde la première, et la seconde lève DeckConflict, pour que l'application relise le paquet.

MéthodeDonne
latest($deck)La dernière version
version($deck, $version)Une version donnée
history($deck)Chaque version, de la première à la dernière

Un paquet sans version enregistrée, ou sans la version demandée, lève UnknownDeck.

Différences

Decks::diff($deck, $from, $to) donne le DeckDiff entre deux versions, dans un ordre ou dans l'autre ; DeckDiff::between() compare deux paquets quelconques. Il liste les cartes ajoutées, retirées et dont la quantité a changé, et si le nom ou le format a changé ; lines() les écrit pour que les gens les lisent :

+2 ember-fox
-1 fox-den
storm-call: 2 → 1
Name: "Foxes" → "Foxes II"

Copies

Decks::copy($deck, $as, $name, $at, $version = null) copie une version d'un paquet — sa dernière par défaut — comme première version d'un nouveau paquet d'identifiant $as, dont copiedFrom est une DeckReference vers le paquet et la version d'origine. La copie garde le format et les cartes de l'original ; l'original n'est jamais changé. Un identifiant déjà utilisé lève DeckConflict.

Le lien reste avec la copie et ses versions suivantes, de sorte qu'une application peut montrer d'où vient un paquet et compter les copies d'un paquet publié.