CCash/include/user.hpp
2021-04-02 02:12:41 -07:00

75 lines
No EOL
2.1 KiB
C++

#pragma once
#include <string>
#include <mutex>
struct User
{
uint_fast64_t balance = 0;
std::string password;
/**
* @brief User constructor
*
* @param init_pass initial password
*/
User(std::string &&init_pass) : password(init_pass) {}
/**
* @brief User Constructor for admins
*
* @param init_bal initial balance
* @param init_pass initial password
*/
User(uint_fast64_t init_bal, std::string &&init_pass) : balance(init_bal), password(init_pass) {}
// bool ChangePassword(const std::string &attempt, std::string &&new_pass)
// {
// const bool state = (password == attempt);
// if (state)
// {
// password = new_pass;
// }
// return state;
// }
// // /**
// // * @brief SendFunds allows sending of money between users if verification is provided in the form of a password and if the user has sufficient funds
// // *
// // * @param a first user
// // * @param b second user
// // * @param amount amount being sent
// // * @param attempt password of first user
// // * @return wether transaction was succesful
// // */
// // static bool SendFunds(User &a, User &b, uint_fast64_t amount, const std::string &attempt)
// // {
// // const bool state = (a.password == attempt) && (a.balance >= amount);
// // if (state)
// // {
// // a.balance -= amount;
// // b.balance += amount;
// // }
// // return state;
// // }
// /**
// * @brief Get the balance of the User object
// *
// * @return the balance
// */
// uint_fast64_t GetBal() const
// {
// return balance;
// }
// /**
// * @brief Used for Verification of password by external services, this can be used for logging in or signature
// *
// * @param attempt the password
// * @return wether the passwords match
// */
// bool VerifyPassword(const std::string &attempt) const
// {
// return (password == attempt);
// }
};