package cz.moneta.test.dsl.ib.accountsandtransactions.standingorder;

import cz.moneta.test.dsl.ib.IbPageFlow;
import cz.moneta.test.harness.support.web.Click;
import cz.moneta.test.harness.support.web.TypeInto;

public interface StandingOrderCreatePage extends IbPageFlow<StandingOrderCreatePage> {
    String ACCOUNT_SELECT = "//select[@name='fromAccount']";
    String ACCOUNT_BANK_INPUT = "//input [@name='partnerAccountBank']";
    String ACCOUNT_PARTNER_INPUT = "//input[@name='partnerAccountNumber']";
    String NAME_STANDING_INPUT = "//input [@name='creditInfo']";
    String AMOUNT_STANDING_INPUT = "//input [@name='amount']";
    String VARIABLE_SYMBOL_INPUT = "//input [@name='vs']";
    String CONST_SYMBOL_INPUT = "//input [@name='cs']";
    String SPECIFIC_SYMBOL_INPUT = "//input [@name='ss']";
    String MESSAGE_INPUT = "//input [@name='clientRef']";
    String STANDING_CONTINUE_BUTTON = "//img[@alt='Pokračovat']";

    @Click(ACCOUNT_SELECT)
    StandingOrderCreatePage clickAccountSelect();

    @TypeInto(ACCOUNT_BANK_INPUT)
    StandingOrderCreatePage fillPartnerAccountBank(String bankCode);

    @TypeInto(ACCOUNT_PARTNER_INPUT)
    StandingOrderCreatePage fillPartnerAccount(String beneficiaryAccount);

    @TypeInto(NAME_STANDING_INPUT)
    StandingOrderCreatePage fillOrderName(String orderName);

    @TypeInto(AMOUNT_STANDING_INPUT)
    StandingOrderCreatePage fillAmount(String amountInCZK);

    @TypeInto(VARIABLE_SYMBOL_INPUT)
    StandingOrderCreatePage fillVariableSymbol(String variableSymbol);

    @TypeInto(CONST_SYMBOL_INPUT)
    StandingOrderCreatePage fillConstSymbol(String constantSymbol);

    @TypeInto(SPECIFIC_SYMBOL_INPUT)
    StandingOrderCreatePage fillSpecificSymbol(String specificSymbol);

    @TypeInto(MESSAGE_INPUT)
    StandingOrderCreatePage fillMessage(String message);

    @Click(STANDING_CONTINUE_BUTTON)
    StandingOrderConfirmationPage clickContinue();
}