<?php

namespace common\logic\PointSale\UserPointSale\Module;

use common\logic\AbstractModule;
use common\logic\PointSale\UserPointSale\Repository\UserPointSaleRepository;
use common\logic\PointSale\UserPointSale\Service\UserPointSaleBuilder;
use common\logic\PointSale\UserPointSale\Service\UserPointSaleDefinition;

/**
 * @mixin UserPointSaleDefinition
 * @mixin UserPointSaleRepository
 * @mixin UserPointSaleBuilder
 */
class UserPointSaleModule extends AbstractModule
{
    public function getServices(): array
    {
        return [
            UserPointSaleDefinition::class,
            UserPointSaleRepository::class,
            UserPointSaleBuilder::class,
        ];
    }

    public function getDefinition(): UserPointSaleDefinition
    {
        return UserPointSaleDefinition::getInstance();
    }

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

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