from peewee import *
import json

db = DatabaseProxy()

class BaseModel(Model):
    class Meta:
        database = db
        db_table = 'lists'

class ListModel(BaseModel):
    name = CharField(unique=True)
    content = TextField(default="") # unlimited length, use to serialise list into

    @property
    def content_list(self):
        return json.loads(self.content or '[]')
    
    @content_list.setter
    def content_list(self, list_content):
        self.content = json.dumps(list_content)
        with db:
            self.save()



def set_db(db_path):
    db.initialize(SqliteDatabase(db_path))
    with db:
        db.create_tables([ListModel], safe=True)