<?php
namespace api\models\base;

use api\validators\EmailActivationKeyValidator;
use common\models\EmailActivation;

class KeyConfirmationForm extends ApiForm {

    public $key;

    private $model;

    public function rules() {
        return [
            // TODO: нужно провалидировать количество попыток ввода кода для определённого IP адреса и в случае чего запросить капчу
            ['key', 'required', 'message' => 'error.key_is_required'],
            ['key', EmailActivationKeyValidator::class],
        ];
    }

    /**
     * @return EmailActivation|null
     */
    public function getActivationCodeModel() {
        if ($this->model === null) {
            $this->model = EmailActivation::findOne($this->key);
        }

        return $this->model;
    }

}