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

import cz.moneta.test.harness.support.web.*;

import static cz.moneta.test.dsl.ufo.banka.pages.fop.CIF071_S001_PersonalAndContactDataPage.*;

@Wait(value = CIF071_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60)
@Wait(value = DISABLED_CONTINUE_BUTTON)
public interface CIF071_S001_PersonalAndContactDataPage extends WebFlow<CIF071_S001_PersonalAndContactDataPage> {
    String CIF071_S001_PAGE_LABEL_XPATH = "//div[text()='CIF071_S001']";
    String DISABLED_CONTINUE_BUTTON = "CIF071_S001_X054";

    String CONTINUE_BUTTON = "CIF071_S001_B002";

    String MARITAL_STATUS_SELECT = "CIF071_S001_C001";
    String EDUCATION_LEVEL_SELECT = "CIF071_S001_C006";
    String ACCOMMODATION_TYPE_SELECT = "CIF071_S001_C007";

    String NUMBER_OF_DEPENDENTS_INPUT = "CIF071_S001_E001";
    String COMPANY_EMAIL_INPUT = "CIF071_S001_E002";
    String COMPANY_MOBILE_INPUT = "CIF071_S001_E006";
    String PERSONAL_EMAIL_INPUT = "CIF071_S001_E018";
    String PERSONAL_MOBILE_INPUT = "CIF071_S001_E019";

    String CONSENT_EMAIL_PHONE_CHECKBOX = "CIF071_S001_H001_1";
    String CONSENT_WHATSAPP_CHECKBOX = "CIF071_S001_H002_1";

    @Select(MARITAL_STATUS_SELECT)
    CIF071_S001_PersonalAndContactDataPage selectMaritalStatus(String maritalStatus);

    @Select(EDUCATION_LEVEL_SELECT)
    CIF071_S001_PersonalAndContactDataPage selectEducationLevel(String educationLevel);

    @Select(ACCOMMODATION_TYPE_SELECT)
    CIF071_S001_PersonalAndContactDataPage selectAccommodationType(String accommodationType);

    @TypeInto(NUMBER_OF_DEPENDENTS_INPUT)
    @KeyPress(Key.TAB)
    CIF071_S001_PersonalAndContactDataPage fillNumberOfDependents(String numberOfDependents);

    @TypeInto(COMPANY_EMAIL_INPUT)
    CIF071_S001_PersonalAndContactDataPage fillCompanyEmail(String companyEmail);

    @TypeInto(COMPANY_MOBILE_INPUT)
    CIF071_S001_PersonalAndContactDataPage fillCompanyMobile(String companyMobile);

    @TypeInto(PERSONAL_EMAIL_INPUT)
    CIF071_S001_PersonalAndContactDataPage fillPersonalEmail(String companyEmail);

    @TypeInto(PERSONAL_MOBILE_INPUT)
    CIF071_S001_PersonalAndContactDataPage fillPersonalMobile(String companyMobile);

    @Click(value = CONSENT_EMAIL_PHONE_CHECKBOX, jsClick = true)
    @Click(value = CONSENT_WHATSAPP_CHECKBOX, jsClick = true)
    CIF071_S001_PersonalAndContactDataPage clickAcceptConsents();

    @Wait(value = CONTINUE_BUTTON, until = Until.VISIBLE)
    @Click(value = CONTINUE_BUTTON)
    CIF072_S001_AntiLaunderingStatementPage continueToAntiLaunderingStatementPage();
}
