<?php namespace GermanAirlinesVa\Graphql\Classes;

use Nuwave\Lighthouse\Schema\Source\SchemaSourceProvider;
use Nuwave\Lighthouse\Support\Contracts\CreatesContext;
use Nuwave\Lighthouse\Support\Contracts\ProvidesResolver;
use GermanAirlinesVa\Graphql\Classes\ResolverProvider as GraphqlProvidesResolver;
use GermanAirlinesVa\Graphql\Classes\SchemaSourceProvider as GraphqlSchemaSourceProvider;
use GermanAirlinesVa\Graphql\Classes\CreatesContext as GraphqlCreatesContext;

use October\Rain\Support\ServiceProvider;

class GraphqlServiceProvider extends ServiceProvider
{
  public function register()
  {
    $this->app->bind(ProvidesResolver::class, GraphqlProvidesResolver::class);
    $this->app->singleton(CreatesContext::class, GraphqlCreatesContext::class);
    $this->app->singleton(SchemaSourceProvider::class, GraphqlSchemaSourceProvider::class);
  }
}
