<?php namespace common\models; use Yii; use yii\behaviors\TimestampBehavior; use yii\db\ActiveQuery; use yii\db\ActiveRecord; /** * Fields: * @property integer $id * @property integer $account_id * @property string $refresh_token * @property integer $last_used_ip * @property integer $created_at * @property integer $last_refreshed_at * * Relations: * @property Account $account * * Behaviors: * @mixin TimestampBehavior */ class AccountSession extends ActiveRecord { public static function tableName(): string { return '{{%accounts_sessions}}'; } public function behaviors(): array { return [ [ 'class' => TimestampBehavior::class, 'updatedAtAttribute' => 'last_refreshed_at', ], ]; } public function getAccount(): ActiveQuery { return $this->hasOne(Account::class, ['id' => 'account_id']); } public function generateRefreshToken(): void { $this->refresh_token = Yii::$app->security->generateRandomString(96); } public function setIp($ip): void { $this->last_used_ip = ip2long($ip); } public function getReadableIp(): string { return long2ip($this->last_used_ip); } }