Files
bol/MIGRATION_SUMMARY.md

5.9 KiB

Résumé de la Migration DataModels BoL

Migration effectuée avec succès

Date : 2026-01-12

Fichiers créés

DataModels (7 fichiers, 664 lignes de code)

  1. module/models/_module.mjs (6 exports)

    • Point d'entrée principal pour tous les DataModels
  2. module/models/character.mjs (241 lignes)

    • DataModel pour les personnages joueurs
    • Gestion complète des attributs, aptitudes, ressources, XP
  3. module/models/encounter.mjs (231 lignes)

    • DataModel pour les PNJ et créatures
    • Ajout de : chartype, isundead, size, environment
  4. module/models/horde.mjs (236 lignes)

    • DataModel pour les hordes
    • Ajout de : hordesize, hordebasehp, hasdamagerule, damagerule
  5. module/models/vehicle.mjs (78 lignes)

    • DataModel pour les véhicules
    • Attributs : hull, crew, resources, row
    • Champs : vehicletype, spur, status, description
  6. module/models/item.mjs (53 lignes)

    • DataModel pour les équipements/objets
    • Propriétés : weapon, armor, magical, etc.
    • Gestion : quantity, weight, price, worn
  7. module/models/feature.mjs (28 lignes)

    • DataModel pour les capacités/traits
    • Champs : rank, category, subtype, description

Documentation (3 fichiers)

  1. MIGRATION_DATAMODELS.md

    • Guide complet de la migration
    • Explication de la structure
    • Avantages et points d'attention
    • Prochaines étapes recommandées
  2. DATAMODELS_GUIDE.md

    • Guide d'utilisation pratique
    • Exemples de code
    • Création, modification, accès aux données
    • Debugging et validation
  3. module/models/README.md

    • Documentation du dossier models
    • Architecture et structure
    • Types de champs utilisés

Fichiers modifiés

  1. module/bol.js
    • Import des DataModels : import * as models from "./models/_module.mjs"
    • Configuration CONFIG.Actor.dataModels (4 types)
    • Configuration CONFIG.Item.dataModels (2 types)
    • Export des models dans game.bol.models

Comparaison avec les systèmes de référence

Aspect fvtt-cthulhu-eternal fvtt-mournblade BoL (après migration)
Structure DataModels DataModels DataModels
Nombre d'Actor types 3 2 4
Nombre d'Item types 12 17 2
prepareDerivedData Oui Non À ajouter
Méthodes métier Oui Partiel À ajouter

Architecture DataModels

BoL DataModels Structure
├── Actor Types (4)
│   ├── character  → BoLCharacter
│   ├── encounter  → BoLEncounter
│   ├── horde      → BoLHorde
│   └── vehicle    → BoLVehicle
│
└── Item Types (2)
    ├── item       → BoLItem
    └── feature    → BoLFeature

Champs DataModel utilisés

  • StringField : Chaînes (textes simples)
  • NumberField : Nombres (avec integer: true pour entiers)
  • BooleanField : Booléens (true/false)
  • HTMLField : HTML enrichi (descriptions, notes)
  • ArrayField : Tableaux (languages, xplog)
  • SchemaField : Objets imbriqués (attributes, resources, etc.)

Compatibilité

100% compatible avec template.json existant

  • Structure de données identique
  • Pas de migration de données nécessaire
  • Fonctionne avec les acteurs/items existants

Avantages de la migration

  1. Validation automatique des données
  2. Performance améliorée
  3. Typage pour TypeScript
  4. Maintenance facilitée
  5. Standard Foundry VTT v12+
  6. Extensibilité (méthodes personnalisées)

Prochaines étapes recommandées

Court terme (recommandé)

  1. Tester : Lancer Foundry et vérifier que tout fonctionne
  2. Valider : Créer des acteurs/items de chaque type
  3. Vérifier : S'assurer que les feuilles de personnage fonctionnent

Moyen terme (conseillé)

  1. prepareDerivedData() : Ajouter calculs automatiques (HP max, défense, etc.)
  2. Méthodes métier : Migrer la logique depuis actor.js vers DataModels
  3. Tests : Créer des tests unitaires pour les DataModels

Long terme (optionnel)

  1. Supprimer template.json : Une fois tout migré et testé
  2. JSDoc : Documenter les DataModels
  3. Validations : Ajouter des validateurs personnalisés
  4. TypeScript : Ajouter des types TypeScript

Vérification de syntaxe

Tous les fichiers ont été vérifiés :

✓ module/bol.js
✓ module/models/_module.mjs
✓ module/models/character.mjs
✓ module/models/encounter.mjs
✓ module/models/feature.mjs
✓ module/models/horde.mjs
✓ module/models/item.mjs
✓ module/models/vehicle.mjs

Notes importantes

  1. Template.json conservé : Pour la rétrocompatibilité
  2. Accès aux données identique : actor.system.attributes.vigor.value
  3. Pas de breaking changes : Migration transparente
  4. Extension facile : Ajout de méthodes dans les DataModels

Exemple d'utilisation

// Accès aux données (identique à avant)
const actor = game.actors.getName("Mon Héros");
console.log(actor.system.attributes.vigor.value);

// Les DataModels sont disponibles via game.bol.models
console.log(game.bol.models.BoLCharacter);

// Modification (identique à avant)
await actor.update({
  "system.resources.hp.value": 10
});

Support et documentation

  • MIGRATION_DATAMODELS.md : Guide de migration complet
  • DATAMODELS_GUIDE.md : Guide d'utilisation avec exemples
  • module/models/README.md : Documentation technique

Références

  • Système de référence 1 : fvtt-cthulhu-eternal
  • Système de référence 2 : fvtt-mournblade
  • Documentation Foundry : DataModel API

Migration réalisée avec succès ! 🎉

Le système BoL utilise maintenant les DataModels de Foundry VTT v12+, aligné sur les meilleures pratiques et compatible avec les systèmes de référence.