<?php

declare(strict_types=1);

namespace DoctrineMigrations;

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

/**
 * ERP-172 — nettoyage des reliquats du multi-adresses sur carrier_address, suite a
 * la bascule en adresse UNIQUE (Version20260617140000). La colonne `position`
 * servait a ordonner une LISTE d'adresses ; avec une seule adresse par transporteur
 * (OneToOne) elle n'a plus de sens -> on la supprime. On reactualise aussi le
 * COMMENT ON TABLE qui annoncait encore une relation 1:n.
 *
 * Placee au namespace racine DoctrineMigrations (et non en modulaire Transport) :
 * elle ALTERE une table creee par une migration racine (Version20260615150000) ;
 * le tri par version au sein du meme namespace garantit qu'elle joue APRES l'init
 * et apres la bascule OneToOne (cf. CLAUDE.md regle 11).
 */
final class Version20260617160000 extends AbstractMigration
{
    public function getDescription(): string
    {
        return 'ERP-172 : retire la colonne carrier_address.position (relique multi-adresses) + COMMENT ON TABLE 1:1.';
    }

    public function up(Schema $schema): void
    {
        $this->addSql('ALTER TABLE carrier_address DROP COLUMN position');
        $this->addSql("COMMENT ON TABLE carrier_address IS 'Adresse d un transporteur (1:1, OneToOne — ERP-172 : adresse UNIQUE) — onglet Adresse (M4). Pre-remplie depuis QUALIMAT si applicable (RG-4.05).'");
    }

    public function down(Schema $schema): void
    {
        $this->addSql('ALTER TABLE carrier_address ADD COLUMN position INT DEFAULT 0 NOT NULL');
        $this->addSql("COMMENT ON COLUMN carrier_address.position IS 'Ordre d affichage de l adresse dans la liste du transporteur (croissant).'");
        $this->addSql("COMMENT ON TABLE carrier_address IS 'Adresses d un transporteur (1:n) — onglet Adresse (M4). Pre-remplie depuis QUALIMAT si applicable (RG-4.05).'");
    }
}
