<?php

namespace {{ namespace }};
use Youshido\GraphQL\Config\Schema\SchemaConfig;
use Datatourisme\Api\Schema\PrefixMap;

use Youshido\GraphQL\Execution\ResolveInfo;
use Youshido\GraphQL\Type\Scalar\StringType;
use Datatourisme\Api\Schema\Type\Scalar\IntType;
use Datatourisme\Api\Schema\Type\Scalar\FloatType;
use Datatourisme\Api\Schema\Field\Scalar\BooleanType;
use Datatourisme\Api\Schema\Field\AbstractField;
use Youshido\GraphQL\Type\ListType\ListType;
use Youshido\GraphQL\Field\Field;
use Youshido\GraphQL\Type\Object\AbstractObjectType;
use Youshido\GraphQL\Type\InputObject\AbstractInputObjectType;

use Datatourisme\Api\Schema\Field\Geo\GeoDistanceField;
use Datatourisme\Api\Schema\Field\Geo\GeoBoundingField;
use Datatourisme\Api\Schema\Type\InputObject\FilterType;
use Datatourisme\Api\Schema\Type\InputObject\SortType;

use Datatourisme\Api\Schema\Field\Common\Field_RdfType;
use Datatourisme\Api\Schema\Field\Common\FilterField_RdfType;

class Schema extends \Datatourisme\Api\Schema\AbstractSchema
{
    public function getNamespace()
    {
        return '{{ namespace }}';
    }

    public function getPrefixMap()
    {
        return new PrefixMap([{% for prefix, uri in prefixes %}
            "{{ prefix }}" => "{{ uri }}",
        {% endfor -%}]);
    }

    public function getName($config)
    {
        return '{{ name }}';
    }
}

