<?php

namespace common\logic\User\UserGroup\Module;

use common\logic\AbstractModule;
use common\logic\User\UserGroup\Repository\UserGroupRepository;
use common\logic\User\UserGroup\Service\UserGroupBuilder;
use common\logic\User\UserGroup\Service\UserGroupDefinition;

/**
 * @mixin UserGroupDefinition
 * @mixin UserGroupRepository
 * @mixin UserGroupBuilder
 */
class UserGroupModule extends AbstractModule
{
    public function getServices(): array
    {
        return [
            UserGroupDefinition::class,
            UserGroupBuilder::class,
            UserGroupRepository::class
        ];
    }

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

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

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