from peewee import *

db = SqliteDatabase('polls.db')

class User(Model):
    uid = IntegerField(unique=True)
    username = TextField()

    class Meta:
        database = db

class Poll(Model):
    name = TextField()
    creator = ForeignKeyField(User, related_name="polls")
    allow_multiple = BooleanField(default=False)

    class Meta:
        database = db

class Choice(Model):
    poll = ForeignKeyField(Poll, related_name="choices")
    text = TextField()

    class Meta:
        database = db

class Vote(Model):
    choice = ForeignKeyField(Choice, related_name="votes")
    poll = ForeignKeyField(Poll, related_name="votes")
    user = ForeignKeyField(User, related_name="votes")

    class Meta:
        database = db

class ReferringMessage(Model):
    poll = ForeignKeyField(Poll, related_name="referrants")
    chat_id = TextField(null=True)
    message_id = TextField()
    inline = BooleanField()

    class Meta:
        database = db

if __name__ == "__main__":
    db.connect()
    db.create_tables([User, Poll, Choice, Vote, ReferringMessage])
    db.commit()
    db.close()
