<?php


namespace App\Model\Facades;


use App\Model\Facades\Readers\DkpReader;
use App\Model\Facades\Readers\EventReader;
use App\Model\Facades\Readers\ForumReader;
use App\Model\Facades\Readers\GalleryReader;
use App\Model\Facades\Readers\ImageReader;
use App\Model\Facades\Readers\NavigationReader;
use App\Model\Facades\Readers\NewsReader;
use App\Model\Facades\Readers\SiteReader;
use App\Model\Facades\Readers\TemplateReader;
use App\Model\Facades\Writers\DkpWriter;
use App\Model\Facades\Writers\EventWriter;
use App\Model\Facades\Writers\ForumWriter;
use App\Model\Facades\Writers\GalleryWriter;
use App\Model\Facades\Writers\ImageWriter;
use App\Model\Facades\Writers\NavigationWriter;
use App\Model\Facades\Writers\NewsWriter;
use App\Model\Facades\Writers\SiteWriter;
use App\Model\Facades\Writers\TemplateWriter;

class SiteFacade extends BaseFacade
{
    /** @var SiteReader */
    protected $siteReader;
    /** @var SiteWriter */
    protected $siteWriter;
    /** @var NavigationReader */
    protected $navigationReader;
    /** @var NavigationWriter */
    protected $navigationWriter;
    /** @var TemplateReader */
    protected $templateReader;
    /** @var TemplateWriter */
    protected $templateWriter;
    /** @var NewsReader */
    protected $newsReader;
    /** @var NewsWriter */
    protected $newsWriter;
    /** @var GalleryReader */
    protected $galleryReader;
    /** @var GalleryWriter */
    protected $galleryWriter;
    /** @var ImageReader */
    protected $imageReader;
    /** @var ImageWriter */
    protected $imageWriter;
    /** @var ForumReader */
    protected $forumReader;
    /** @var ForumWriter */
    protected $forumWriter;
    /** @var EventReader */
    protected $eventReader;
    /** @var EventWriter */
    protected $eventWriter;
    /** @var DkpReader */
    protected $dkpReader;
    /** @var DkpWriter */
    protected $dkpWriter;

    public function __construct(SiteReader $siteReader, SiteWriter $siteWriter,
                                NavigationReader $navigationReader, NavigationWriter $navigationWriter,
                                TemplateReader $templateReader, TemplateWriter $templateWriter,
                                NewsReader $newsReader, NewsWriter $newsWriter,
                                GalleryReader $galleryReader, GalleryWriter $galleryWriter,
                                ImageReader $imageReader, ImageWriter $imageWriter,
                                ForumReader $forumReader, ForumWriter $forumWriter,
                                EventReader $eventReader, EventWriter $eventWriter,
                                DkpReader $dkpReader, DkpWriter $dkpWriter)
    {
        $this->siteReader = $siteReader;
        $this->siteWriter = $siteWriter;
        $this->navigationReader = $navigationReader;
        $this->navigationWriter = $navigationWriter;
        $this->templateReader = $templateReader;
        $this->templateWriter = $templateWriter;
        $this->newsReader = $newsReader;
        $this->newsWriter = $newsWriter;
        $this->galleryReader = $galleryReader;
        $this->galleryWriter = $galleryWriter;
        $this->imageReader = $imageReader;
        $this->imageWriter = $imageWriter;
        $this->forumReader = $forumReader;
        $this->forumWriter = $forumWriter;
        $this->eventReader = $eventReader;
        $this->eventWriter = $eventWriter;
        $this->dkpReader = $dkpReader;
        $this->dkpWriter = $dkpWriter;
    }

    /**
     * @return SiteReader
     */
    public function getSiteReader() : SiteReader
    {
        return $this->siteReader;
    }

    /**
     * @return SiteWriter
     */
    public function getSiteWriter() : SiteWriter
    {
        return $this->siteWriter;
    }

    /**
     * @return NavigationReader
     */
    public function getNavigationReader() : NavigationReader
    {
        return $this->navigationReader;
    }

    /**
     * @return NavigationWriter
     */
    public function getNavigationWriter() : NavigationWriter
    {
        return $this->navigationWriter;
    }

    /**
     * @return TemplateReader
     */
    public function getTemplateReader() : TemplateReader
    {
        return $this->templateReader;
    }

    /**
     * @return TemplateWriter
     */
    public function getTemplateWriter() : TemplateWriter
    {
        return $this->templateWriter;
    }

    /**
     * @return NewsReader
     */
    public function getNewsReader() : NewsReader
    {
        return $this->newsReader;
    }

    /**
     * @return NewsWriter
     */
    public function getNewsWriter() : NewsWriter
    {
        return $this->newsWriter;
    }

    /**
     * @return GalleryReader
     */
    public function getGalleryReader() : GalleryReader
    {
        return $this->galleryReader;
    }

    /**
     * @return GalleryWriter
     */
    public function getGalleryWriter() : GalleryWriter
    {
        return $this->galleryWriter;
    }

    /**
     * @return ImageReader
     */
    public function getImageReader() : ImageReader
    {
        return $this->imageReader;
    }

    /**
     * @return ImageWriter
     */
    public function getImageWriter() : ImageWriter
    {
        return $this->imageWriter;
    }

    /**
     * @return ForumReader
     */
    public function getForumReader() : ForumReader
    {
        return $this->forumReader;
    }

    /**
     * @return ForumWriter
     */
    public function getForumWriter() : ForumWriter
    {
        return $this->forumWriter;
    }

    /**
     * @return EventReader
     */
    public function getEventReader() : EventReader
    {
        return $this->eventReader;
    }

    /**
     * @return EventWriter
     */
    public function getEventWriter() : EventWriter
    {
        return $this->eventWriter;
    }

    /**
     * @return DkpReader
     */
    public function getDkpReader() : DkpReader
    {
        return $this->dkpReader;
    }

    /**
     * @return DkpWriter
     */
    public function getDkpWriter() : DkpWriter
    {
        return $this->dkpWriter;
    }
}