package cz.moneta.test.dsl.util.task.auto.smartauto;

import cz.moneta.test.dsl.Harness;
import cz.moneta.test.dsl.util.task.auto.smartauto.application.ApplicationTasks;
import cz.moneta.test.dsl.util.task.auto.smartauto.customer.*;
import cz.moneta.test.dsl.util.task.auto.smartauto.disclaimer.DisclaimerTasks;
import cz.moneta.test.dsl.util.task.auto.smartauto.goTo.GoToTasks;
import cz.moneta.test.dsl.util.task.auto.smartauto.insurance.InsuranceTasks;
import cz.moneta.test.dsl.util.task.auto.smartauto.invoices.InvoicesTasks;
import cz.moneta.test.dsl.util.task.auto.smartauto.login.LoginTasks;
import cz.moneta.test.dsl.util.task.auto.smartauto.newcalculation.*;
import cz.moneta.test.dsl.util.task.auto.smartauto.others.AccountTasks;
import cz.moneta.test.dsl.util.task.auto.smartauto.others.SaveTasks;
import cz.moneta.test.dsl.util.task.auto.smartauto.queue.QueueTasks;
import cz.moneta.test.dsl.util.task.auto.smartauto.savedCalculations.SavedCalculationsTasks;
import cz.moneta.test.dsl.util.task.auto.smartauto.vehicle.DataTasks;
import cz.moneta.test.dsl.util.task.auto.smartauto.vehicle.SearchTasks;
import cz.moneta.test.dsl.util.task.auto.smartauto.validation.ValidationTasks;

public class SmartAutoTasks {

    private final Harness harness;

    public SmartAutoTasks(Harness harness) {
        this.harness = harness;
    }

    public LoginTasks login() {
        return new LoginTasks(harness);
    }

    public DisclaimerTasks disclaimer() {
        return new DisclaimerTasks(harness);
    }

    public VerificationTasks verification() {
        return new VerificationTasks(harness);
    }

    public DateTasks date() {
        return new DateTasks(harness);
    }

    public FinancialProductTasks financialProduct() {
        return new FinancialProductTasks(harness);
    }

    public PrGroupTasks prGroupTasks() { return new PrGroupTasks(harness); }

    public PrClassTasks prClassTasks() { return new PrClassTasks(harness); }

    public BrandModelTasks brandModel() {
        return new BrandModelTasks(harness);
    }

    public SubsidyTasks SubsidyTasks() {
        return new SubsidyTasks(harness);
    }

    public CalculationTypeTasks calculationType() {
        return new CalculationTypeTasks(harness);
    }

    public UsageTasks usage() {
        return new UsageTasks(harness);
    }

    public ContactTasks contact() {
        return new ContactTasks(harness);
    }

    public IdentificationTasks identification() {
        return new IdentificationTasks(harness);
    }

    public BankContactTasks bankContact() {
        return new BankContactTasks(harness);
    }

    public PersonalDataTasks personalData() {
        return new PersonalDataTasks(harness);
    }

    public EmploymentTasks employment() {
        return new EmploymentTasks(harness);
    }

    public RevenuesAndExpensesTasks revenuesAndExpenses() {
        return new RevenuesAndExpensesTasks(harness);
    }

    public CompanyTasks company() {
        return new CompanyTasks(harness);
    }

    public FinancialTasks financial() {
        return new FinancialTasks(harness);
    }

    public GroupTasks group() { return new GroupTasks(harness); }

    public DataTasks data() {
        return new DataTasks(harness);
    }

    public SearchTasks search() {
        return new SearchTasks(harness);
    }

    public ValidationTasks validation() {
        return new ValidationTasks(harness);
    }

    public AccountTasks account() {
        return new AccountTasks(harness);
    }

    public ApplicationTasks application() {
        return new ApplicationTasks(harness);
    }

    public SaveTasks save() {
        return new SaveTasks(harness);
    }

    public ItemTypeTasks itemType() {
        return new ItemTypeTasks(harness);
    }

    // AGRO
    public AgroDonationsTasks agroDonationsTasks() { return  new AgroDonationsTasks(harness); }

    // Nepravidelné splátky
    public IrregularPaymentTasks irregularPaymentTasks() {return new IrregularPaymentTasks(harness);}

    // Queue
    public QueueTasks queue() {
        return new QueueTasks(harness);
    }

    //Saved Calculations
    public SavedCalculationsTasks savedCalculations() {
        return new SavedCalculationsTasks(harness);
    }

    // Go To Task
    public GoToTasks goTo() {
        return new GoToTasks(harness);
    }

    // Invoices Tasks
    public InvoicesTasks invoicesTasks() {
        return new InvoicesTasks(harness);
    }

    public InsuranceTasks insuranceTasks() {
        return new InsuranceTasks(harness);
    }
}
