#pragma once

#include "../databasemanager.h"
#include <QVector>
#include <optional>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include "common_structs.h"

class TemplateDao
{
public:
    static bool insert(Template& tmpl);
    static bool update(const Template& tmpl);
    static bool remove(qint64 id);
    static std::optional<Template> findById(qint64 id);
    static QVector<Template> findByAccount(qint64 accountId);  // accountId = -1 for global
    static QVector<Template> findGlobal();
    static QVector<Template> findAll();
    static std::optional<Template> findDefault(qint64 accountId);
    static bool setDefault(qint64 id, bool isDefault);
};