import { ARMOR_TYPE_CHOICES, WEAPON_PROFICIENCY_GROUPS } from "../config/system.mjs" export default class OathHammerClass extends foundry.abstract.TypeDataModel { static defineSchema() { const fields = foundry.data.fields const schema = {} schema.description = new fields.HTMLField({ required: true, textSearch: true }) // Class features, starting abilities, advancement options (rich text) schema.features = new fields.HTMLField({ required: true, textSearch: true }) // Armor proficiencies — set of keys from ARMOR_TYPE_CHOICES (light, medium, heavy) schema.armorProficiency = new fields.SetField( new fields.StringField({ choices: ARMOR_TYPE_CHOICES }), { required: true, initial: [] } ) // Weapon proficiencies — set of keys from WEAPON_PROFICIENCY_GROUPS schema.weaponProficiency = new fields.SetField( new fields.StringField({ choices: WEAPON_PROFICIENCY_GROUPS }), { required: true, initial: [] } ) return schema } // Migrate old free-text string values to empty sets static migrateData(source) { if (typeof source.armorProficiency === "string") source.armorProficiency = [] if (typeof source.weaponProficiency === "string") source.weaponProficiency = [] return super.migrateData(source) } static LOCALIZATION_PREFIXES = ["OATHHAMMER.Class"] }