/
v.bolshakov
/
AIEcosystem-Testing
Обзор
Документация
Войти
/
v.bolshakov
/
AIEcosystem-Testing
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
common/models/File.php
129 строк
3 KB
Developer
Initial commit
03 авг 2026, 17:43
03 авг 2026, 17:43
7433917
Код
Авторство
О чём код?
<?php namespace common\models; use common\interfaces\TitleInterface; use common\traits\TitleRecordTrait; use Yii; use yii\db\ActiveQuery; use yii\helpers\ArrayHelper; /** * Таблица - файлы * * @property int $project_id Проект * @property string $key ИД * @property string $fname Имя файла в системе * @property int $fsize Размер файла * @property string $ftype Mimetype файла * @property string $purpose Purpose * * @author Dmitry E. Semenov <sde.tomsk@gmail.com> * @copyright Self (c) 2025 */ class File extends \common\models\base\BaseModel implements TitleInterface { use TitleRecordTrait; /** * {@inheritdoc} */ public static function tableName() { return 'file'; } /** * {@inheritdoc} */ public function rules() { return ArrayHelper::merge(parent::rules(), [ [ [ 'fname', 'fsize', 'ftype', 'project_id' ], 'required' ], [ [ 'key', 'fname', 'ftype', 'purpose' ], 'string' ], [ [ 'fsize', 'project_id' ], 'number' ], [['key'], 'unique'] ]); } /** * {@inheritdoc} */ public function attributeLabels() { return ArrayHelper::merge(parent::attributeLabels(), [ 'project_id' => Yii::t('app', 'Project'), 'key' => Yii::t('app', 'Key'), 'original' => Yii::t('app', 'Original name'), 'fname' => Yii::t('app', 'filename'), 'ftype' => Yii::t('app', 'mimetype'), 'fsize' => Yii::t('app', 'filesize'), 'purpose' => Yii::t('app', 'Purpose'), ]); } /** * @inheritdoc */ public static function getTitleFields() { return ['fname']; } /** * @return ActiveQuery */ public function getProject() { return $this->hasOne(Project::class, ['id' => 'project_id']); } /** * {@inheritdoc} */ public function fields() { return [ 'key', 'fname', 'ftype', 'fsize', 'purpose', 'status' => function () { return $this->rec_status == 1 ? 'active' : 'archived'; } ]; } /** * @inheritdoc */ public function getParentModel() { return [ 'project_id' => 'project' ]; } }