Explorar o código

Add state work permits, add missing residency

JoostSijm %!s(int64=5) %!d(string=hai) anos
pai
achega
260a4769cb
Modificáronse 2 ficheiros con 51 adicións e 0 borrados
  1. 19 0
      app/models.py
  2. 32 0
      migrations/versions/6a81f102bb33_add_work_permit_table.py

+ 19 - 0
app/models.py

@@ -149,6 +149,24 @@ class PlayerLocation(Base):
     until_date_time = Column(DateTime)
 
 
+class PlayerResidency(Base):
+    """Model for player residency"""
+    __tablename__ = 'player_residency'
+    player_id = Column(BigInteger, ForeignKey('player.id'), primary_key=True)
+    region_id = Column(Integer, ForeignKey('region.id'), primary_key=True)
+    from_date_time = Column(DateTime)
+    until_date_time = Column(DateTime)
+
+
+class StateWorkPermit(Base):
+    """Model for state work permit"""
+    __tablename__ = 'state_work_permit'
+    state_id = Column(Integer, ForeignKey('state.id'), primary_key=True)
+    player_id = Column(Integer, ForeignKey('player.id'), primary_key=True)
+    from_date_time = Column(DateTime)
+    until_date_time = Column(DateTime)
+
+
 class Player(Base):
     """Model for player"""
     __tablename__ = 'player'
@@ -158,6 +176,7 @@ class Player(Base):
     residencies = relationship('Region', secondary='player_residency')
     locations = relationship('Region', secondary='player_location')
     parties = relationship('Region', secondary='player_party')
+    state_work_permits = relationship('State', secondary='state_work_permit')
 
 
 class Party(Base):

+ 32 - 0
migrations/versions/6a81f102bb33_add_work_permit_table.py

@@ -0,0 +1,32 @@
+"""add work permit table
+
+Revision ID: 6a81f102bb33
+Revises: 96951df04b3b
+Create Date: 2019-09-05 12:46:29.077779
+
+"""
+from alembic import op
+import sqlalchemy as sa
+
+
+# revision identifiers, used by Alembic.
+revision = '6a81f102bb33'
+down_revision = '96951df04b3b'
+branch_labels = None
+depends_on = None
+
+
+def upgrade():
+    op.create_table('state_work_permit',
+    sa.Column('state_id', sa.Integer(), nullable=False),
+    sa.Column('player_id', sa.Integer(), nullable=False),
+    sa.Column('from_date_time', sa.DateTime(), nullable=True),
+    sa.Column('until_date_time', sa.DateTime(), nullable=True),
+    sa.ForeignKeyConstraint(['player_id'], ['player.id'], name=op.f('fk_state_work_permit_player_id_player')),
+    sa.ForeignKeyConstraint(['state_id'], ['state.id'], name=op.f('fk_state_work_permit_state_id_state')),
+    sa.PrimaryKeyConstraint('state_id', 'player_id', name=op.f('pk_state_work_permit'))
+    )
+
+
+def downgrade():
+    op.drop_table('state_work_permit')