from peewee import *

db = SqliteDatabase("test.db")


class BaseModel(Model):

    class Meta:
        database = db


class Config(BaseModel):

    name = CharField()
    value = CharField()
    comment = CharField(null=True)


class ConfigService:

    @classmethod
    def add_config(cls, name, value):
        return Config.create(name=name, value=value)

    @classmethod
    def edit_config(cls, config, value):
        config.value = value
        config.save()

    @classmethod
    def delete_config(cls, config):
        config.delete_instance()

    @classmethod
    def get_config_name_list(cls):
        return Config.select()

    @classmethod
    def get_config_by_id(cls, config_id):
        return Config.get_by_id(config_id)

    @classmethod
    def update_config_by_id(cls, config_id, value):
        config = Config.get_by_id(config_id)
        if config:
            config.value = value
            config.save()

    @classmethod
    def delete_config_by_id(cls, config_id):
        config = Config.get_by_id(config_id)
        config.delete_instance()


if __name__ == '__main__':
    db.create_tables([Config])
