diff options
author | Wolfgang Müller | 2021-04-22 18:54:05 +0200 |
---|---|---|
committer | Wolfgang Müller | 2021-04-28 20:15:33 +0200 |
commit | 83b091486668aac9fdf80eff1bd15ce0ac4273c4 (patch) | |
tree | 2e27b1dbe693c2e88f1686b61406c4e1e5dd5bd7 /quarg/database/tables.py | |
download | quarg-83b091486668aac9fdf80eff1bd15ce0ac4273c4.tar.gz |
Initial prototype
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') |