<?php

declare(strict_types=1);

namespace D3\ManufacturerInformation\Migrations;

use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Types\TextType;
use Doctrine\Migrations\AbstractMigration;

/**
 * Auto-generated Migration: Please modify to your needs!
 */
final class Version20241023154223 extends AbstractMigration
{
    public function getDescription() : string
    {
        return 'Adds the D3 manufacturer longdesc column';
    }
	
	public function up(Schema $schema) : void
	{
		$this->connection->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string');
		
		$this->d3AddLongdescColumnToOxmanufacturers($schema);
	}

    public function down(Schema $schema) : void
    {}
	
	/**
	 * @param Schema $schema
	 * @return void
	 * @throws \Doctrine\DBAL\Schema\SchemaException
	 */
	public function d3AddLongdescColumnToOxmanufacturers(Schema $schema){
		$table = !$schema->hasTable('oxmanufacturers') ?
			$schema->createTable('oxmanufacturers') :
			$schema->getTable('oxmanufacturers');
		
		// Beschreibung
		if (!$table->hasColumn('D3DESCRIPTION')) {
			$table->addColumn('D3DESCRIPTION', (new TextType())->getName())
				->setLength($this->connection->getDatabasePlatform()::LENGTH_LIMIT_TEXT)
				->setNotnull(true);
		}
	}
}