/**
 * Chroniques de l'Étrange — Système FoundryVTT
 *
 * Chroniques de l'Étrange est un jeu de rôle édité par Antre-Monde Éditions.
 * Ce système FoundryVTT est une implémentation indépendante et n'est pas
 * affilié à Antre-Monde Éditions,
 * mais a été réalisé avec l'autorisation d'Antre-Monde Éditions.
 *
 * @author    LeRatierBretonnien
 * @copyright 2024–2026 LeRatierBretonnien
 * @license   CC BY-NC-SA 4.0 – https://creativecommons.org/licenses/by-nc-sa/4.0/
 */

export default class WeaponDataModel extends foundry.abstract.TypeDataModel {
  static defineSchema() {
    const { fields } = foundry.data
    const stringField = (initial = "") => new fields.StringField({ required: true, nullable: false, initial })
    const htmlField = (initial = "") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })
    const intField = (initial = 0, opts = {}) => new fields.NumberField({ required: true, nullable: false, integer: true, initial, ...opts })
    const boolField = (initial = false) => new fields.BooleanField({ required: true, initial })

    return {
      reference: stringField(""),
      description: htmlField(""),
      hasSpeciality: boolField(false),
      weaponType: stringField("melee"),
      material: stringField(""),
      damageAspect: stringField("metal"),
      damageBase: intField(0),
      range: stringField("contact"), // contact | courte | mediane | longue | extreme
      obtainLevel: intField(0, { min: 0, max: 5 }),
      obtainDifficulty: intField(0, { min: 0, max: 3 }),
      quantity: intField(1, { min: 0 }),
      notes: htmlField(""),
    }
  }
}
