#pragma once

#include <memory>

#include "SqliteInterface.h"
#include "Database.h"

class DatabaseManager
{
public:

    DatabaseManager();

    ~DatabaseManager();

    static std::unique_ptr<DatabaseManager> Create();

    void CreateDatabase(const std::string& path);

    void Run(const std::string& statement);

    void OnShutDown();

private:
    DatabasePtr mDatabase;
    SqliteInterfacePtr mDatabaseInterface;
};

using DatabaseManagerPtr = std::unique_ptr<DatabaseManager>;
