package io.delphi.qa.auto.awsmfrw.managers.helpers.db.snowflake;

import io.qameta.allure.Step;

public class MgSnowflake {

  private SfRlsUserInterface explorationUser;
  private SfRlsAdminInterface sysAdmin;
  private SfRlsUserInterface explorationAdPlus;
  private SfRlsUserInterface explorationAdvUser;
  private SfRlsInterface rls;

  public SfRlsUserInterface explorationAdPlus() {
    return explorationAdPlus == null
        ? explorationAdPlus = new SfExplorationAdPlusImpl()
        : explorationAdPlus;
  }

  public SfRlsUserInterface explorationAdvUser() {
    return explorationAdvUser == null
        ? explorationAdvUser = new SfExplorationAdvUserImpl()
        : explorationAdvUser;
  }

  public SfRlsUserInterface explorationUser() {
    return explorationUser == null
        ? explorationUser = new SfExplorationUserImpl()
        : explorationUser;
  }

  public SfRlsInterface rls() {
    return rls == null ? rls = new SfRlsImpl() : rls;
  }

  @Step("Use role.sysadmin")
  public SfRlsAdminInterface sysAdmin() {
    return sysAdmin == null ? sysAdmin = new SfSysAdminImpl() : sysAdmin;
  }
}
