<?php

namespace common\logic\User\UserUserGroup\Module;

use common\logic\AbstractModule;
use common\logic\User\UserUserGroup\Repository\UserUserGroupRepository;
use common\logic\User\UserUserGroup\Service\UserUserGroupBuilder;
use common\logic\User\UserUserGroup\Service\UserUserGroupDefinition;

/**
 * @mixin UserUserGroupDefinition
 * @mixin UserUserGroupRepository
 * @mixin UserUserGroupBuilder
 */
class UserUserGroupModule extends AbstractModule
{
    public function getServices(): array
    {
        return [
            UserUserGroupDefinition::class,
            UserUserGroupRepository::class,
            UserUserGroupBuilder::class
        ];
    }

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

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

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