diff options
Diffstat (limited to 'dropcalc/mxl_types/item_type.py')
-rw-r--r-- | dropcalc/mxl_types/item_type.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/dropcalc/mxl_types/item_type.py b/dropcalc/mxl_types/item_type.py new file mode 100644 index 0000000..8dd9b37 --- /dev/null +++ b/dropcalc/mxl_types/item_type.py @@ -0,0 +1,32 @@ +from typing import Optional + +from sqlalchemy import ForeignKey, String +from sqlalchemy.orm import Mapped, mapped_column + +from .dao import BaseDAO + + +class ItemType(BaseDAO): + filename = "ItemTypes.txt" + __tablename__ = "item_type" + + Id: Mapped[int] = mapped_column(primary_key=True) + Code: Mapped[str] = mapped_column(String(4)) # referred to by other tables + ItemType: Mapped[Optional[str]] # internal human readable name + + Equiv1 = mapped_column(ForeignKey("item_type.Code")) + Equiv2 = mapped_column(ForeignKey("item_type.Code")) + + # what does Rarity do here? fileguide description is unclear + + def is_valid(self): + return is_int(self.Id) and self.Code not in (None, '') + + +def is_int(obj): + try: + int(obj) + except ValueError: + return False + else: + return True |