Преглед изворни кода

Add deep exploration orders

JoostSijm пре 5 година
родитељ
комит
66ca4f9b26

+ 30 - 1
app/models.py

@@ -33,7 +33,7 @@ class DeepExploration(Base):
     """Model for deep exploration"""
     __tablename__ = 'deep_exploration'
     id = Column(Integer, primary_key=True)
-    date_time_end = Column(DateTime)
+    until_date_time = Column(DateTime)
     points = Column(Integer)
     resource_type = Column(SmallInteger)
     region_id = Column(Integer, ForeignKey('region.id'))
@@ -42,6 +42,35 @@ class DeepExploration(Base):
         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)
+
+    region_id = Column(Integer, ForeignKey('region.id'))
+    region = relationship(
+        'Region',
+        backref=backref('resource_stats', lazy='dynamic')
+    )
+
+    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'
+
 
 class ResourceTrack(Base):
     """Model for resource track"""

+ 26 - 0
migrations/versions/5081ca31d1c3_rename_deep_exploration_date_column.py

@@ -0,0 +1,26 @@
+"""rename deep exploration date column
+
+Revision ID: 5081ca31d1c3
+Revises: 7976912082a6
+Create Date: 2020-02-11 22:51:56.652667
+
+"""
+from alembic import op
+import sqlalchemy as sa
+from sqlalchemy.dialects import postgresql
+
+# revision identifiers, used by Alembic.
+revision = '5081ca31d1c3'
+down_revision = '7976912082a6'
+branch_labels = None
+depends_on = None
+
+
+def upgrade():
+    op.add_column('deep_exploration', sa.Column('until_date_time', sa.DateTime(), nullable=True))
+    op.drop_column('deep_exploration', 'date_time_end')
+
+
+def downgrade():
+    op.add_column('deep_exploration', sa.Column('date_time_end', postgresql.TIMESTAMP(), autoincrement=False, nullable=True))
+    op.drop_column('deep_exploration', 'until_date_time')

+ 32 - 0
migrations/versions/7976912082a6_add_deep_exploration_orders.py

@@ -0,0 +1,32 @@
+"""add deep exploration orders
+
+Revision ID: 7976912082a6
+Revises: 9524fe8e91f0
+Create Date: 2020-02-11 13:13:53.215765
+
+"""
+from alembic import op
+import sqlalchemy as sa
+
+
+# revision identifiers, used by Alembic.
+revision = '7976912082a6'
+down_revision = '9524fe8e91f0'
+branch_labels = None
+depends_on = None
+
+
+def upgrade():
+    op.create_table('deep_exploration_order',
+    sa.Column('id', sa.Integer(), nullable=False),
+    sa.Column('resource_type', sa.SmallInteger(), nullable=False),
+    sa.Column('order_type', sa.SmallInteger(), nullable=False),
+    sa.Column('amount', sa.Integer(), nullable=True),
+    sa.Column('from_date_time', sa.DateTime(), nullable=True),
+    sa.Column('until_date_time', sa.DateTime(), nullable=True),
+    sa.PrimaryKeyConstraint('id', name=op.f('pk_deep_exploration_order'))
+    )
+
+
+def downgrade():
+    op.drop_table('deep_exploration_order')

+ 26 - 0
migrations/versions/95e16c281a76_add_region_id_to_deep_exploration_orders.py

@@ -0,0 +1,26 @@
+"""add region id to deep exploration orders
+
+Revision ID: 95e16c281a76
+Revises: 5081ca31d1c3
+Create Date: 2020-02-13 09:54:29.287214
+
+"""
+from alembic import op
+import sqlalchemy as sa
+
+
+# revision identifiers, used by Alembic.
+revision = '95e16c281a76'
+down_revision = '5081ca31d1c3'
+branch_labels = None
+depends_on = None
+
+
+def upgrade():
+    op.add_column('deep_exploration_order', sa.Column('region_id', sa.Integer(), nullable=True))
+    op.create_foreign_key(op.f('fk_deep_exploration_order_region_id_region'), 'deep_exploration_order', 'region', ['region_id'], ['id'])
+
+
+def downgrade():
+    op.drop_constraint(op.f('fk_deep_exploration_order_region_id_region'), 'deep_exploration_order', type_='foreignkey')
+    op.drop_column('deep_exploration_order', 'region_id')