diff options
Diffstat (limited to 'quarg/database/tables.py')
-rw-r--r-- | quarg/database/tables.py | 68 |
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') |