Guest User

Untitled

a guest
Jun 21st, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.29 KB | None | 0 0
  1. from datetime import datetime
  2. from sqlalchemy import Table, Column, String, Boolean, DateTime, Integer, or_, ForeignKey, desc
  3. from sqlalchemy.orm import relation, backref
  4.  
  5. from pyfantasy.utils import session, metadata
  6.  
  7. player_table = Table("players", metadata,
  8. Column("uid", Integer, primary_key=True),
  9. Column("country", String(2)),
  10. Column("name", String(40)),
  11. Column("price", Integer),
  12. Column("score", Integer, default=0),
  13. Column("rwin", Integer, default=0),
  14. Column("rloss", Integer, default=0),
  15. Column("kills", Integer, default=0),
  16. Column("deaths", Integer, default=0),
  17. Column("assists", Integer, default=0),
  18. Column("wards", Integer, default=0),
  19. Column("real_clan_uid", Integer, ForeignKey("realclans.uid")))
  20.  
  21. real_clan_table = Table("realclans", metadata,
  22. Column("uid", Integer, primary_key=True),
  23. Column("country", String(2)),
  24. Column("tag", String(5)),
  25. Column("name", String(40)),
  26. Column("website", String(40)))
  27.  
  28. clan_table = Table("clans", metadata,
  29. Column("uid", Integer, primary_key=True),
  30. Column("name", String(40), unique=True),
  31. Column("transfers", Integer, default=3),
  32. Column("money", Integer),
  33. Column("score", Integer, default=0),
  34. Column("rwin", Integer, default=0),
  35. Column("rloss", Integer, default=0),
  36. Column("kills", Integer, default=0),
  37. Column("deaths", Integer, default=0),
  38. Column("assists", Integer, default=0),
  39. Column("wards", Integer, default=0))
  40.  
  41. league_table = Table("leagues", metadata,
  42. Column("uid", Integer, primary_key=True),
  43. Column("name", String(40), unique=True),
  44. Column("started", DateTime))
  45.  
  46. user_table = Table("users", metadata,
  47. Column("uid", Integer, primary_key=True),
  48. Column("email", String(40), unique=True),
  49. Column("username", String(40), unique=True),
  50. Column("password", String(40)),
  51. Column("country", String(2)),
  52. Column("clanuid", Integer, ForeignKey("clans.uid")))
  53.  
  54.  
  55. league_to_clan_table = Table("lcmap", metadata,
  56. Column("leagueuid", Integer, ForeignKey("leagues.uid")),
  57. Column("clanuid", Integer, ForeignKey("clans.uid")))
  58.  
  59. player_to_clan_table = Table("pcmap", metadata,
  60. Column("clanuid", Integer, ForeignKey("clans.uid")),
  61. Column("playeruid", Integer, ForeignKey("players.uid")))
  62.  
  63.  
  64. class Player(object):
  65.  
  66. def __init__(self, country, name, price, real_clan):
  67. self.country = country
  68. self.name = name
  69. self.price = price
  70. self.real_clan_uid = real_clan.uid
  71.  
  72. def __repr__(self):
  73. return "<Player %r, Real_Clan %r>" % (self.uid, self.real_clan)
  74.  
  75. class Real_Clan(object):
  76.  
  77. def __init__(self, country, tag, name, website):
  78. self.country = country
  79. self.tag = tag
  80. self.name = name
  81. self.website = website
  82.  
  83. def __repr__(self):
  84. return "<Real_Clan %r>" % self.uid
  85.  
  86. class Clan(object):
  87.  
  88. def __init__(self, name, *player_list):
  89. self.name = name
  90. self.money = sum(player.price for player in player_list)
  91. for player in player_list:
  92. self.players.append(player)
  93.  
  94. def __repr__(self):
  95. return "<Clan %r>" % self.uid
  96.  
  97.  
  98. class League(object):
  99.  
  100. def __init__(self, name, *clan_list):
  101. self.name = name
  102. self.started = datetime.utcnow()
  103. for clan in clan_list:
  104. self.clans.append(clan)
  105. def __repr__(self):
  106. return "<League %r>" % self.uid
  107.  
  108. class User(object):
  109.  
  110. def __init__(self, email, username, password, country):
  111. self.email = email
  112. self.username = username
  113. self.password = password
  114. self.country = country
  115. self.clanuid = None
  116.  
  117. def __repr__(self):
  118. return "<User %r, Clan %r>" % (self.uid, self.clanid)
  119.  
  120.  
  121. class PCMap(object):
  122.  
  123. def __init__(self, playerid, clanid):
  124. self.playeruid = playerid
  125. self.clanuid = clanid
  126.  
  127. def __repr__(self):
  128. return "<PCMap %r>" % self.uid
  129.  
  130. class LCMap(object):
  131.  
  132. def __init__(self, leagueid, clanid):
  133. self.leagueuid = leagueid
  134. self.clanuid = clanid
  135.  
  136. def __repr__(self):
  137. return "<LCMap %r>" % self.uid
  138.  
  139. session.mapper(Player, player_table)
  140. session.mapper(Real_Clan, real_clan_table, properties={"players" : relation(Player,
  141. backref="real_clan",
  142. order_by=desc(Player.score))})
  143. session.mapper(Clan, clan_table, properties={
  144. "players" : relation(Player,
  145. secondary=player_to_clan_table,
  146. backref="clans")
  147.  
  148. })
  149. session.mapper(League, league_table, properties={
  150. "clans" : relation(Clan,
  151. secondary=league_to_clan_table,
  152. backref="leagues")
  153. })
  154. session.mapper(User, user_table, properties= {
  155. "clan" : relation(Clan,
  156. backref="owner",
  157. uselist=False)
  158. })
Add Comment
Please, Sign In to add comment