package cz.moneta.test.dsl.ufo.banka.pages.main;

import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage;
import cz.moneta.test.harness.support.web.*;

@Wait(value = UHK002_S001_CreateBankBookPayment.UHK002_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 90)
public interface UHK002_S001_CreateBankBookPayment extends WebFlow<UHK002_S001_CreateBankBookPayment> {
    String UHK002_S001_PAGE_LABEL_XPATH = "//div[text()='UHK002_S001']";
    String CREDITOR_ACC_SELECT = "UHK002_S001_C001";
    String DEBTOR_ACC_INPUT = "UHK002_S001_E001";
    String AMOUNT_INPUT = "UHK002_S001_E004";
    String MESSAGE_INPUT = "UHK002_S001_E005";
    String VARIABLE_SYMBOL_INPUT = "UHK002_S001_E006";
    String CONSTANT_SYMBOL_INPUT = "UHK002_S001_E007";
    String SPECIFIC_SYMBOL_INPUT = "UHK002_S001_E008";
    String SAVE_BUTTON = "UHK002_S001_B002";

    @Wait(value = CREDITOR_ACC_SELECT, until = Until.VISIBLE)
    @Select(CREDITOR_ACC_SELECT)
    UHK002_S001_CreateBankBookPayment selectCreditorAcc(String creditorAcc);

    @TypeInto(DEBTOR_ACC_INPUT)
    UHK002_S001_CreateBankBookPayment fillDebtorAcc(String debtorAcc);

    @TypeInto(AMOUNT_INPUT)
    UHK002_S001_CreateBankBookPayment fillAmount(String amount);

    @TypeIntos({@TypeInto(MESSAGE_INPUT), @TypeInto(VARIABLE_SYMBOL_INPUT),
            @TypeInto(CONSTANT_SYMBOL_INPUT), @TypeInto(SPECIFIC_SYMBOL_INPUT)})
    UHK002_S001_CreateBankBookPayment fillMaxData(String message, String variableSymbol,
                                                  String specificSymbol, String constantSymbol);

    @Click(SAVE_BUTTON)
    OBR001_S001_PrintInstructionPage clickOnSave();
}
