<?php

namespace App\Packages\User\Repository;

use App\Packages\Core\Repository\AbstractRepository;
use App\Packages\User\Models\UserEmailToken;

/**
 * Class UserEmailHashRepository
 * @package App\Packages\User\Repository
 *
 * @property UserEmailToken $model
 */
class UserEmailTokenRepository extends AbstractRepository
{
    public static function init()
    {
        return new UserEmailTokenRepository(UserEmailToken::class);
    }

    /**
     * @param string $token
     * @return UserEmailToken|object|null
     */
    public function findByToken($token)
    {
        return $this->query()
            ->where('token', $token)
            ->first();
    }

    /**
     * @param string $email
     * @return UserEmailToken|object|null
     */
    public function findByEmail($email)
    {
        return $this->query()
            ->where('email', $email)
            ->first();
    }

    /**
     * @param string $email
     * @param string $token
     * @return UserEmailToken|object|null
     */
    public function findByEmailAndToken($email, $token)
    {
        return $this->query()
            ->where('email', $email)
            ->where('token', $token)
            ->first();
    }

}
