Your IP : 216.73.217.87


Current Path : /hdd/hdd11/www/codedit/models/
Upload File :
Current File : /hdd/hdd11/www/codedit/models/SupportQuestions.php

<?php

namespace app\models;

use Yii;
use yii\behaviors\TimestampBehavior;

class SupportQuestions extends \yii\db\ActiveRecord {

    public static function tableName() {
        return '{{%support_questions}}';
    }

    public function behaviors() {
        return [
            [
                'class' => TimestampBehavior::className(),
                'createdAtAttribute' => 'date_added',
                'updatedAtAttribute' => NULL,
            ],
        ];
    }

    public function rules() {
        return [
            [['member_id', 'question'], 'required'],
            [['member_id', 'status', 'date_added'], 'integer'],
            [['question'], 'string'],
            [['question'], 'string', 'max' => 1000]
        ];
    }

    public function attributeLabels() {
        return [
            'question_id' => Yii::t('app', 'ID на въпроса'),
            'member_id' => Yii::t('app', 'ID на автора'),
            'question' => Yii::t('app', 'Въпрос'),
            'status' => Yii::t('app', 'Статус'),
            'date_added' => Yii::t('app', 'Дата на добавяне'),
        ];
    }

    public function getQuestions($where = [], $limit = null) {
        $cacheKey = md5('view-questions-where-' . json_encode($where) . '-limit-' . json_encode($limit));
        $questions = Yii::$app->cache->get($cacheKey);
        if ($questions === false) {
            $questions = $this->find()->where($where)->limit($limit);
            Yii::$app->cache->set($cacheKey, $questions, 5 * 60);
        }

        return $questions;
    }

    public function getLatestQuestionsCount() {
        $questionsCount = $this->find()->where('`date_added` > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 10 DAY))')->count();
        return $questionsCount;
    }

    public function addQuestion() {
        $this->member_id = Yii::$app->user->identity->member_id;
        return $this->save();
    }

    public function deleteQuestion($questionInfo) {
        return $questionInfo->delete();
    }

    public function getQuestion($questionID) {
        return $this->findOne($questionID);
    }

    public function getAnswers() {
        return $this->hasMany(SupportAnswers::className(), ['question_id' => 'question_id'])->count();
    }

    public function getAuthor() {
        return $this->hasOne(Members::className(), ['member_id' => 'member_id']);
    }

}