<?php

declare (strict_types=1);
namespace idoit\Module\SyneticsJdisc\Graphql\Schema\UnionResolveType;

use GraphQL\Type\Definition\ResolveInfo;
use Axtiva\FlexibleGraphql\Resolver\UnionResolveTypeInterface;
use idoit\Module\SyneticsJdisc\Graphql\Schema\Model\DatabaseCompactScheduledJobType;
use idoit\Module\SyneticsJdisc\Graphql\Schema\Model\ScheduledDatabaseArchiveJobType;
use idoit\Module\SyneticsJdisc\Graphql\Schema\Model\ScheduledDeviceHistoryJobType;
use idoit\Module\SyneticsJdisc\Graphql\Schema\Model\ScheduledDiscoveryJobType;
use idoit\Module\SyneticsJdisc\Graphql\Schema\Model\ScheduledJobType;
use idoit\Module\SyneticsJdisc\Graphql\Schema\Model\ScheduledReportExportJobType;
use idoit\Module\SyneticsJdisc\Graphql\Schema\Model\ScheduledReportMailJobType;
use idoit\Module\SyneticsJdisc\Graphql\Schema\Model\ScheduledRunTopologyJobType;
use idoit\Module\SyneticsJdisc\Graphql\Schema\Model\ScheduledRunnableJobType;
use idoit\Module\SyneticsJdisc\Graphql\Schema\Model\ScheduledShiUploadJobType;
use idoit\Module\SyneticsJdisc\Graphql\Schema\Model\ReportMailExportJobType;
use idoit\Module\SyneticsJdisc\Graphql\Schema\Model\ReportNetworkExportJobType;

/**
 * This code is @generated by axtiva/flexible-graphql-php
 * and will be regenerated. Do not edit it manually
 */
final class AnyScheduledJobTypeResolver implements UnionResolveTypeInterface
{
    public function __invoke($model, $context, ResolveInfo $info)
    {
        if (isset($model)) {
            switch (get_class($model)) {
                case DatabaseCompactScheduledJobType::class:
                    return $info->schema->getType('DatabaseCompactScheduledJob');
                case ScheduledDatabaseArchiveJobType::class:
                    return $info->schema->getType('ScheduledDatabaseArchiveJob');
                case ScheduledDeviceHistoryJobType::class:
                    return $info->schema->getType('ScheduledDeviceHistoryJob');
                case ScheduledDiscoveryJobType::class:
                    return $info->schema->getType('ScheduledDiscoveryJob');
                case ScheduledJobType::class:
                    return $info->schema->getType('ScheduledJob');
                case ScheduledReportExportJobType::class:
                    return $info->schema->getType('ScheduledReportExportJob');
                case ScheduledReportMailJobType::class:
                    return $info->schema->getType('ScheduledReportMailJob');
                case ScheduledRunTopologyJobType::class:
                    return $info->schema->getType('ScheduledRunTopologyJob');
                case ScheduledRunnableJobType::class:
                    return $info->schema->getType('ScheduledRunnableJob');
                case ScheduledShiUploadJobType::class:
                    return $info->schema->getType('ScheduledShiUploadJob');
                case ReportMailExportJobType::class:
                    return $info->schema->getType('ReportMailExportJob');
                case ReportNetworkExportJobType::class:
                    return $info->schema->getType('ReportNetworkExportJob');
            }
        }
        return null;
    }
}