scar-chat7/dbmanager/db_manager.h
2025-12-07 12:00:44 -07:00

42 lines
1.2 KiB
C++

#pragma once
#include "../server/database/database.h"
#include <string>
#include <vector>
#include <memory>
namespace scar {
class DBManager {
public:
explicit DBManager(const std::string& db_path);
~DBManager() = default;
// User management
bool addUser(const std::string& username, const std::string& password,
const std::string& avatar = "");
bool deleteUser(const std::string& username);
// Modify user fields
bool modifyPassword(const std::string& username, const std::string& new_password);
bool modifyAvatar(const std::string& username, const std::string& avatar_path);
bool modifyEmail(const std::string& username, const std::string& email);
bool modifyRole(const std::string& username, const std::string& role);
// Query operations
void fetchUser(const std::string& username);
void searchUsers(const std::string& field, const std::string& value);
void listAllUsers();
// Database location
static std::string findDatabase(const std::string& override_path = "");
private:
std::unique_ptr<Database> db_;
void printUserDetails(const UserRecord& user);
std::vector<uint8_t> readAvatarFile(const std::string& path);
};
} // namespace scar