add support for skills

This commit is contained in:
evilchili
2024-05-06 00:13:52 -07:00
parent b574dacfa1
commit 9a2d28ae75
8 changed files with 278 additions and 113 deletions
+6 -16
View File
@@ -1,27 +1,17 @@
from sqlalchemy import Column, Integer, String, Text
from sqlalchemy import ForeignKey, String
from sqlalchemy.orm import Mapped, mapped_column, relationship
from ttfrog.db.base import BaseObject
__all__ = [
"Skill",
"Proficiency",
]
class Skill(BaseObject):
__tablename__ = "skill"
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String, index=True, unique=True)
description = Column(Text)
id: Mapped[int] = mapped_column(init=False, primary_key=True, autoincrement=True)
name: Mapped[str] = mapped_column(String(collation="NOCASE"), nullable=False, unique=True)
base_id: Mapped[int] = mapped_column(ForeignKey("skill.id"), nullable=True, default=None)
def __repr__(self):
return str(self.name)
class Proficiency(BaseObject):
__tablename__ = "proficiency"
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String, index=True, unique=True)
def __repr__(self):
return str(self.name)
parent: Mapped["Skill"] = relationship(init=False, remote_side=id, uselist=False, lazy="immediate")