<?php

namespace common\logic\User\User\Wrapper;

use common\logic\AbstractContainer;
use common\logic\User\User\Model\User;
use common\logic\User\User\Repository\UserRepository;
use common\logic\User\User\Service\UserBuilder;
use common\logic\User\User\Service\UserSolver;
use common\logic\User\User\Service\UserUtils;

class UserContainer extends AbstractContainer
{
    public function getEntityFqcn(): string
    {
        return User::class;
    }

    public function getServices(): array
    {
        return [
            UserSolver::class,
            UserRepository::class,
            UserBuilder::class,
            UserUtils::class,
        ];
    }

    public function getSolver(): UserSolver
    {
        return UserSolver::getInstance();
    }

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

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

    public function getUtils(): UserUtils
    {
        return UserUtils::getInstance();
    }
}