plugin.tx_epproducts {
    view {
        layoutRootPaths.0 = EXT:ep_theme/Resources/Private/Layouts/Product/
        templateRootPaths.0 = EXT:ep_theme/Resources/Private/Templates/
        partialRootPaths.0 = EXT:ep_theme/Resources/Private/Partials/
    }
    persistence {
        storagePid = {$plugin.tx_epproducts.persistence.storagePid}
        classes {
            EP\EpProducts\Domain\Model\Product.newRecordStoragePid = {$plugin.tx_epproducts.settings.productsStoragePid}
            EP\EpProducts\Domain\Model\Hotel.newRecordStoragePid = {$plugin.tx_epproducts.settings.hotelsStoragePid}
            EP\EpProducts\Domain\Model\Country.newRecordStoragePid = {$plugin.tx_epproducts.settings.destinationsStoragePid}
            EP\EpProducts\Domain\Model\Region.newRecordStoragePid = {$plugin.tx_epproducts.settings.destinationsStoragePid}
            EP\EpProducts\Domain\Model\City.newRecordStoragePid = {$plugin.tx_epproducts.settings.destinationsStoragePid}
            EP\EpProducts\Domain\Model\Journey.newRecordStoragePid = {$plugin.tx_epproducts.settings.destinationsStoragePid}
            EP\EpProducts\Domain\Model\Concept.newRecordStoragePid = {$plugin.tx_epproducts.settings.conceptsStoragePid}
            EP\EpProducts\Domain\Model\Fact.newRecordStoragePid = {$plugin.tx_epproducts.settings.factsStoragePid}
            EP\EpProducts\Domain\Model\Faq.newRecordStoragePid = {$plugin.tx_epproducts.settings.faqsStoragePid}
            EP\EpProducts\Domain\Model\Teammember.newRecordStoragePid = {$plugin.tx_epproducts.settings.teammemberStoragePid}
            EP\EpProducts\Domain\Model\Officetip.newRecordStoragePid = {$plugin.tx_epproducts.settings.officetipStoragePid}
            EP\EpProducts\Domain\Model\Room.newRecordStoragePid = {$plugin.tx_epproducts.persistence.storagePid}
            EP\EpProducts\Domain\Model\Date.newRecordStoragePid = {$plugin.tx_epproducts.persistence.storagePid}
            EP\EpProducts\Domain\Model\MatchCode.newRecordStoragePid = {$plugin.tx_epproducts.persistence.storagePid}
        }
    }
    settings {
        destinationsStoragePid = {$plugin.tx_epproducts.settings.destinationsStoragePid}
        snowReportStoragePid = {$plugin.tx_epproducts.settings.snowReportStoragePid}
        defaultSearchPageUid = {$plugin.tx_epproducts.settings.defaultSearchPageUid}
        defaultDetailPageUid = {$plugin.tx_epproducts.settings.defaultDetailPageUid}
        excludedConceptUids = {$plugin.tx_epproducts.settings.excludedConceptUids}
        excludedRegionUids = {$plugin.tx_epproducts.settings.excludedRegionUids}
        forcedConceptUids = {$plugin.tx_epproducts.settings.forcedConceptUids}
        noInfoConceptUids = {$plugin.tx_epproducts.settings.noInfoConceptUids}
        priceTableRoomTypes = {$plugin.tx_epproducts.settings.priceTableRoomTypes}
        searchLogIgnoreIps = {$plugin.tx_epproducts.settings.searchLogIgnoreIps}
        groupsPageUid = {$plugin.tx_eptheme.settings.groupsPageUid}
        groupsContactFormPageUid = {$plugin.tx_eptheme.settings.groupsContactFormPageUid}
        googleMapsApiKey = {$plugin.tx_eptheme.settings.googleMapsApiKey}
        resellerExportPageUid = {$plugin.tx_epproducts.settings.resellerExportPageUid}
        ratingPageUid = {$plugin.tx_eptheme.settings.ratingPageUid}
        datePickerPresets {
            1 {
               label = Silvester
               dateFrom = 2017-12-25
               dateTo = 2018-01-06
            }
            2 {
                label = Karneval
                dateFrom = 2018-02-03
                dateTo = 2018-02-17
            }
            3 {
                label = Ostern
                dateFrom = 2018-03-24
                dateTo = 2018-04-05
            }
        }
    }
    # The following is required to avoid cHash errors caused by additional query parameters (fx 'pa')
    # There has to be a better solution though
    features.requireCHashArgumentForActionArguments = 0
}

config.tx_extbase.persistence.classes {
    EP\EpProducts\Domain\Model\Log.mapping {
        tableName = tx_epproducts_log
        columns {
            data.mapOnProperty = data
            time_micro.mapOnProperty = timeMicro
        }
    }
}

module.tx_epproducts {
    settings < plugin.tx_epproducts.settings
    persistence < plugin.tx_epproducts.persistence
}

# Register Ajax page types (json and html output)
tx_epproducts_ajax_json = PAGE
tx_epproducts_ajax_json {
    typeNum = 1701
    config {
        disableAllHeaderCode = 1
        additionalHeaders.10.header = Content-type: application/json
        additionalHeaders.20.header = X-Robots-Tag: noindex, nofollow, noarchive
        xhtml_cleaning = 0
        admPanel = 0
        debug = 0
        no_cache = 1
    }

    10 = USER_INT
    10 {
        userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
        extensionName = EpProducts
        pluginName = ajax
        vendorName = EP
        controller = AjaxSearch
        action = searchresult
        switchableControllerActions {
            AjaxSearch {
                2 = searchresult
                4 = pricetable
            }
            AjaxDate {
                1 = dates
            }
            AjaxSearchbar {
                1 = options
                2 = reset
            }
            AjaxFilterpanel {
                1 = autocomplete
            }
            AjaxTable {
                1 = pricetable
                2 = pricetableHtml
                3 = eventPricetable
            }
            AjaxCalendar {
                1 = range
            }
            AjaxContingent {
                1 = list
                2 = rooms
            }
            AjaxWatchlist {
                1 = list
            }
        }
        features.requireCHashArgumentForActionArguments = 0
        settings =< plugin.tx_epproducts.settings
        persistence =< plugin.tx_epproducts.persistence
        view =< plugin.tx_epproducts.view
    }
}

tx_epproducts_ajax_html < tx_epproducts_ajax_json
tx_epproducts_ajax_html.typeNum = 1702
tx_epproducts_ajax_html.config.additionalHeaders.10.header = Content-type:text/html

lib.bookingWidget = USER
lib.bookingWidget {
    userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
    extensionName = EpProducts
    pluginName = booking
    vendorName = EP
    controller = Product
    action = booking
    switchableControllerActions {
        Product {
            1 = booking
        }
    }
    settings =< plugin.tx_epproducts.settings
    view =< plugin.tx_epproducts.view
}
