<?php

declare(strict_types=1);

namespace App\Tests\Module\Transport\Api;

/**
 * Archivage / restauration transporteur — trou 409 de restauration en conflit
 * d'unicite (M4, RG-4.14). Le nominal (archive pose archivedAt) et le 422
 * « archive + autre champ » sont couverts par CarrierWriteApiTest. Jumeau de
 * SupplierArchiveTest (M2).
 *
 * @internal
 */
final class CarrierArchiveTest extends AbstractCarrierApiTestCase
{
    /**
     * RG-4.14 : restaurer un transporteur archive dont le nom a ete repris par un
     * transporteur actif entre-temps doit echouer en 409 (index partiel
     * uq_carrier_name_active : un seul actif portant ce nom).
     */
    public function testRestoreConflictReturns409(): void
    {
        $client = $this->createAdminClient();

        $archived = $this->seedCarrier('Acme Conflict', true);
        $this->seedCarrier('Acme Conflict', false);

        $client->request('PATCH', '/api/carriers/'.$archived->getId(), [
            'headers' => ['Content-Type' => self::MERGE],
            'json'    => ['isArchived' => false],
        ]);

        self::assertResponseStatusCodeSame(409);
    }
}
