package cz.moneta.test.dsl.udebs;

import cz.moneta.test.dsl.udebs.ib.AccountNumbers;
import cz.moneta.test.dsl.udebs.ib.IbBuilder;
import cz.moneta.test.dsl.udebs.smeonboarding.SmsKeyBuilder;
import cz.moneta.test.harness.context.StoreAccessor;

public class Udebs {

    private final StoreAccessor harness;

    public Udebs(StoreAccessor harness) {
        this.harness = harness;
    }

    public FromWPsd2TokensBuilder fromWPsd2Tokens() {
        return new FromWPsd2TokensBuilder(harness);
    }

    public ClientPaymentsLimitsBuilder clientPaymentsLimits() {
        return new ClientPaymentsLimitsBuilder(harness);
    }

    public ThirdPartyBuilder thirdParty() {
        return new ThirdPartyBuilder(harness);
    }

    public IbBuilder ib() {
        return new IbBuilder(harness);
    }

    public TransactionForKycBuilder transactionForKyc() {
        return new TransactionForKycBuilder(harness);
    }

    public PhoneBuilder phone() {
        return new PhoneBuilder(harness);
    }

    public UserStatusToIdentityBuilder userStatusToIdentity() {
        return new UserStatusToIdentityBuilder(harness);
    }

    public SmsKeyBuilder smsKeyBuilder() {
        return new SmsKeyBuilder(harness);
    }

    public AccountNumbers accountNumbers() {
        return new AccountNumbers(harness);
    }

    public TransactionsClient transactionsClient() {
        return new TransactionsClient(harness);
    }

    public PaymentOrder paymentOrder() {
        return new PaymentOrder(harness);
    }

    public UsersTable usersTable() {
        return new UsersTable(harness);
    }

    public AccountMovements accountMovements() {
        return new AccountMovements(harness);
    }

    public TransactionStatusBuilder setTransactionStatus() {
        return new TransactionStatusBuilder(harness);
    }

    public MessageMovements messageMovements() {
        return new MessageMovements(harness);
    }
}