Room.php 3.59 KB
<?php

namespace common\models;

use Yii;

/**
 * This is the model class for table "{{%room}}".
 *
 * @property string $id
 * @property string $room_id
 * @property string $title
 * @property string $master_id
 * @property string $pic
 * @property integer $starting_time
 * @property string $starting_pic
 * @property string $secret
 * @property string $best
 * @property string $vest
 * @property integer $status
 * @property integer $create_time
 * @property integer $update_time
 */
class Room extends \yii\db\ActiveRecord
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return '{{%room}}';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['room_id', 'master_id', 'starting_time', 'best', 'vest', 'living', 'status', 'unstart_sort', 'living_sort', 'create_time', 'update_time'], 'integer'],
            [['title', 'watermark'], 'string', 'max' => 100],
            [['app', 'secret'], 'string', 'max' => 50],
            [['pic', 'background_pic'], 'string', 'max' => 255],
            [['room_id'], 'unique'],
            [['secret'], 'unique'],
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'room_id' => 'Room ID',
            'title' => 'Title',
            'watermark' => 'Watermark',
            'master_id' => 'Master ID',
            'app' => 'App',
            'secret' => 'Secret',
            'pic' => 'Pic',
            'background_pic' => 'Background Pic',
            'starting_time' => 'Starting Time',
            'best' => 'Best',
            'vest' => 'Vest',
            'living' => 'Living',
            'status' => 'Status',
            'create_time' => 'Create Time',
            'update_time' => 'Update Time',
        ];
    }
    
    public function behaviors() {
        return [
            [
                'class' => \yii\behaviors\TimestampBehavior::className(),
                'createdAtAttribute' => 'create_time',
                'updatedAtAttribute' => 'update_time',
            ]
        ];
    }
    
    /**
     * 关联表-主播
     * @return type
     */
    public function getMaster()
    {
        return $this->hasOne(Master::className(), ['master_id'=>'master_id']);
    }

    /**
     * 关联表-计数
     * @return type
     */
    public function getRoomNums()
    {
        return $this->hasOne(RoomNums::className(), ['room_id'=>'room_id']);
    }

    /**
     * 关联表-视频
     * @return type
     */
    public function getVideo()
    {
        return $this->hasMany(Video::className(), ['room_id'=>'room_id']);
    }
    
    /**
     * 关联表-正在录制的视频
     * @return type
     */
    public function getVideoRecording()
    {
        return $this->hasOne(Video::className(), ['room_id'=>'room_id'])->where(['and',['>','live_start_time',0],['live_end_time'=>0]])->orderBy(['live_start_time'=>SORT_DESC]);
    }
    
    /**
     * 关联表-最后录制的视频
     * @return type
     */
    public function getVideoLast()
    {
        return $this->hasOne(Video::className(), ['room_id'=>'room_id'])->where(['>','live_end_time',0])->orderBy(['create_time'=>SORT_DESC]);
    }
    
    /**
     * 关联表-腾讯云频道
     * @return type
     */
    public function getRoomQchannel()
    {
        return $this->hasOne(RoomQchannel::className(), ['room_id'=>'room_id']);
    }

    /**
     * 关联表-房间附属信息
     * @return type
     */
    public function getRoomInfo()
    {
        return $this->hasOne(RoomInfo::className(), ['room_id'=>'room_id']);
    }
}