1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- """Database models"""
- import datetime
- from sqlalchemy import Column, ForeignKey, Integer, String, SmallInteger, DateTime
- from sqlalchemy.orm import relationship, backref
- from sqlalchemy.ext.declarative import declarative_base
- Base = declarative_base()
- class State(Base):
- """Model for state"""
- __tablename__ = 'state'
- id = Column(Integer, primary_key=True)
- name = Column(String)
- 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 StateRegion(Base):
- """Model for state region"""
- __tablename__ = 'state_region'
- state_id = Column(Integer, ForeignKey('state.id'), primary_key=True)
- region_id = Column(Integer, ForeignKey('region.id'), primary_key=True)
- from_date_time = Column(DateTime, primary_key=True)
- until_date_time = Column(DateTime)
- class DeepExploration(Base):
- """Model for deep exploration"""
- __tablename__ = 'deep_exploration'
- id = Column(Integer, primary_key=True)
- until_date_time = Column(DateTime)
- points = Column(Integer)
- resource_type = Column(SmallInteger)
- region_id = Column(Integer, ForeignKey('region.id'))
- region = relationship(
- 'Region',
- backref=backref('deep_explorations', lazy='dynamic')
- )
- class DeepExplorationOrder(Base):
- """Model for deep exploration order"""
- __tablename__ = 'deep_exploration_order'
- id = Column(Integer, primary_key=True)
- resource_type = Column(SmallInteger, nullable=False)
- order_type = Column(SmallInteger, nullable=False)
- amount = Column(Integer)
- from_date_time = Column(DateTime)
- until_date_time = Column(DateTime)
- order_types = {
- 0: 'max',
- 1: 'fixed',
- 2: 'percentage',
- 3: 'auto',
- }
- def order_type_name(self):
- """Type name"""
- if self.order_type in self.order_types:
- return self.order_types[self.type]
- return 'unknown'
|