#ifndef SESSION_AUTHENTICATOR_HPP_
#define SESSION_AUTHENTICATOR_HPP_

#include <Authenticator/Authenticator.hpp>
#include <UserDB/UserDB.hpp>

/**
 * @brief Session ID authenticator.
 */
class SessionAuthenticator : public Authenticator
{
private:
    std::string userName;
    UserDB::SessionID sid;

public:
    /**
     * @brief Construct the session authenticator.
     * 
     * @param userName The user name.
     * @param sid The session ID.
     */
    SessionAuthenticator(std::string userName, UserDB::SessionID sid);

    virtual bool sendGreetingPayload(SOCKET socket) override;
    virtual std::string getUserName() override;
};

#endif