<?php

namespace App\Providers;

use App\Services\Interfaces\BannerRepositoryInterface;
use App\Services\Interfaces\CartRepositoryInterface;
use App\Services\Interfaces\CategoryRepositoryInterface;
use App\Services\Interfaces\CobonRepositoryInterface;
use App\Services\Interfaces\GroupRepositoryInterface;
use App\Services\Interfaces\MemberRepositoryInterface;
use App\Services\Interfaces\OrderRepositoryInterface;
use App\Services\Interfaces\PageRepositoryInterface;
use App\Services\Interfaces\ProductRepositoryInterface;
use App\Services\Interfaces\ReservationRepositoryInterface;
use App\Services\Interfaces\RoomRepositoryInterface;
use App\Services\Interfaces\SliderRepositoryInterface;
use App\Services\Interfaces\TableNumberRepositoryInterface;
use App\Services\Interfaces\VisitorMessageRepositoryInterface;
use App\Services\Interfaces\WorkDayRepositoryInterface;
use App\Services\Repositories\BannerRepository;
use App\Services\Repositories\CartRepository;
use App\Services\Repositories\CategoryRepository;
use App\Services\Repositories\CobonRepository;
use App\Services\Repositories\GroupRepository;
use App\Services\Repositories\MemberRepository;
use App\Services\Repositories\UserRepository;
use App\Services\Repositories\OrderRepository;
use App\Services\Repositories\PageRepository;
use App\Services\Repositories\ProductRepository;
use App\Services\Repositories\ReservationRepository;
use App\Services\Repositories\RoomRepository;
use App\Services\Repositories\SliderRepository;
use App\Services\Repositories\TableNumberRepository;
use App\Services\Repositories\VisitorMessageRepository;
use App\Services\Repositories\WorkDayRepository;
use Illuminate\Support\ServiceProvider;

class RepositoryServiceProvider extends ServiceProvider
{
    /**
     * Register services.
     *
     * @return void
     */
    public function register()
    {
        $this->app->bind(MemberRepositoryInterface::class, UserRepository::class);
        $this->app->bind(MemberRepositoryInterface::class, MemberRepository::class);
        $this->app->bind(BannerRepositoryInterface::class, BannerRepository::class);
        $this->app->bind(SliderRepositoryInterface::class, SliderRepository::class);
        $this->app->bind(TableNumberRepositoryInterface::class, TableNumberRepository::class);
        $this->app->bind(CobonRepositoryInterface::class, CobonRepository::class);
        $this->app->bind(RoomRepositoryInterface::class, RoomRepository::class);
        $this->app->bind(CategoryRepositoryInterface::class, CategoryRepository::class);
        $this->app->bind(GroupRepositoryInterface::class, GroupRepository::class);
        $this->app->bind(ReservationRepositoryInterface::class, ReservationRepository::class);
        $this->app->bind(OrderRepositoryInterface::class, OrderRepository::class);
        $this->app->bind(ProductRepositoryInterface::class, ProductRepository::class);
        $this->app->bind(PageRepositoryInterface::class, PageRepository::class);
        $this->app->bind(VisitorMessageRepositoryInterface::class, VisitorMessageRepository::class);
        $this->app->bind(CartRepositoryInterface::class, CartRepository::class);
        $this->app->bind(WorkDayRepositoryInterface::class, WorkDayRepository::class);
    }

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