<?php
/* For licensing terms, see /license.txt */

namespace Application\Migrations\Schema\V110;

use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Types\Type;

/**
 * Class Version20150505142900
 *
 * @package Application\Migrations\Schema\V110
 */
class Version20150505142900 extends AbstractMigrationChamilo
{
    /**
     * @param Schema $schema
     *
     * @throws \Doctrine\DBAL\Schema\SchemaException
     */
    public function up(Schema $schema)
    {
        // Create table for video chat
        if (!$schema->hasTable('chat_video')) {
            $chatVideoTable = $schema->createTable('chat_video');
            $chatVideoTable->addColumn(
                'id',
                Type::INTEGER,
                ['autoincrement' => true, 'notnull' => true]
            );
            $chatVideoTable->addColumn(
                'from_user',
                Type::INTEGER,
                ['notnull' => true]
            );
            $chatVideoTable->addColumn(
                'to_user',
                Type::INTEGER,
                ['notnull' => true]
            );
            $chatVideoTable->addColumn(
                'room_name',
                Type::STRING,
                ['length' => 255, 'notnull' => true]
            );
            $chatVideoTable->addColumn(
                'datetime',
                Type::DATETIME,
                ['notnull' => true]
            );
            $chatVideoTable->setPrimaryKey(['id']);
            $chatVideoTable->addIndex(
                ['from_user'],
                'idx_chat_video_from_user'
            );
            $chatVideoTable->addIndex(['to_user'], 'idx_chat_video_to_user');
            $chatVideoTable->addIndex(
                ['from_user', 'to_user'],
                'idx_chat_video_users'
            );
            $chatVideoTable->addIndex(
                ['room_name'],
                'idx_chat_video_room_name'
            );
        }
    }

    /**
     * We don't allow downgrades yet
     * @param Schema $schema
     */
    public function down(Schema $schema)
    {
        $schema->dropTable('chat_video');
    }
}