|
|
@@ -2,7 +2,7 @@
|
|
|
|
|
|
import datetime
|
|
|
|
|
|
-from sqlalchemy import MetaData, Column, ForeignKey, Integer, String, SmallInteger, DateTime
|
|
|
+from sqlalchemy import MetaData, Column, ForeignKey, Integer, String, SmallInteger, DateTime, Table
|
|
|
from sqlalchemy.orm import relationship, backref
|
|
|
from sqlalchemy.ext.declarative import declarative_base
|
|
|
|
|
|
@@ -49,7 +49,7 @@ class ResourceTrack(Base):
|
|
|
resource_type = Column(SmallInteger)
|
|
|
date_time = Column(DateTime, default=datetime.datetime.utcnow)
|
|
|
state_id = Column(Integer, ForeignKey('state.id'))
|
|
|
- resource_track = relationship(
|
|
|
+ state = relationship(
|
|
|
"State",
|
|
|
backref=backref("resource_tracks", lazy="dynamic")
|
|
|
)
|
|
|
@@ -76,8 +76,104 @@ class ResourceStat(Base):
|
|
|
)
|
|
|
|
|
|
|
|
|
+state_region = Table('state_region', Base.metadata,
|
|
|
+ Column('state_id', Integer, ForeignKey('state.id')),
|
|
|
+ Column('region_id', Integer, ForeignKey('region.id'))
|
|
|
+)
|
|
|
+
|
|
|
class State(Base):
|
|
|
"""Model for state"""
|
|
|
__tablename__ = 'state'
|
|
|
id = Column(Integer, primary_key=True)
|
|
|
name = Column(String)
|
|
|
+ regions = relationship("Region", secondary=state_region)
|
|
|
+
|
|
|
+class Department(Base):
|
|
|
+ """Model for department"""
|
|
|
+ __tablename__ = 'department'
|
|
|
+ id = Column(Integer, primary_key=True)
|
|
|
+ name = Column(String)
|
|
|
+ department_type = Column(Integer)
|
|
|
+
|
|
|
+
|
|
|
+class DepartmentStat(Base):
|
|
|
+ """Model for departent stat"""
|
|
|
+ __tablename__ = 'department_stat'
|
|
|
+ id = Column(Integer, primary_key=True)
|
|
|
+ date_time = Column(DateTime)
|
|
|
+ points = Column(SmallInteger)
|
|
|
+
|
|
|
+ player_id = Column(Integer, ForeignKey('player.id'))
|
|
|
+ player = relationship(
|
|
|
+ "Player",
|
|
|
+ backref=backref("department_stats", lazy="dynamic")
|
|
|
+ )
|
|
|
+
|
|
|
+ department_id = Column(Integer, ForeignKey('department.id'))
|
|
|
+ department = relationship(
|
|
|
+ "Department",
|
|
|
+ backref=backref("stats", lazy="dynamic")
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+player_party = Table('player_party', Base.metadata,
|
|
|
+ Column('player_id', Integer, ForeignKey('player.id')),
|
|
|
+ Column('party_id', Integer, ForeignKey('party.id'))
|
|
|
+)
|
|
|
+
|
|
|
+player_residency = Table('player_residency', Base.metadata,
|
|
|
+ Column('player_id', Integer, ForeignKey('player.id')),
|
|
|
+ Column('region_id', Integer, ForeignKey('region.id'))
|
|
|
+)
|
|
|
+
|
|
|
+player_location = Table('player_location', Base.metadata,
|
|
|
+ Column('player_id', Integer, ForeignKey('player.id')),
|
|
|
+ Column('region_id', Integer, ForeignKey('region.id'))
|
|
|
+)
|
|
|
+
|
|
|
+class Player(Base):
|
|
|
+ """Model for player"""
|
|
|
+ __tablename__ = 'player'
|
|
|
+ id = Column(Integer, primary_key=True)
|
|
|
+ name = Column(String)
|
|
|
+ nation = Column(String)
|
|
|
+ residencies = relationship("Region", secondary=player_residency)
|
|
|
+ locations = relationship("Region", secondary=player_location)
|
|
|
+ parties = relationship("Region", secondary=player_party)
|
|
|
+
|
|
|
+
|
|
|
+class Party(Base):
|
|
|
+ """Model for party"""
|
|
|
+ __tablename__ = 'party'
|
|
|
+ id = Column(Integer, primary_key=True)
|
|
|
+ name = Column(String)
|
|
|
+ description = Column(String(512))
|
|
|
+ from_date_time = Column(DateTime)
|
|
|
+ until_date_time = Column(DateTime)
|
|
|
+
|
|
|
+
|
|
|
+class Election(Base):
|
|
|
+ """Model for election"""
|
|
|
+ __tablename__ = 'election'
|
|
|
+ id = Column(Integer, primary_key=True)
|
|
|
+ state_id = Column(Integer, ForeignKey('state.id'))
|
|
|
+ convocation_date_time = Column(DateTime)
|
|
|
+
|
|
|
+ state = relationship(
|
|
|
+ "State",
|
|
|
+ backref=backref("elections", lazy="dynamic")
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+class ElectionStat(Base):
|
|
|
+ """Model for election stat"""
|
|
|
+ __tablename__ = 'election_stat'
|
|
|
+ id = Column(Integer, primary_key=True)
|
|
|
+ percentage = Column(SmallInteger)
|
|
|
+ seats = Column(SmallInteger)
|
|
|
+
|
|
|
+ election_id = Column(Integer, ForeignKey('election.id'))
|
|
|
+ election = relationship(
|
|
|
+ "Election",
|
|
|
+ backref=backref("election_stats", lazy="dynamic")
|
|
|
+ )
|