package cz.moneta.test.dsl.ufo.banka.tasks;

import cz.moneta.test.dsl.Harness;
import cz.moneta.test.dsl.ufo.banka.tasks.cards.CardsOnboardingTasks;
import cz.moneta.test.dsl.ufo.banka.tasks.cards.CardsServicingTasks;
import cz.moneta.test.dsl.ufo.banka.tasks.clients.*;
import cz.moneta.test.dsl.ufo.banka.tasks.expres.ExpressTasks;
import cz.moneta.test.dsl.ufo.banka.tasks.insurance.InsuranceGroupTasks;
import cz.moneta.test.dsl.ufo.banka.tasks.insurance.InsurancePpiPlusTasks;
import cz.moneta.test.dsl.ufo.banka.tasks.insurance.InsurancePpiTasks;
import cz.moneta.test.dsl.ufo.banka.tasks.insurance.InsuranceIndividualTasks;
import cz.moneta.test.dsl.ufo.banka.tasks.payment.PaymentTasks;
import cz.moneta.test.dsl.ufo.banka.tasks.products.*;

public class BankaTasks {

    private final Harness harness;

    public BankaTasks(Harness harness) {
        this.harness = harness;
    }

    public LoginTasks login() {
        return new LoginTasks(harness);
    }

    public NewClientTasks newClient() {
        return new NewClientTasks(harness);
    }

    public NewFopClientTasks newFopClient() {
        return new NewFopClientTasks(harness);
    }

    public NewAcceleratedFopClientTasks newAcceleratedFopClientTasks() {
        return new NewAcceleratedFopClientTasks();
    }

    public NewPoClientTasks newPoClient() {
        return new NewPoClientTasks(harness);
    }

    public NewProductTasks newProduct() {
        return new NewProductTasks(harness);
    }

    public NewPackagedProductTasks newPackagedProductTasks() {
        return new NewPackagedProductTasks(harness);
    }

    public ContactAddressTasks contactAddress() {
        return new ContactAddressTasks(harness);
    }

    public NewLoanApplicationTasks newLoanApplication() {
        return new NewLoanApplicationTasks(harness);
    }

    public MainApplicantInformationTasks mainApplicantInformation() {
        return new MainApplicantInformationTasks(harness);
    }

    public ExpressTasks expresTasks() {
        return new ExpressTasks(harness);
    }

    public SearchTasks search() {
        return new SearchTasks(harness);
    }

    public NewCurrentAccountTasks newCurrentAccountTasks() {
        return new NewCurrentAccountTasks();
    }

    public NewSmeProductTasks newSmeProducts() {
        return new NewSmeProductTasks(harness);
    }

    public InsurancePpiTasks newInsurancePpiTasks() {
        return new InsurancePpiTasks();
    }

    public InsurancePpiPlusTasks newInsurancePpiPlusTasks() {
        return new InsurancePpiPlusTasks();
    }

    public InsuranceGroupTasks newInsuranceGroupTasks() {
        return new InsuranceGroupTasks();
    }

    public InsuranceIndividualTasks newInsuranceIndividualTasks() {
        return new InsuranceIndividualTasks(harness);
    }

    public CardsServicingTasks cardsServicing() {
        return new CardsServicingTasks(harness);
    }

    public CardsOnboardingTasks cardsOnboarding() {
        return new CardsOnboardingTasks(harness);
    }

    public FlexiCreditTasks flexiCreditTasks() {
        return new FlexiCreditTasks(harness);
    }

    public NewConsolidationTasks newConsolidation() {
        return new NewConsolidationTasks(harness);
    }

    public NewSmeAutomatFopTasks newSmeAutomatFopTasks() {
        return new NewSmeAutomatFopTasks(harness);
    }

    public NewSmeAutomatPoTasks newSmeAutomatPoTasks() {
        return new NewSmeAutomatPoTasks(harness);
    }

    public NewSmeAutomatSubTasks newSmeAutomatSubTasks() {
        return new NewSmeAutomatSubTasks(harness);
    }

    public IncomeModuleTasks newIncomeModuleTasks() {
        return new IncomeModuleTasks();
    }

    public DebitCardTasks newDebitCard() {
        return new DebitCardTasks(harness);
    }

    public TermDepositTasks newTermDeposit() {
        return new TermDepositTasks();
    }

    public CreateStatutoryAuthority newStatutoryAuthority() {
        return new CreateStatutoryAuthority(harness);
    }

    public OneClickTasks oneClick() {
        return new OneClickTasks(harness);
    }

    public RetailHunterTasks retailHunter() {
        return new RetailHunterTasks(harness);
    }

    public SharedTasks sharedTasks() {
        return new SharedTasks();
    }

    public ClipDeclipFopTasks clipDeclipFop() {
        return new ClipDeclipFopTasks(harness);
    }

    public ClipDeclipPoTasks clipDeclipPo() {
        return new ClipDeclipPoTasks(harness);
    }

    public PaymentTasks payment() {
        return new PaymentTasks(harness);
    }
}

