# DataModels Ecryme ## Vue d'ensemble Ce dossier contient les DataModels pour le système Ecryme. Les DataModels sont la méthode moderne de Foundry VTT (v10+) pour définir les structures de données des acteurs et des items. ## Migration depuis template.json Le système Ecryme a été migré de l'ancien système `template.json` vers les DataModels. Le fichier `template.json` est conservé pour référence mais est maintenant marqué comme deprecated. ## Structure des fichiers ### Modèles d'Items - **equipment.js** - Équipements génériques - **weapon.js** - Armes (mêlée et distance) - **trait.js** - Traits de personnage - **specialization.js** - Spécialisations de compétences - **maneuver.js** - Manœuvres de combat - **scar.js** - Cicatrices (impacts permanents) - **annency-item.js** - Items Annency - **boheme.js** - Bohèmes - **contact.js** - Contacts - **confrontation.js** - Confrontations ### Modèles d'Acteurs - **pc.js** - Personnages joueurs (PC) - **npc.js** - Personnages non-joueurs (NPC) - **annency.js** - Annency (acteurs spéciaux) ### Fichier d'index - **_module.js** - Centralise tous les exports des DataModels ## Utilisation Les DataModels sont automatiquement enregistrés dans `CONFIG.Actor.dataModels` et `CONFIG.Item.dataModels` lors de l'initialisation du système dans `ecryme-main.js`. ### Accès aux données Dans les acteurs et items, les données du système sont accessibles via `actor.system` ou `item.system` : ```javascript // Exemple avec un PC const athletics = actor.system.skills.physical.skilllist.athletics.value; // Exemple avec une arme const weaponType = item.system.weapontype; ``` ## Avantages des DataModels 1. **Validation automatique** - Les types de champs sont vérifiés automatiquement 2. **Valeurs par défaut** - Chaque champ a une valeur initiale définie 3. **Type safety** - Meilleure autocomplete dans les IDEs 4. **Performance** - Optimisation interne de Foundry VTT 5. **Maintenance** - Code plus propre et organisé ## Compatibilité Les DataModels sont rétrocompatibles avec les données existantes. Les acteurs et items créés avec l'ancien système `template.json` seront automatiquement migrés vers les nouveaux DataModels lors de leur chargement. ## Développement Pour ajouter un nouveau type d'acteur ou d'item : 1. Créer un nouveau fichier DataModel dans ce dossier 2. Définir le schema avec `static defineSchema()` 3. Exporter le modèle dans `_module.js` 4. Enregistrer le modèle dans `ecryme-main.js` (CONFIG.Actor.dataModels ou CONFIG.Item.dataModels) ### Exemple minimal ```javascript export default class MyNewItemDataModel extends foundry.abstract.TypeDataModel { static defineSchema() { const fields = foundry.data.fields; return { description: new fields.HTMLField({ initial: "" }), value: new fields.NumberField({ initial: 0, integer: true, min: 0 }) }; } } ``` ## Documentation Foundry VTT Pour plus d'informations sur les DataModels : https://foundryvtt.com/article/system-data-models/