<?php declare(strict_types = 1);

namespace App\Model\Database;

use App\Model\Database\Entity\User;
use App\Model\Database\Entity\Translation;
use App\Model\Database\Entity\Term;
use App\Model\Database\Entity\TermFlag;
use App\Model\Database\Entity\Pronunciation;
use App\Model\Database\Entity\DictType;
use App\Model\Database\Entity\Dictionary;
use App\Model\Database\Repository\UserRepository;
use App\Model\Database\Repository\TranslationRepository;
use App\Model\Database\Repository\TermRepository;
use App\Model\Database\Repository\TermFlagRepository;
use App\Model\Database\Repository\PronunciationRepository;
use App\Model\Database\Repository\DictTypeRepository;
use App\Model\Database\Repository\DictionaryRepository;

/**
 * @mixin EntityManager
 */
trait TRepositories
{

	public function getUserRepository(): UserRepository
	{
		return $this->getRepository(User::class);
	}

	public function getTranslationRepository(): TranslationRepository
	{
		return $this->getRepository(Translation::class);
	}

	public function getTermRepository(): TermRepository
	{
		return $this->getRepository(Term::class);
	}

	public function getTermFlagRepository(): TermFlagRepository
	{
		return $this->getRepository(TermFlag::class);
	}

	public function getPronunciationRepository(): PronunciationRepository
	{
		return $this->getRepository(Pronunciation::class);
	}

	public function getDictTypeRepository(): DictTypeRepository
	{
		return $this->getRepository(DictType::class);
	}

	public function getDictionaryRepository(): DictionaryRepository
	{
		return $this->getRepository(Dictionary::class);
	}

}
