#ifndef _COKEBANK_H_
#define _COKEBANK_H_
+#include <stdlib.h>
+
#define COKEBANK_SALES_ACCT ">sales" //!< Sales made into
#define COKEBANK_DEBT_ACCT ">liability" //!< Credit taken out of
+#define COKEBANK_FREE_ACCT ">freeitems" //!< ODay drink costs taken out of
/**
* \brief Account iterator opaque structure
*/
enum eCokebank_Flags {
USER_FLAG_COKE = 0x01, //!< User is a coke member (can do coke accounting)
- USER_FLAG_WHEEL = 0x02, //!< User is a wheel member (can create, delete and lock accounts)
+ USER_FLAG_ADMIN = 0x02, //!< User is a administrator (can create, delete and lock accounts)
USER_FLAG_DOORGROUP = 0x04, //!< User is in the door group (can open the clubroom door)
USER_FLAG_INTERNAL = 0x40, //!< Account is internal (cannot be authenticated, no lower balance limit)
USER_FLAG_DISABLED = 0x80 //!< Account is disabled (no transactions allowed)
* \param Ammount Amount of money (in cents) to transfer
* \param Reason Reason for the transfer
*/
-extern int Bank_Transfer(int SourceUser, int DestUser, int Ammount, const char *Reason);
+extern int Bank_Transfer(int SourceAcct, int DestAcct, int Ammount, const char *Reason);
/**
* \brief Get flags on an account
- * \param User UID to get flags from
+ * \param AcctID UID to get flags from
* \return Flag set as defined in eCokebank_Flags
*/
-extern int Bank_GetFlags(int User);
+extern int Bank_GetFlags(int AcctID);
/**
* \brief Set an account's flags
- * \param User UID to set flags on
+ * \param AcctID UID to set flags on
* \param Mask Mask of flags changed
* \param Value Final value of changed flags
*/
-extern int Bank_SetFlags(int User, int Mask, int Value);
+extern int Bank_SetFlags(int AcctID, int Mask, int Value);
/**
* \brief Get an account's balance
- * \param User UID to query
+ * \param AcctID Account to query
*/
-extern int Bank_GetBalance(int User);
+extern int Bank_GetBalance(int AcctID);
/**
* \brief Get the name associated with an account
* \return Heap string
*/
-extern char *Bank_GetUserName(int User);
+extern char *Bank_GetAcctName(int AcctID);
/**
- * \brief Get a UID from a passed name
+ * \brief Get an account ID from a passed name
*/
-extern int Bank_GetUserID(const char *Username);
+extern int Bank_GetAcctByName(const char *Name);
/**
* \brief Create a new account
* \param Username Name for the new account (if NULL, an anoymous account is created)
- * \return User ID of the new account
+ * \return ID of the new account
*/
-extern int Bank_CreateUser(const char *Username);
+extern int Bank_CreateAcct(const char *Name);
/**
* \brief Create an account iterator
/**
* \brief Get the current entry in the iterator and move to the next
* \param It Iterator returned by Bank_Iterator
- * \return User ID or -1 for end of list
+ * \return Accoun ID, or -1 for end of list
*/
extern int Bank_IteratorNext(tAcctIterator *It);
extern int Bank_GetUserAuth(const char *Salt, const char *Username, const char *Password);
/**
- * \brief Get a User ID from a MIFARE card ID
+ * \brief Get an account ID from a MIFARE card ID
* \param CardID MIFARE card ID
- * \return User ID
+ * \return Account ID
*/
-extern int Bank_GetUserByCard(const char *CardID);
+extern int Bank_GetAcctByCard(const char *CardID);
/**
- * \brief Add a card to a user's account
- * \param User User ID
+ * \brief Add a card to an account
+ * \param AcctID Account ID
* \param CardID MIFARE card ID
* \return Boolean failure
* \retval 0 Success
- * \retval 1 Bad user ID
+ * \retval 1 Bad account ID
* \retval 2 Card in use
*/
-extern int Bank_AddUserCard(int User, const char *CardID);
+extern int Bank_AddAcctCard(int AcctID, const char *CardID);
+
+// ---
+// Server provided helper functions
+// ---
+/**
+ * \brief Create a formatted string on the heap
+ * \param Format Format string
+ * \return Heap string
+ */
+extern char *mkstr(const char *Format, ...);
#endif