e88bb059e6
- WeighbridgeReaderInterface (contrat) + RandomWeighbridgeReader (stub,
poids aléatoire ∈ [10000,50000] kg, RG-5.06) + WeighbridgeUnavailableException
- DsdAllocator : compteur DSD par site (weighbridge_dsd_counter) incrémenté
sous verrou ligne SELECT ... FOR UPDATE (RG-5.04, § 2.7)
- endpoint POST /api/weighbridge_readings : ressource virtuelle
WeighbridgeReadingResource + WeighbridgeReadingProcessor (pas de controller)
- AUTO -> {weight, dsd, mode} ; MANUAL -> {weight, dsd, manualNumber, mode}
- WeighbridgeUnavailableException -> HTTP 503 explicite (RG-5.06)
- site courant via CurrentSiteProviderInterface (contrat Sites)
- is_granted('logistique.weighing_tickets.manage')
- dsd renvoyé prévisionnel : attribution autoritaire refaite à la création
du ticket (ERP-185)
- tests : WeighbridgeReaderStubTest, DsdAllocatorTest, processor (503/400),
WeighbridgeReadingApiTest (RBAC + AUTO/MANUAL + 422)
25 lines
683 B
PHP
25 lines
683 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Module\Logistique\Domain\Weighbridge;
|
|
|
|
/**
|
|
* Resultat immuable d'une lecture du pont bascule (§ 2.6 / RG-5.06).
|
|
*
|
|
* Porte le couple {poids, DSD} renvoye par une pesee « bascule » (AUTO) :
|
|
* - weight : poids brut lu, en kilogrammes ;
|
|
* - dsd : index de pesee du pont (compteur par site, RG-5.04).
|
|
*
|
|
* Au M5 le pont est un stub (RandomWeighbridgeReader) ; un driver materiel reel
|
|
* (HP-M5-02) produira le meme objet derriere WeighbridgeReaderInterface, sans
|
|
* impact sur l'API.
|
|
*/
|
|
final readonly class WeighbridgeReading
|
|
{
|
|
public function __construct(
|
|
public int $weight,
|
|
public int $dsd,
|
|
) {}
|
|
}
|