aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/quarg/database/tables.py
blob: ea82f52509c551e060a7e5cdf74f3c496ae7ecbe (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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')