<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use App\Repositories\UserRepository;
use App\Repositories\Interfaces\UserInterface;


use App\Repositories\Interfaces\Productinterface;
use App\Repositories\ProductRepository;

use App\Repositories\Interfaces\Projectinterface;
use App\Repositories\ProjectRepository;

use App\Repositories\Interfaces\PaintingCategoryInterface;
use App\Repositories\PaintingCategoryRepository;
use App\Repositories\Interfaces\ArtTagInterface;
use App\Repositories\ArtTagRepository;
use App\Repositories\Interfaces\ArtistInterface;
use App\Repositories\ArtistRepository;

use App\Repositories\Interfaces\ArtInterface;
use App\Repositories\ArtRepository;
use App\Repositories\Interfaces\ArtImageInterface;
use App\Repositories\ArtImageRepository;
use App\Repositories\Interfaces\IllustrationCategoryInterface;
use App\Repositories\IllustrationCategoryRepository;

use App\Repositories\Interfaces\IllustrationInterface;
use App\Repositories\IllustrationRepository;
use App\Repositories\Interfaces\IllustrationImageInterface;
use App\Repositories\IllustrationImageRepository;

class RepositoryServiceProvider extends ServiceProvider
{
    /**
     * Register services.
     *
     * @return void
     */
    public function register()
    {

        $this->app->bind(Projectinterface::class, ProjectRepository::class);
        $this->app->bind(Productinterface::class, ProductRepository::class);

        $this->app->bind(PaintingCategoryInterface::class, PaintingCategoryRepository::class);

        $this->app->bind(ArtTagInterface::class, ArtTagRepository::class);
        $this->app->bind(ArtistInterface::class, ArtistRepository::class);

        $this->app->bind(ArtInterface::class, ArtRepository::class);
        $this->app->bind(ArtImageInterface::class, ArtImageRepository::class);

        $this->app->bind(IllustrationCategoryInterface::class, IllustrationCategoryRepository::class);


        $this->app->bind(IllustrationInterface::class, IllustrationRepository::class);
        $this->app->bind(IllustrationImageInterface::class, IllustrationImageRepository::class);

    }

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