<?php

declare(strict_types=1);

namespace App\Tests\Module\Commercial\Api;

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

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

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

        self::assertResponseStatusCodeSame(409);
    }
}
