from msgspec import field

from .blackboard import Blackboard
from .shared_models import CharacterData as SharedCharacterData
from ..common import BaseStruct


class EquipTalentData(BaseStruct):
    displayRangeId: bool
    upgradeDescription: str
    talentIndex: int
    validModeIndices: list[int] | None
    unlockCondition: "SharedCharacterData.UnlockCondition"
    requiredPotentialRank: int
    prefabKey: str
    name: str | None
    description: str | None
    rangeId: str | None
    blackboard: list["Blackboard"]
    tokenKey: str | None = field(default=None)
    isHideTalent: bool | None = field(default=None)
