package cz.moneta.test.dsl.ufo.banka.pages.cards.debit;

import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.HPO019_S001_CreditCardDetailPage;
import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.HPO039_S001_MbcDetailPage;
import cz.moneta.test.dsl.ufo.banka.pages.common.pages.AML002_S001_AmlSurveyPage;
import cz.moneta.test.dsl.ufo.banka.pages.common.pages.INK001_OBR001_001_CreditCardStartCreateInkasoPage;
import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage;
import cz.moneta.test.dsl.ufo.banka.pages.common.pages.POD032_OBR001_001_SelectedInkasoTypeAccountPage;
import cz.moneta.test.dsl.ufo.banka.pages.fon.*;
import cz.moneta.test.dsl.ufo.banka.pages.fop.KUL004_S001_EditBusinessInfoPage;
import cz.moneta.test.dsl.ufo.banka.pages.fop.KUL077_S001_ClientsBusinessAndPersonalData;
import cz.moneta.test.dsl.ufo.banka.pages.insurance.OBR001_S001_AppendixSignedPage;
import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP028_S001_SignaturePage;
import cz.moneta.test.dsl.ufo.banka.pages.loans.VER017_S001_SecondBankerVerificationStatusPage;
import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.NKK006_S001_CreditCardScoringResultPage;
import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage;
import cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL006_S001_FlexikreditScoringResultPage;
import cz.moneta.test.dsl.ufo.banka.pages.main.BAL021_S002_SummaryOfProductFoundationPage;
import cz.moneta.test.dsl.ufo.banka.pages.main.BAL035_S002_SummaryOfProductFoundationRetailPage;
import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage;
import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage;
import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ADR004_S001_EnterContactAddressPage;
import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ODS003_S001_AddCodeOfRecommendedPersonPage;
import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.PVX002_S002_AccountDispositionOwnerPage;
import cz.moneta.test.dsl.ufo.banka.pages.main.components.BUF051_S001_CreateCurrentAccountPage;
import cz.moneta.test.dsl.ufo.banka.pages.po.ZAS001_S001_StatutoryAuthorityPage;
import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BPP001_S001_DocumentationSendPage;
import cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.NPK001_S001_DebitCardRequestPage;
import cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL024_S001_OneClickPage;
import cz.moneta.test.dsl.ufo.banka.pages.products.saving.accounts.SPU001_S001_SavingAccountPage;
import cz.moneta.test.dsl.ufo.banka.pages.products.sme.BPP006_S001_CheckSigningPersonsEmailPage;
import cz.moneta.test.dsl.ufo.banka.pages.products.sme.CHK001_S001_WaitingForModulationPage;
import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL012_S001_RequestedDocumentsPage;
import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage;
import cz.moneta.test.harness.context.StoreAccessor;
import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint;
import cz.moneta.test.harness.support.web.CustomAction;
import cz.moneta.test.harness.support.web.WebFlow;

public interface OBR003_S001_ClientContractSignPageTransitions extends WebFlow<OBR003_S001_ClientContractSignPageTransitions>, StoreAccessor {

    BAL021_S002_SummaryOfProductFoundationPage onSummaryOfProductFoundationPage();

    HPO009_S001_DebitCardDetailPage onDebitCardDetailPage();

    OBR001_S001_AppendixSignedPage onAppendixSignedPage();

    HPO019_S001_CreditCardDetailPage onCreditCardDetailPage();

    POD032_OBR001_001_SelectedInkasoTypeAccountPage onSelectedInkasoTypeAccountPage();

    HPO039_S001_MbcDetailPage onMbcDetailPage();

    BUF051_S001_CreateCurrentAccountPage onCurrentAccountPage();

    INK001_OBR001_001_CreditCardStartCreateInkasoPage onCreditCardStartCreateInkasoPage();

    OBR003_S001_ClientContractSignPage onClientContractSignPage();

    PSP004_S001_PrintPage onPrintPage();

    BAL006_S002_ClientRequestPage onClientRequestPage();

    KUL004_S001_EditBusinessInfoPage onEditBusinessInfoPage();

    KUL077_S001_ClientsBusinessAndPersonalData onBusinessInfoPage();

    CHK001_S001_WaitingForModulationPage onWaitingForModulationPage();

    HKO101_S001_MainClientPage onMainClientPage();

    ODS003_S001_AddCodeOfRecommendedPersonPage onAddCodeOfRecommendedPersonPage();

    PVX002_S002_AccountDispositionOwnerPage onAccountDispositionOwnerPage();

    BAL024_S001_OneClickPage onOneClickPage();

    NPK001_S001_DebitCardRequestPage onDebitCardRequestPage();

    ICO001_S001_BusinessControlPage onBusinessControlPage();

    CIF111_S016_CreateNewCifPage onCreateNewCifPage();

    NKK006_S001_CreditCardScoringResultPage onCreditCardScoringResultPage();

    BPP001_S001_DocumentationSendPage onDocumentationSendPage();

    TIS050_S002_SignerSelectionPage onSignerSelection();

    TIS050_S001_SignerSelectionPage onSignerSelectionPage();

    KUL012_S001_RequestedDocumentsPage onRequestedDocumentsPage();

    CIF009_S002_PersonalDataFON onPersonalDataFON();

    NEP006_S001_ExpressScoringResultPage onMegaExpressRequestPage();

    DMS001_S001_ScanDocumentsPage onScanDocumentsPage();

    BPP006_S001_CheckSigningPersonsEmailPage onCheckSigningPersonsEmail();

    SPU001_S001_SavingAccountPage onSavingsAccountPage();

    SCN001_S001_IdDocumentsCopy onIdDocumentsCopy();

    NFL006_S001_FlexikreditScoringResultPage onFlexikreditScoringPage();

    BAL035_S002_SummaryOfProductFoundationRetailPage onSummaryOfProductFoundationRetailPage();

    NEP028_S001_SignaturePage onSignaturePage();

    NEP006_S001_ExpressScoringResultPage onExpressScoringResultPage();

    AML002_S001_AmlSurveyPage onAmlSurveyPage();

    VER017_S001_SecondBankerVerificationStatusPage onSecondBankerVerificationStatusPage();

    ZAS001_S001_StatutoryAuthorityPage onStatutoryAuthorityPage();

    OBR001_S001_PrintInstructionPage onPrintInstructionPage();

    @CustomAction
    default ADR004_S001_EnterContactAddressPage onEnterContactAddressPageWithPossibleAlert() {
        UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class);
        if (endpoint.isAlertPresent(3)) {
            endpoint.acceptAlert(3);
        }
        return null;
    }
}
