Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from datetime import datetime
- from sqlalchemy import Table, Column, String, Boolean, DateTime, Integer, or_, ForeignKey, desc
- from sqlalchemy.orm import relation, backref
- from pyfantasy.utils import session, metadata
- player_table = Table("players", metadata,
- Column("uid", Integer, primary_key=True),
- Column("country", String(2)),
- Column("name", String(40)),
- Column("price", Integer),
- Column("score", Integer, default=0),
- Column("rwin", Integer, default=0),
- Column("rloss", Integer, default=0),
- Column("kills", Integer, default=0),
- Column("deaths", Integer, default=0),
- Column("assists", Integer, default=0),
- Column("wards", Integer, default=0),
- Column("real_clan_uid", Integer, ForeignKey("realclans.uid")))
- real_clan_table = Table("realclans", metadata,
- Column("uid", Integer, primary_key=True),
- Column("country", String(2)),
- Column("tag", String(5)),
- Column("name", String(40)),
- Column("website", String(40)))
- clan_table = Table("clans", metadata,
- Column("uid", Integer, primary_key=True),
- Column("name", String(40), unique=True),
- Column("transfers", Integer, default=3),
- Column("money", Integer),
- Column("score", Integer, default=0),
- Column("rwin", Integer, default=0),
- Column("rloss", Integer, default=0),
- Column("kills", Integer, default=0),
- Column("deaths", Integer, default=0),
- Column("assists", Integer, default=0),
- Column("wards", Integer, default=0))
- league_table = Table("leagues", metadata,
- Column("uid", Integer, primary_key=True),
- Column("name", String(40), unique=True),
- Column("started", DateTime))
- user_table = Table("users", metadata,
- Column("uid", Integer, primary_key=True),
- Column("email", String(40), unique=True),
- Column("username", String(40), unique=True),
- Column("password", String(40)),
- Column("country", String(2)),
- Column("clanuid", Integer, ForeignKey("clans.uid")))
- league_to_clan_table = Table("lcmap", metadata,
- Column("leagueuid", Integer, ForeignKey("leagues.uid")),
- Column("clanuid", Integer, ForeignKey("clans.uid")))
- player_to_clan_table = Table("pcmap", metadata,
- Column("clanuid", Integer, ForeignKey("clans.uid")),
- Column("playeruid", Integer, ForeignKey("players.uid")))
- class Player(object):
- def __init__(self, country, name, price, real_clan):
- self.country = country
- self.name = name
- self.price = price
- self.real_clan_uid = real_clan.uid
- def __repr__(self):
- return "<Player %r, Real_Clan %r>" % (self.uid, self.real_clan)
- class Real_Clan(object):
- def __init__(self, country, tag, name, website):
- self.country = country
- self.tag = tag
- self.name = name
- self.website = website
- def __repr__(self):
- return "<Real_Clan %r>" % self.uid
- class Clan(object):
- def __init__(self, name, *player_list):
- self.name = name
- self.money = sum(player.price for player in player_list)
- for player in player_list:
- self.players.append(player)
- def __repr__(self):
- return "<Clan %r>" % self.uid
- class League(object):
- def __init__(self, name, *clan_list):
- self.name = name
- self.started = datetime.utcnow()
- for clan in clan_list:
- self.clans.append(clan)
- def __repr__(self):
- return "<League %r>" % self.uid
- class User(object):
- def __init__(self, email, username, password, country):
- self.email = email
- self.username = username
- self.password = password
- self.country = country
- self.clanuid = None
- def __repr__(self):
- return "<User %r, Clan %r>" % (self.uid, self.clanid)
- class PCMap(object):
- def __init__(self, playerid, clanid):
- self.playeruid = playerid
- self.clanuid = clanid
- def __repr__(self):
- return "<PCMap %r>" % self.uid
- class LCMap(object):
- def __init__(self, leagueid, clanid):
- self.leagueuid = leagueid
- self.clanuid = clanid
- def __repr__(self):
- return "<LCMap %r>" % self.uid
- session.mapper(Player, player_table)
- session.mapper(Real_Clan, real_clan_table, properties={"players" : relation(Player,
- backref="real_clan",
- order_by=desc(Player.score))})
- session.mapper(Clan, clan_table, properties={
- "players" : relation(Player,
- secondary=player_to_clan_table,
- backref="clans")
- })
- session.mapper(League, league_table, properties={
- "clans" : relation(Clan,
- secondary=league_to_clan_table,
- backref="leagues")
- })
- session.mapper(User, user_table, properties= {
- "clan" : relation(Clan,
- backref="owner",
- uselist=False)
- })
Add Comment
Please, Sign In to add comment