aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/quarg/database/tables.py
diff options
context:
space:
mode:
Diffstat (limited to 'quarg/database/tables.py')
-rw-r--r--quarg/database/tables.py68
1 files changed, 68 insertions, 0 deletions
diff --git a/quarg/database/tables.py b/quarg/database/tables.py
new file mode 100644
index 0000000..ea82f52
--- /dev/null
+++ b/quarg/database/tables.py
@@ -0,0 +1,68 @@
+from sqlalchemy.schema import Column, ForeignKey
+from sqlalchemy.types import BigInteger, Boolean, DateTime, Integer, Text
+from sqlalchemy.ext.declarative import declarative_base
+from sqlalchemy.orm import relationship
+
+# pylint: disable=too-few-public-methods
+
+Base = declarative_base()
+
+# Note: To keep SQLAlchemy from selecting columns that we will never end up
+# using, we have commented out unused ones
+
+class Backlog(Base):
+ __tablename__ = 'backlog'
+ messageid = Column(BigInteger, primary_key=True)
+ time = Column(DateTime)
+ bufferid = Column(Integer, ForeignKey('buffer.bufferid'))
+ type = Column(Integer)
+ flags = Column(Integer)
+ senderid = Column(BigInteger, ForeignKey('sender.senderid'))
+ senderprefixes = Column(Text)
+ message = Column(Text)
+
+ buffer = relationship('Buffer')
+ sender = relationship('Sender')
+
+class Sender(Base):
+ __tablename__ = 'sender'
+ senderid = Column(BigInteger, primary_key=True)
+ sender = Column(Text)
+ # realname = Column(Text)
+ # avatarurl = Column(Text)
+
+class Buffer(Base):
+ __tablename__ = 'buffer'
+ bufferid = Column(Integer, primary_key=True)
+ userid = Column(Integer, ForeignKey('user.userid'))
+ groupid = Column(Integer)
+ networkid = Column(Integer, ForeignKey('network.networkid'))
+ buffername = Column(Text)
+ buffercname = Column(Text)
+ buffertype = Column(Integer)
+ # lastmsgid = Column(BigInteger)
+ # lastseenmsgid = Column(BigInteger)
+ # markerlinemsgid = Column(BigInteger)
+ # bufferactivity = Column(Integer)
+ # highlightcount = Column(Integer)
+ # key = Column(Text)
+ joined = Column(Boolean)
+ # cipher = Column(Text)
+
+ network = relationship('Network')
+
+class QuasselUser(Base):
+ __tablename__ = 'quasseluser'
+ userid = Column(Integer, primary_key=True)
+ username = Column(Text)
+ # password = Column(Text)
+ # hashversion = Column(Integer)
+ # authenticator = Column(Text)
+
+class Network(Base):
+ __tablename__ = 'network'
+ networkid = Column(Integer, primary_key=True)
+ userid = Column(Integer, ForeignKey('quasseluser.userid'))
+ networkname = Column(Text)
+
+ user = relationship('QuasselUser')