From d00aadd82f97ac402ab0557b8f5b37f984314caa Mon Sep 17 00:00:00 2001
From: Romain J <romain.ordi@gmail.com>
Date: Wed, 9 Oct 2019 00:14:43 +0200
Subject: [PATCH] refactor(command/database|sondage): update poll model

---
 cogs/poll.py              |  2 +-
 cogs/utils/database.py    |  2 +-
 cogs/utils/models/poll.py | 26 ++++++++++++++++----------
 prefixes.json             |  6 +++---
 requirements.txt          |  3 ++-
 5 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/cogs/poll.py b/cogs/poll.py
index 3314189..45002b1 100644
--- a/cogs/poll.py
+++ b/cogs/poll.py
@@ -88,7 +88,7 @@ class Polls(commands.Cog):
             icon_url=content.get('author').get('icon_url')
         )
         chart_url = URL(chart_base_url + json.dumps(chart_options))
-        e.set_thumbnail(url=chart_url)
+        e.set_thumbnail(url=str(chart_url))
         for field in content.get('fields'):
             e.add_field(
                 name=field.get('name'),
diff --git a/cogs/utils/database.py b/cogs/utils/database.py
index 3e8d2bc..bb13ff4 100644
--- a/cogs/utils/database.py
+++ b/cogs/utils/database.py
@@ -4,7 +4,7 @@ from sqlalchemy.orm import sessionmaker, session
 
 class Database:
     def __init__(self, config):
-        self.engine = create_engine(config.postgresql)
+        self.engine = create_engine(config.postgresql, echo=True)
 
         Session = sessionmaker()
         Session.configure(bind=self.engine)
diff --git a/cogs/utils/models/poll.py b/cogs/utils/models/poll.py
index ae6e4ce..d365ec3 100644
--- a/cogs/utils/models/poll.py
+++ b/cogs/utils/models/poll.py
@@ -1,5 +1,6 @@
 from sqlalchemy.ext.declarative import declarative_base
-from sqlalchemy import Column, Integer, Boolean, BigInteger, JSON
+from sqlalchemy import Column, Integer, Text, BigInteger, JSON, ForeignKey
+from sqlalchemy.orm import relationship
 
 Base = declarative_base()
 
@@ -7,15 +8,20 @@ Base = declarative_base()
 class Poll(Base):
     __tablename__ = 'polls'
 
-    id = Column(Integer, primary_key=True)
+    id = Column(Integer, primary_key=True, autoincrement=True)
     channel_id = Column(BigInteger)
     message_id = Column(BigInteger)
-    content = Column(JSON)
-    is_anonymous = Column(Boolean)
-    responses = Column(JSON, nullable=True)
 
-    def __repr__(self):
-        return "<Poll(id='%s', channel_id='%s', message_id='%s', poll='%s', " \
-               "is_anonymous='%s', responses='%s')>" % \
-               (self.id, self.channel_id, self.message_id, self.content,
-                self.is_anonymous, self.responses)
+    content = Column(JSON)
+
+    choice = relationship("Responses")
+
+
+class Responses(Base):
+    __tablename__ = 'responses'
+
+    id = Column(Integer, primary_key=True, autoincrement=True)
+    user = Column(Text)
+
+    poll_id = Column(Integer, ForeignKey('polls.id'))
+    choice = Column(Integer)
diff --git a/prefixes.json b/prefixes.json
index f682140..a929ba7 100644
--- a/prefixes.json
+++ b/prefixes.json
@@ -1,11 +1,11 @@
 {
   "280805240977227776": [
-    "b!-"
+    "b!"
   ],
   "303633056944881686": [
-    "b!-"
+    "b!"
   ],
   "336642139381301249": [
-    "b!-"
+    "b!"
   ]
 }
\ No newline at end of file
diff --git a/requirements.txt b/requirements.txt
index 1fa6dca..c02c3bb 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -9,4 +9,5 @@ gitpython
 requests
 psutil
 bcrypt
-tcp_latency
\ No newline at end of file
+tcp_latency
+yarl
\ No newline at end of file