models.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. """Database models"""
  2. from sqlalchemy import Column, ForeignKey, Integer, String, \
  3. DateTime, BigInteger, SmallInteger, Date
  4. from sqlalchemy.orm import relationship, backref
  5. from sqlalchemy.ext.declarative import declarative_base
  6. Base = declarative_base()
  7. class State(Base):
  8. """Model for state"""
  9. __tablename__ = 'state'
  10. id = Column(Integer, primary_key=True)
  11. name = Column(String)
  12. class Region(Base):
  13. """Model for region"""
  14. __tablename__ = 'region'
  15. id = Column(Integer, primary_key=True)
  16. name = Column(String)
  17. class Player(Base):
  18. """Model for player"""
  19. __tablename__ = 'player'
  20. id = Column(BigInteger, primary_key=True)
  21. name = Column(String)
  22. nation = Column(String)
  23. registration_date = Column(Date)
  24. class MarketTrack(Base):
  25. """Model for market track"""
  26. __tablename__ = 'market_track'
  27. id = Column(Integer, primary_key=True)
  28. date_time = Column(DateTime)
  29. class PlayerMarketStat(Base):
  30. """Model for market stat"""
  31. __tablename__ = 'player_market_stat'
  32. id = Column(Integer, primary_key=True)
  33. item_type = Column(SmallInteger)
  34. price = Column(Integer)
  35. amount = Column(BigInteger)
  36. total_offers = Column(Integer)
  37. player_id = Column(Integer, ForeignKey('player.id'))
  38. player = relationship(
  39. 'Player',
  40. backref=backref('player_market_stats', lazy='dynamic')
  41. )
  42. market_track_id = Column(Integer, ForeignKey('market_track.id'))
  43. market_track = relationship(
  44. 'MarketTrack',
  45. backref=backref('player_market_stats', lazy='dynamic')
  46. )
  47. class StateMarketStat(Base):
  48. """Model for market stat"""
  49. __tablename__ = 'state_market_stat'
  50. id = Column(Integer, primary_key=True)
  51. item_type = Column(SmallInteger)
  52. price = Column(Integer)
  53. amount = Column(BigInteger)
  54. state_id = Column(Integer, ForeignKey('state.id'))
  55. state = relationship(
  56. 'State',
  57. backref=backref('state_market_stats', lazy='dynamic')
  58. )
  59. market_track_id = Column(Integer, ForeignKey('market_track.id'))
  60. market_track = relationship(
  61. 'MarketTrack',
  62. backref=backref('state_market_stats', lazy='dynamic')
  63. )