fitness-web/common/models/VirtualKey.php
2023-03-14 08:43:50 +01:00

92 lines
2.5 KiB
PHP

<?php
namespace common\models;
use common\components\DateUtil;
use common\components\Helper;
use common\helpers\AppDateTimeHelper;
use Yii;
use yii\behaviors\TimestampBehavior;
use yii\helpers\ArrayHelper;
/**
* This is the model class for table "virtual_key".
*
* @property integer $id
* @property integer $id_card
* @property integer $id_key
* @property integer $number
* @property string $direction_in_at
* @property string $direction_out_at
* @property string $created_at
* @property string $updated_at
*/
class VirtualKey extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'virtual_key';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['id_card', 'id_key'], 'integer'],
[[ 'created_at', 'updated_at'], 'required'],
[[ 'direction_in_at', 'created_at', 'updated_at'], 'safe']
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => Yii::t('common/virtualkey', 'ID'),
'id_card' => Yii::t('common/virtualkey', 'Id Card'),
'id_key' => Yii::t('common/virtualkey', 'Id Key'),
'direction_in_at' => Yii::t('common/virtualkey', 'Direction In At'),
'direction_out_at' => Yii::t('common/virtualkey', 'Direction Out At'),
'created_at' => Yii::t('common/virtualkey', 'Created At'),
'updated_at' => Yii::t('common/virtualkey', 'Updated At'),
];
}
public function behaviors()
{
return ArrayHelper::merge([
[
'class' => TimestampBehavior::className(),
'value' => function () {
return DateUtil::formatDateTimeUtc(DateUtil::utcDateTime() );
}
]
],
parent::behaviors());
}
public static function readNotInCreatedInTheLastXMinutesByIdCard($idCard,$minutes){
$date = DateUtil::utcDateTime();
$date = DateUtil::minusMinutes($date,$minutes );
$dateStr = DateUtil::formatDateTimeUtc($date);
$virtualKeysNotInCreatedInTheLastXMinuteForCard = VirtualKey::find()
->andWhere(['id_card' => $idCard])
->andWhere([">=" ,'created_at',$dateStr])
->andWhere(['direction_in_at' => null])
->orderBy(['created_at' => SORT_DESC])
->all();
return $virtualKeysNotInCreatedInTheLastXMinuteForCard;
}
}