/**
 * Data model pour les protections
 */
export default class ProtectionDataModel extends foundry.abstract.TypeDataModel {
  static defineSchema() {
    const fields = foundry.data.fields;
    return {
      description: new fields.HTMLField({ initial: "" }),
      rarete: new fields.NumberField({ initial: 0, integer: true }),
      quantite: new fields.NumberField({ initial: 0, integer: true }),
      prix: new fields.NumberField({ initial: 0, integer: true }),
      equipped: new fields.BooleanField({ initial: false }),
      points: new fields.NumberField({ initial: 0, integer: true }),
      protectiontype: new fields.StringField({ initial: "balle" }),
      effetsecondaire: new fields.StringField({ initial: "" }),
      malusagilite: new fields.NumberField({ initial: 0, integer: true }),
      dissimulation: new fields.StringField({ initial: "" })
    };
  }

  static migrateData(data) {
    for (const key of ["rarete", "quantite", "prix", "points", "malusagilite"]) {
      if (typeof data[key] === "string") {
        const v = parseInt(data[key]);
        data[key] = Number.isNaN(v) ? 0 : v;
      }
    }
    return data;
  }
}
