<?php
/*---------------------------------------------------------------------------
 * @Project: Alto CMS
 * @Project URI: http://altocms.com
 * @Description: Advanced Community Engine
 * @Copyright: Alto CMS Team
 * @License: GNU GPL v2 & MIT
 *----------------------------------------------------------------------------
 * Based on
 *   LiveStreet Engine Social Networking by Mzhelskiy Maxim
 *   Site: www.livestreet.ru
 *   E-mail: rus.engine@gmail.com
 *----------------------------------------------------------------------------
 */

/**
 * Сущность восстановления пароля
 *
 * @package modules.user
 * @since   1.0
 */
class ModuleUser_EntityReminder extends Entity {
    /**
     * Возвращает код восстановления
     *
     * @return string|null
     */
    public function getCode() {

        return $this->getProp('reminder_code');
    }

    /**
     * Возвращает ID пользователя
     *
     * @return int|null
     */
    public function getUserId() {

        return $this->getProp('user_id');
    }

    /**
     * Возвращает дату создания
     *
     * @return string|null
     */
    public function getDateAdd() {

        return $this->getProp('reminder_date_add');
    }

    /**
     * Возвращает дату использования
     *
     * @return string|null
     */
    public function getDateUsed() {

        return $this->getProp('reminder_date_used');
    }

    /**
     * Возвращает дату завершения срока действия кода
     *
     * @return string|null
     */
    public function getDateExpire() {

        return $this->getProp('reminder_date_expire');
    }

    /**
     * Возвращает статус использованости кода
     *
     * @return int|null
     */
    public function getIsUsed() {

        return $this->getProp('reminde_is_used');
    }

    /**
     * Устанавливает код восстановления
     *
     * @param string $data
     */
    public function setCode($data) {

        $this->setProp('reminder_code', $data);
    }

    /**
     * Устанавливает ID пользователя
     *
     * @param int $data
     */
    public function setUserId($data) {

        $this->setProp('user_id', $data);
    }

    /**
     * Устанавливает дату создания
     *
     * @param string $data
     */
    public function setDateAdd($data) {

        $this->setProp('reminder_date_add', $data);
    }

    /**
     * Устанавливает дату использования
     *
     * @param string $data
     */
    public function setDateUsed($data) {

        $this->setProp('reminder_date_used', $data);
    }

    /**
     * Устанавливает дату завершения срока действия кода
     *
     * @param string $data
     */
    public function setDateExpire($data) {

        $this->setProp('reminder_date_expire', $data);
    }

    /**
     * Устанавливает статус использованости кода
     *
     * @param int $data
     */
    public function setIsUsed($data) {

        $this->setProp('reminde_is_used', $data);
    }

    public function IsValid() {

        return !$this->getIsUsed() && strtotime($this->getDateExpire()) > time();
    }

}

// EOF