package cz.moneta.test.dsl.forte.components;

import cz.moneta.test.dsl.forte.pages.brncontrols.BrnControlsMainPage;
import cz.moneta.test.dsl.forte.pages.brncontrols.ControlsOnOmPage;
import cz.moneta.test.dsl.forte.pages.brncontrols.BrnControlsUniversalEnumInterface;
import cz.moneta.test.dsl.forte.pages.contracts.ReportControlsOnOm;
import cz.moneta.test.harness.support.web.Builder;
import cz.moneta.test.harness.support.web.Click;
import cz.moneta.test.harness.support.web.Wait;

import static cz.moneta.test.dsl.forte.components.RoleSelection.LEFT_PANEL;

@Wait(LEFT_PANEL)
public interface BrnControlsMenu extends RoleSelection<BrnControlsMainPage>, Builder {
    String CONTROL_MENU_UL = LEFT_PANEL + "//ul[@class='control menu']";
    String CONTROLS_ON_OM = CONTROL_MENU_UL + "//a[@href='/controlsom/controlplan/']";

    String CONTROLS_ENUMS_TOTAL_RESULT = CONTROL_MENU_UL + "//a[@href='/controlsom/totalresult/']";
    String CONTROLS_ENUMS_ERROR_TYPES = CONTROL_MENU_UL + "//a[@href='/controlsom/errortype/']";
    String CONTROLS_ENUMS_TRANSACTION_FORMS = CONTROL_MENU_UL + "//a[@href='/controlsom/transactionform/']";
    String CONTROLS_ENUMS_TRANSACTION_TYPES = CONTROL_MENU_UL + "//a[@href='/controlsom/transactiontype/']";
    String CONTROLS_ENUMS_TREND_CONTROL = CONTROL_MENU_UL + "//a[@href='/controlsom/trend/']";
    String CONTROLS_ENUMS_CONTROL_TYPES = CONTROL_MENU_UL + "//a[@href='/controlsom/controltype/']";
    String CONTROLS_ENUMS_PRODUCT_TYPES = CONTROL_MENU_UL + "//a[@href='/controlsom/producttype/']";
    String CONTROLS_ENUMS_CONTROL_RESULTS = CONTROL_MENU_UL + "//a[@href='/controlsom/controlresult/']";

    String SECURITY_ENUMS_CONTROLS_TYPES = CONTROL_MENU_UL + "//a[@href='/controlsom/securitytype/']";
    String SECURITY_ENUMS_CONTROL_RESULTS = CONTROL_MENU_UL + "//a[@href='/controlsom/securityresult/']";

    String REPORTS_CONTROLS_ON_OM = CONTROL_MENU_UL + "//a[@href='/controlsom/processreport/']";

    @Click(CONTROLS_ON_OM)
    ControlsOnOmPage clickControlsOnOM();

    @Click(CONTROLS_ENUMS_TOTAL_RESULT)
    BrnControlsUniversalEnumInterface clickControlsEnumsTotalResult();

    @Click(CONTROLS_ENUMS_ERROR_TYPES)
    BrnControlsUniversalEnumInterface clickControlsEnumsErrorTypes();

    @Click(CONTROLS_ENUMS_TRANSACTION_FORMS)
    BrnControlsUniversalEnumInterface clickControlsEnumsTransactionForms();

    @Click(CONTROLS_ENUMS_TRANSACTION_TYPES)
    BrnControlsUniversalEnumInterface clientControlsEnumsTransactionTypes();

    @Click(CONTROLS_ENUMS_TREND_CONTROL)
    BrnControlsUniversalEnumInterface clickControlsEnumsTrendControl();

    @Click(CONTROLS_ENUMS_CONTROL_TYPES)
    BrnControlsUniversalEnumInterface clickControlsEnumsControlTypes();

    @Click(CONTROLS_ENUMS_PRODUCT_TYPES)
    BrnControlsUniversalEnumInterface clickControlsEnumsProductTypes();

    @Click(CONTROLS_ENUMS_CONTROL_RESULTS)
    BrnControlsUniversalEnumInterface clickControlsEnumsControlResults();

    @Click(SECURITY_ENUMS_CONTROLS_TYPES)
    BrnControlsUniversalEnumInterface clickSecurityEnumsControlsTypes();

    @Click(SECURITY_ENUMS_CONTROL_RESULTS)
    BrnControlsUniversalEnumInterface clickSecurityEnumsControlResults();

    @Click(REPORTS_CONTROLS_ON_OM)
    ReportControlsOnOm clickReportsControlsOnOM();

}