#ifndef CONFIGURATIONFACTORY1_H_
#define CONFIGURATIONFACTORY1_H_

// Author: Steve Talbot

#pragma once

#include "ConfigurationFactory.h"

#include "login_a.h"
#include "pin_a.h"
#include "deposit_a.h"
#include "withdraw_a.h"
#include "balance_a.h"
#include "prompt_for_pin_a.h"
#include "incorrect_id_msg_a.h"
#include "incorrect_pin_msg_a.h"
#include "too_many_attempts_msg_a.h"
#include "display_menu_a.h"
#include "deactivate_msg_a.h"
#include "make_withdraw_a.h"
#include "penalty_a.h"
#include "make_deposit_a.h"
#include "display_balance_a.h"
#include "below_min_balance_msg_a.h"
#include "activate_msg_a.h"
#include "inactive_account_msg_a.h"

#include "login_1.h"
#include "pin_1.h"
#include "deposit_1.h"
#include "withdraw_1.h"
#include "balance_1.h"
#include "prompt_for_pin_1.h"
#include "incorrect_id_msg_1.h"
#include "incorrect_pin_msg_1.h"
#include "too_many_attempts_msg_1.h"
#include "display_menu_1.h"
#include "deactivate_msg_1.h"
#include "make_withdraw_1.h"
#include "penalty_1.h"
#include "make_deposit_1.h"
#include "display_balance_1.h"
#include "below_min_balance_msg_1.h"
#include "activate_msg_1.h"
#include "inactive_account_msg_1.h"

using namespace std;

class ConfigurationFactory1 : public ConfigurationFactory {

public:
	ConfigurationFactory1();
	virtual ~ConfigurationFactory1();

	virtual login_a* makeLogin();

	virtual pin_a* makePin();

	virtual deposit_a* makeDeposit();

	virtual withdraw_a* makeWithdraw();

	virtual balance_a* makeBalance();

	virtual prompt_for_pin_a* makePromptForPin();

	virtual incorrect_id_msg_a* makeIncorrectIdMsg();

	virtual incorrect_pin_msg_a* makeIncorrectPinMsg();

	virtual too_many_attempts_msg_a* makeTooManyAttemptsMsg();

	virtual display_menu_a* makeDisplayMenu();

	virtual deactivate_msg_a* makeDeactivateMsg();

	virtual make_withdraw_a* makeMakeWithdraw();

	virtual penalty_a* makePenalty();

	virtual make_deposit_a* makeMakeDeposit();

	virtual display_balance_a* makeDisplayBalance();

	virtual below_min_balance_msg_a* makeBelowMinBalance();

	virtual activate_msg_a* makeActivateMsg();

	virtual inactive_account_msg_a* makeInactiveAccountMsg();

};

#endif /*CONFIGURATIONFACTORY1_H_*/
