about summary refs log tree commit diff
path: root/dropcalc/mxl_types/item_type.py
diff options
context:
space:
mode:
Diffstat (limited to 'dropcalc/mxl_types/item_type.py')
-rw-r--r--dropcalc/mxl_types/item_type.py32
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