40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
"""SQLAlchemy models (minimal to get API running).
|
|
For full production use we should reflected or generate models from the DB, but
|
|
this subset is enough to power metadata + inventory endpoints.
|
|
"""
|
|
from datetime import datetime
|
|
from sqlalchemy import Column, Integer, String, DateTime
|
|
from sqlalchemy.orm import declarative_base
|
|
|
|
Base = declarative_base()
|
|
|
|
class Inventory(Base):
|
|
__tablename__ = "inventory"
|
|
|
|
id = Column(Integer, primary_key=True)
|
|
character_name = Column(String)
|
|
storage_type = Column(String)
|
|
item_name = Column(String)
|
|
quantity = Column(Integer)
|
|
last_updated = Column(DateTime, default=datetime.utcnow)
|
|
|
|
|
|
class Spell(Base):
|
|
"""Spell table with job level columns (selected jobs only)."""
|
|
|
|
__tablename__ = "spells"
|
|
|
|
name = Column(String, primary_key=True)
|
|
run = Column(Integer, nullable=True)
|
|
whm = Column(Integer, nullable=True)
|
|
blm = Column(Integer, nullable=True)
|
|
rdm = Column(Integer, nullable=True)
|
|
pld = Column(Integer, nullable=True)
|
|
drk = Column(Integer, nullable=True)
|
|
brd = Column(Integer, nullable=True)
|
|
nin = Column(Integer, nullable=True)
|
|
smn = Column(Integer, nullable=True)
|
|
cor = Column(Integer, nullable=True)
|
|
sch = Column(Integer, nullable=True)
|
|
geo = Column(Integer, nullable=True)
|