#pragma once

#include "critter.hpp"
#include <map>
#include <string>

std::string get_writable_db_path();
bool ensure_db_copied();
bool db_get_all_critters(std::map<int, Critter> &critters);
bool db_add_critter(const Critter &c, int &out_id);
bool db_delete_critter(int id);
void db_print_all_critters(const std::map<int, Critter> &critters);
bool validate_critter(const Critter &c, const std::map<int, Critter> &all_critters, std::string &out_error);