tabletop-frog/ttfrog/db/schema.py

34 lines
1.1 KiB
Python
Raw Normal View History

2024-01-28 00:46:19 -08:00
from sqlalchemy import Column
from sqlalchemy import Integer
from sqlalchemy import String
from sqlalchemy import ForeignKey
2024-01-28 14:31:50 -08:00
from sqlalchemy import CheckConstraint
2024-01-28 00:46:19 -08:00
# from sqlalchemy import PrimaryKeyConstraint
# from sqlalchemy import DateTime
2024-01-31 22:39:54 -08:00
from ttfrog.db.base import Bases
2024-01-28 00:46:19 -08:00
2024-01-31 22:39:54 -08:00
class Ancestry(*Bases):
2024-01-30 01:25:02 -08:00
__tablename__ = "ancestry"
2024-01-28 00:46:19 -08:00
2024-01-30 01:25:02 -08:00
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String, index=True, unique=True)
slug = Column(String, index=True, unique=True)
2024-01-31 22:39:54 -08:00
class Character(*Bases):
2024-01-30 01:25:02 -08:00
__tablename__ = "character"
id = Column(Integer, primary_key=True, autoincrement=True)
slug = Column(String, index=True, unique=True)
2024-01-31 22:39:54 -08:00
ancestry = Column(String, ForeignKey("ancestry.name"), nullable=False)
name = Column(String(255), nullable=False)
level = Column(Integer, nullable=False, info={'min': 1, 'max': 20})
str = Column(Integer, info={'min': 1})
dex = Column(Integer, info={'min': 1})
con = Column(Integer, info={'min': 1})
int = Column(Integer, info={'min': 1})
wis = Column(Integer, info={'min': 1})
cha = Column(Integer, info={'min': 1})