class SetupSectionAccessibilityHelper {

    public SectionAccess canAccessBankDetailsSection(OrganisationResource organisation) {

        if (organisation.isInternational()) {
            return NOT_ACCESSIBLE;
        }

        if (setupProgressChecker.isOfflineOrWithdrawn()) {
            return NOT_ACCESSIBLE;
        }

        if (!isCompaniesHouseSectionIsUnnecessaryOrComplete(organisation,
                "Unable to access Bank Details section until Companies House information is complete")) {
            return NOT_ACCESSIBLE;
        }

        if(!setupProgressChecker.isOrganisationRequiringFunding(organisation)){
            return NOT_ACCESSIBLE;
        }

        if (!setupProgressChecker.isFinanceContactSubmitted(organisation)) {

            return fail("Unable to access Bank Details section until this Partner Organisation has submitted " +
                    "its Finance Contact");
        }

        return ACCESSIBLE;
    }

    public  SetupSectionAccessibilityHelper(ProjectTeamStatusResource projectTeamStatus);

}