/**
 * 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 SanheiDataModel 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 propertySchema = () => new fields.SchemaField({
      name: stringField(""),
      heiCost: intField(0),
      heiType: stringField("yin"),
      description: htmlField(""),
    })

    return {
      reference: stringField(""),
      description: htmlField(""),
      heiType: stringField("yin"),
      properties: new fields.SchemaField({
        prop1: propertySchema(),
        prop2: propertySchema(),
        prop3: propertySchema(),
      }),
      notes: htmlField(""),
    }
  }
}
