| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | """Database models"""import datetimefrom sqlalchemy import Column, ForeignKey, Integer, String, SmallInteger, DateTimefrom sqlalchemy.orm import relationship, backreffrom sqlalchemy.ext.declarative import declarative_baseBase = declarative_base()class Region(Base):    """Model for region"""    __tablename__ = 'region'    id = Column(Integer, primary_key=True)    name = Column(String)    gold_limit = Column(SmallInteger)    oil_limit = Column(SmallInteger)    ore_limit = Column(SmallInteger)    uranium_limit = Column(SmallInteger)    diamond_limit = Column(SmallInteger)class DeepExploration(Base):    """Model for deep exploration"""    __tablename__ = 'deep_exploration'    id = Column(Integer, primary_key=True)    date_time_end = Column(DateTime)    region_id = Column(Integer)    resource_type = Column(SmallInteger)    region_id = Column(Integer, ForeignKey('region.id'))    region_track = relationship(        "Region",        backref=backref("deep_explorations", lazy="dynamic")    )class ResourceTrack(Base):    """Model for resource track"""    __tablename__ = 'resource_track'    id = Column(Integer, primary_key=True)    resource_type = Column(SmallInteger)    date_time = Column(DateTime, default=datetime.datetime.utcnow)    state_id = Column(Integer, ForeignKey('state.id'))    resource_track = relationship(        "State",        backref=backref("resource_tracks", lazy="dynamic")    )class ResourceStat(Base):    """Model for resource stat"""    __tablename__ = 'resource_stat'    id = Column(Integer, primary_key=True)    explored = Column(SmallInteger)    deep_exploration = Column(SmallInteger)    limit_left = Column(SmallInteger)    resource_track_id = Column(Integer, ForeignKey('resource_track.id'))    resource_track = relationship(        "ResourceTrack",        backref=backref("resource_stats", lazy="dynamic")    )    region_id = Column(Integer, ForeignKey('region.id'))    region = relationship(        "Region",        backref=backref("resource_stats", lazy="dynamic")    )    def total(self):        """total left"""        return self.limit_left + self.exploredclass State(Base):    """Model for state"""    __tablename__ = 'state'    id = Column(Integer, primary_key=True)    name = Column(String)
 |