BareGit
#pragma once

#include <filesystem>
#include <cstdint>
#include <memory>
#include <string>

#include <mw/error.hpp>

#include "data.h"

/// Open, migrate, and reconcile the data source before server startup.
mw::E<std::unique_ptr<DataSourceInterface>> prepareDataSource(
    const std::filesystem::path& database_path,
    const std::string& administrator_email = "admin@example.com",
    const std::string& administrator_email_key = "admin@example.com",
    std::int64_t now = 0,
    std::int64_t utc_day = 0);