<?php

declare(strict_types=1);

namespace Xentral\Modules\ShopimporterAmazon;

use Xentral\Core\DependencyInjection\ContainerInterface;
use Xentral\Modules\ShopimporterAmazon\Service\AmazonDocumentService;
use Xentral\Modules\ShopimporterAmazon\Service\InvoiceUploadDocumentService;
use Xentral\Modules\ShopimporterAmazon\Service\InvoiceUploadQueueService;

final class Bootstrap
{
    /**
     * @return array
     */
    public static function registerServices(): array
    {
        return [
            AmazonDocumentService::class        => 'onInitAmazonDocumentService',
            InvoiceUploadDocumentService::class => 'onInitInvoiceUploadDocumentService',
            InvoiceUploadQueueService::class    => 'onInitInvoiceUploadQueueService',
        ];
    }

    /**
     * @param ContainerInterface $container
     *
     * @return AmazonDocumentService
     */
    public static function onInitAmazonDocumentService(ContainerInterface $container): AmazonDocumentService
    {
        return new AmazonDocumentService($container->get('Database'));
    }

    /**
     * @param ContainerInterface $container
     *
     * @return InvoiceUploadDocumentService
     */
    public static function onInitInvoiceUploadDocumentService(ContainerInterface $container
    ): InvoiceUploadDocumentService {
        return new InvoiceUploadDocumentService($container->get('Database'));
    }

    /**
     * @param ContainerInterface $container
     *
     * @return InvoiceUploadQueueService
     */
    public static function onInitInvoiceUploadQueueService(ContainerInterface $container): InvoiceUploadQueueService
    {
        return new InvoiceUploadQueueService($container->get('Database'));
    }
}