<?php namespace app\models; use Yii; use yii\behaviors\TimestampBehavior; use yii\db\Expression; /** * This is the model class for table "{{%host}}". * * @property int $id * @property string $domain Домен * @property string|null $created_at Дата записи * @property string|null $csv_date Дата CSV * @property string|null $wis_date Дата проверки домена * @property int|null $wis_status Статус Who Is * @property int $status Статус * @property int $tix Показатель */ class Host extends \yii\db\ActiveRecord { const STATUS_WIS_NONE = 0; //неизвестный const STATUS_WIS_FREE = 1; //Свободный const STATUS_WIS_BUSY = 2; //Занятый const STATUS_TIX_UNCHECK = 0; //не проверен const STATUS_TIX_CHECK = 1; //Проверен const STATUS_OFF = 0; //выключен const STATUS_ON = 1; //Включен public $cnt; /** * {@inheritdoc} */ public static function tableName() { return '{{%host}}'; } public function behaviors() { return [ [ 'class' => TimestampBehavior::className(), 'createdAtAttribute' => 'created_at', 'updatedAtAttribute' => null, 'value' => new Expression('NOW()'), ], ]; } /** * {@inheritdoc} */ public function rules() { return [ [['domain'], 'required'], ['wis_status', 'in', 'range' => array_keys(self::getWisStatus())], ['f1_status', 'in', 'range' => array_keys(self::getFStatus())], ['f2_status', 'in', 'range' => array_keys(self::getFStatus())], ['f3_status', 'in', 'range' => array_keys(self::getFStatus())], [['created_at', 'csv_date', 'wis_date','domain_expire', 'tix_date'], 'safe'], [['wis_status', 'tix', 'status', 'tix_status', 'f1_status', 'f2_status', 'f3_status'], 'integer'], [['domain'], 'string', 'max' => 256], [['domain'], 'unique'], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'domain' => 'Domain', 'created_at' => 'Date', 'csv_date' => 'Date CSV', 'wis_date' => 'Date WHOIS', 'wis_status' => 'Can registration', 'domain_expire' => 'Date expired', 'tix' => 'TIX', 'tix_status' => 'TIX status', 'tix_date' => 'Date TIX', 'f1_status' => 'Filter №1', 'f2_status' => 'Filter №2', 'f3_status' => 'Filter №3', 'status' => 'Status' ]; } /** * {@inheritdoc} * @return HostQuery the active query used by this AR class. */ public static function find() { return new HostQuery(get_called_class()); } public static function getFStatus($status = false) { $arr = [ self::STATUS_OFF => 'Yes', self::STATUS_ON => 'No' ]; if (is_numeric($status)) { if (array_key_exists($status, $arr)) { return $arr[$status]; } return $status; } return $arr; } public static function getStatus($status = false) { $arr = [ self::STATUS_OFF => 'Disable', self::STATUS_ON => 'Enable' ]; if (is_numeric($status)) { if (array_key_exists($status, $arr)) { return $arr[$status]; } return $status; } return $arr; } public static function getWisStatus($status = false) { $arr = [ self::STATUS_WIS_NONE => 'No checked', self::STATUS_WIS_FREE => 'FREE', self::STATUS_WIS_BUSY => 'BUSY', ]; if (is_numeric($status)) { if (array_key_exists($status, $arr)) { return $arr[$status]; } return $status; } return $arr; } public static function getTIXStatus($status = false) { $arr = [ self::STATUS_TIX_UNCHECK => 'No checked', self::STATUS_TIX_CHECK => 'Checked', ]; if (is_numeric($status)) { if (array_key_exists($status, $arr)) { return $arr[$status]; } return $status; } return $arr; } }