#ifndef BORROWDB_CLASS_
#define BORROWDB_CLASS_
class BorrowDB: public Database
	{
	private:
		//Member data
		static const Text CLASS_NAME;
		static BorrowMap borrowMap;
		static LibList  itemList;
		static BorrowList borrowList;
		//Member functions
		void loadBorrowers();
		static void loadBorrowList(BorrowList *borrowList);
		static Borrow *findItem(Identity::Id itemId);
		static Borrow *findPatron(Identity::Id patronId);
		static void getItemList(Database::LibList *itemList);
	public:
		//Constructor/Destructor
		BorrowDB();
		~BorrowDB();//Destructor
		//Member functions
		void printStats();
		static void init();
		UI::Command checkedOutMenu();
		static void checkOutItem(Transaction *transaction);
		static void returnItem(Transaction *transaction);
		static BorrowIdList getIdList();
		Identity::Id getItemId() const;
		static void sortByPatron();
		static void sortByTitle();
		static void sortByDate();
		static void sortByType();
		static void displayCheckedOutItems(BorrowList &sortedList);
		static void displayCheckedOutItems(LibList &libList);
	};
#endif
