<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Modules\Category\Interfaces\CategoryRepositoryInterface;
use Modules\Category\Repositories\CategoryRepository;
use Modules\Company\Interfaces\CompanyRepositoryInterface;
use Modules\Company\Repositories\CompanyRepository;
use Modules\ContactList\Interfaces\ContactListRepositoryInterface;
use Modules\ContactList\Repositories\ContactListRepository;
use Modules\DailyLog\Interfaces\DailyLogRepositoryInterface;
use Modules\DailyLog\Repositories\DailyLogRepository;
use Modules\Deal\Interfaces\DealRepositoryInterface;
use Modules\Deal\Repositories\DealRepository;
use Modules\DealStatus\Interfaces\DealStatusRepositoryInterface;
use Modules\DealStatus\Repositories\DealStatusRepository;
use Modules\Language\Interfaces\LanguageRepositoryInterface;
use Modules\Language\Repositories\LanguageRepository;
use Modules\Region\Interfaces\RegionRepositoryInterface;
use Modules\Region\Repositories\RegionRepository;
use Modules\Sector\Interfaces\SectorRepositoryInterface;
use Modules\Sector\Repositories\SectorRepository;
use Modules\Setting\Interfaces\SettingRepositoryInterface;
use Modules\Setting\Repositories\SettingRepository;
use Modules\Country\Interfaces\CountryRepositoryInterface;
use Modules\Country\Repositories\CountryRepository;
use Modules\Newsletter\Interfaces\NewsletterRepositoryInterface;
use Modules\Newsletter\Repositories\NewsletterRepository;
use Modules\Page\Interfaces\PageRepositoryInterface;
use Modules\Page\Repositories\PageRepository;
use Modules\Product\Interfaces\ProductRepositoryInterface;
use Modules\Product\Repositories\ProductRepository;
use Modules\Target\Repositories\TargetRepository;
use Modules\Target\Interfaces\TargetRepositoryInterface;
use Modules\User\Interfaces\ModuleRepositoryInterface;
use Modules\User\Interfaces\UserRepositoryInterface;
use Modules\User\Repositories\ModuleRepository;
use Modules\User\Repositories\UserRepository;
use Modules\VisitorMessage\Interfaces\VisitorMessageRepositoryInterface;
use Modules\VisitorMessage\Repositories\VisitorMessageRepository;

class RepositoryServiceProvider extends ServiceProvider
{
    /**
     * Register services.
     *
     * @return void
     */
    public function register()
    {
        $this->app->bind(UserRepositoryInterface::class, UserRepository::class);
        $this->app->bind(LanguageRepositoryInterface::class, LanguageRepository::class);
        $this->app->bind(DealRepositoryInterface::class, DealRepository::class);
        $this->app->bind(CountryRepositoryInterface::class, CountryRepository::class);
        $this->app->bind(ModuleRepositoryInterface::class, ModuleRepository::class);
        $this->app->bind(PageRepositoryInterface::class, PageRepository::class);
        $this->app->bind(CategoryRepositoryInterface::class, CategoryRepository::class);
        $this->app->bind(NewsletterRepositoryInterface::class, NewsletterRepository::class);
        $this->app->bind(ContactListRepositoryInterface::class, ContactListRepository::class);
        $this->app->bind(CompanyRepositoryInterface::class, CompanyRepository::class);
        $this->app->bind(ProductRepositoryInterface::class, ProductRepository::class);
        $this->app->bind(DealStatusRepositoryInterface::class, DealStatusRepository::class);
        $this->app->bind(TargetRepositoryInterface::class, TargetRepository::class);
        $this->app->bind(SectorRepositoryInterface::class, SectorRepository::class);
        $this->app->bind(DailyLogRepositoryInterface::class, DailyLogRepository::class);
        $this->app->bind(RegionRepositoryInterface::class, RegionRepository::class);
        $this->app->bind(SettingRepositoryInterface::class, SettingRepository::class);

    }

    /**
     * Bootstrap services.
     *
     * @return void
     */
    public function boot()
    {
        //
    }
}
