"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.HomePageProvider = void 0;
const extension_provider_1 = require("../../integration/extension.provider");
const web_site_provider_1 = require("./../web-site/web-site.provider");
const content_page_cache_definition_1 = require("./content-page-cache.definition");
const home_page_const_1 = require("./home-page.const");
const home_page_controller_1 = require("./home-page.controller");
const home_page_service_1 = require("./home-page.service");
class HomePageProvider extends extension_provider_1.ExtensionProvider {
    constructor(app) {
        super(home_page_const_1.HOME_PAGE_PROVIDER, app);
        this.app = app;
        this.requiredProviders.push(web_site_provider_1.WebSiteProvider);
        this.models.push(content_page_cache_definition_1.PageCache);
        this.models.push(content_page_cache_definition_1.ContentPageCache);
        this.repositories.push({ repoClass: content_page_cache_definition_1.ContentPageCacheRepository });
        this.services.push({ cls: content_page_cache_definition_1.ContentPageCacheService });
        this.services.push({ cls: home_page_service_1.HomePageService });
        this.controllers.push({
            controllerCtor: home_page_controller_1.HomePageController,
            description: {
                description: 'Render web site home page',
                services: ['HomePageService'],
            },
        });
        this.objectTypes.push(home_page_const_1.WEB_SITE_VIEW_URL_TYPE, home_page_const_1.WEB_SITE_CACHE_LANG_TYPE, home_page_const_1.PAGE_CACHE_TYPE);
        this.objectSubTypes.push(home_page_const_1.WEB_SITE_VIEW_WEB_SITE_VIEW_URL_SUBTYPE, home_page_const_1.WEB_SITE_VIEW_URL_WEB_SITE_CACHE_LANG_SUBTYPE, home_page_const_1.WEB_SITE_CACHE_LANG_PAGE_CACHE_SUBTYPE);
    }
}
exports.HomePageProvider = HomePageProvider;
//# sourceMappingURL=home-page.provider.js.map