d9313dbec8
Schéma BDD du répertoire transporteurs (M4) + entités + contrat de lecture (liste + détail), socle du front. - Migration Version20260615150000 : tables carrier / carrier_address / carrier_contact / carrier_price (FK cross-module, CHECK enum, index partiel uq_carrier_name_active, COMMENT ON COLUMN). uploaded_document et qualimat_carrier réutilisées (non recréées). - Entités Carrier* (#[Auditable], Timestampable/Blamable) + ApiResource LECTURE seule (GetCollection + Get via CarrierProvider, anti-N+1, exclusion archivés + ?includeArchived). Écriture (POST/PATCH + Processor) reportée WT4+. - QualimatCarrier : mapping ORM lecture seule sur la table référentielle existante (sortie du schema_filter, mapping aligné DDL ERP-39, schema:update no-op) + endpoint de recherche read-only (§ 4.7). - Relations cross-module des prix (Client/Supplier/adresses) via contrats Shared (ClientInterface, SupplierInterface, ClientAddressInterface, SupplierAddressInterface) + resolve_target_entities — sans import inter-module (règle n°1). Ajout du groupe supplier_address:read aux champs de SupplierAddress pour l'embed. - Garde-fous : ColumnCommentsCatalog (carrier* + qualimat_carrier), makefile test-db-setup (index partiel carrier), i18n audit (transport_carrier*), EntitiesAreTimestampableBlamableTest (QualimatCarrier whitelisté). - CarrierSerializationContractTest : contrat JSON liste + détail vérifié (embeds objet, booléens, enveloppe Hydra) ; JSON réel capturé dans spec-back § 4.0.bis. make db-reset OK, make test vert (731), make nuxt-test vert (480), php-cs-fixer OK.
52 lines
1.7 KiB
PHP
52 lines
1.7 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Module\Transport\Infrastructure\DataFixtures;
|
|
|
|
use App\Module\Transport\Domain\Entity\Carrier;
|
|
use App\Module\Transport\Domain\Entity\CarrierContact;
|
|
use Doctrine\Bundle\FixturesBundle\Fixture;
|
|
use Doctrine\Persistence\ObjectManager;
|
|
|
|
/**
|
|
* Fixtures dev/test MINIMALES du repertoire transporteurs (M4, ERP-155/157) :
|
|
* 2 transporteurs de demonstration suffisant a faire tourner les ecrans de
|
|
* lecture (liste + detail). Les fixtures completes (cas QUALIMAT, affrete,
|
|
* LIOT, prix CLIENT/FOURNISSEUR...) sont livrees par le worktree dedie (WT10) —
|
|
* ne pas les developper ici (scope WT3 : contrat de lecture).
|
|
*
|
|
* Aucune dependance cross-module (pas de prix, pas de lien QUALIMAT) : la
|
|
* fixture reste autonome et joue en fin de chaine sans contrainte d'ordre.
|
|
*/
|
|
final class CarrierFixtures extends Fixture
|
|
{
|
|
public function load(ObjectManager $manager): void
|
|
{
|
|
// Transporteur certifie « classique ».
|
|
$alpha = new Carrier();
|
|
$alpha->setName('TRANSPORTS ALPHA');
|
|
$alpha->setCertificationType('GMP_PLUS');
|
|
$manager->persist($alpha);
|
|
|
|
$contact = new CarrierContact();
|
|
$contact->setCarrier($alpha);
|
|
$contact->setLastName('Durand');
|
|
$contact->setPhonePrimary('0612345678');
|
|
$alpha->addContact($contact);
|
|
$manager->persist($contact);
|
|
|
|
// Transporteur affrete (RG-4.03).
|
|
$beta = new Carrier();
|
|
$beta->setName('TRANSPORTS BETA');
|
|
$beta->setCertificationType('AUTRE');
|
|
$beta->setIsChartered(true);
|
|
$beta->setIndexationRate('5.00');
|
|
$beta->setContainerType('BENNE');
|
|
$beta->setVolumeM3('90.00');
|
|
$manager->persist($beta);
|
|
|
|
$manager->flush();
|
|
}
|
|
}
|