<?php

namespace common\logic\Product\ProductPointSale\Module;

use common\logic\AbstractModule;
use common\logic\DefinitionInterface;
use common\logic\Product\ProductPointSale\Repository\ProductPointSaleRepository;
use common\logic\Product\ProductPointSale\Service\ProductPointSaleBuilder;
use common\logic\Product\ProductPointSale\Service\ProductPointSaleDefinition;

/**
 * @mixin ProductPointSaleDefinition
 * @mixin ProductPointSaleRepository
 * @mixin ProductPointSaleBuilder
 */
class ProductPointSaleModule extends AbstractModule
{
    public function getServices(): array
    {
        return [
            ProductPointSaleDefinition::class,
            ProductPointSaleRepository::class,
            ProductPointSaleBuilder::class,
        ];
    }

    public function getDefinition(): DefinitionInterface
    {
        return ProductPointSaleDefinition::getInstance();
    }

    public function getRepository(): ProductPointSaleRepository
    {
        return ProductPointSaleRepository::getInstance();
    }

    public function getBuilder(): ProductPointSaleBuilder
    {
        return ProductPointSaleBuilder::getInstance();
    }
}