f8f7571cc0
- RouteEngineInterface (computeMatrix/optimizeOrder/estimateLegDurations) + HaversineRouteEngine V1 (vitesse moyenne parametrable, plus proche voisin)
- TourRouteCalculator : resolution coords, ETA (RG-6.11), exclusion sans coords (RG-6.05), totaux ; optimize = reorder + recompute
- Endpoints API Platform POST /tours/{id}/compute, /optimize, /duplicate (TourDuplicator, RG-6.13) + Processors, security manage
- Feuille de route PDF GET /tours/{id}/roadbook.pdf (Dompdf + Twig) via PdfRendererInterface (Shared), controller priority:1, security view
- TierAddressResolver etendu (coords + location DBAL)
- Tests : HaversineRouteEngine (unit), compute/optimize/duplicate/roadbook (API)
60 lines
2.5 KiB
YAML
60 lines
2.5 KiB
YAML
# yaml-language-server: $schema=../vendor/symfony/dependency-injection/Loader/schema/services.schema.json
|
|
|
|
parameters:
|
|
# Vitesse moyenne (km/h) du moteur de trajet V1 Haversine (M6 § 3.4).
|
|
field_sales.route_average_speed_kmh: 50.0
|
|
|
|
imports:
|
|
- { resource: version.yaml }
|
|
|
|
services:
|
|
# default configuration for services in *this* file
|
|
_defaults:
|
|
autowire: true # Automatically injects dependencies in your services.
|
|
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
|
|
|
|
# makes classes in src/ available to be used as services
|
|
# this creates a service per class whose id is the fully-qualified class name
|
|
App\:
|
|
resource: '../src/'
|
|
|
|
App\Module\Core\Domain\Repository\PermissionRepositoryInterface:
|
|
alias: App\Module\Core\Infrastructure\Doctrine\DoctrinePermissionRepository
|
|
|
|
App\Module\Core\Domain\Repository\RoleRepositoryInterface:
|
|
alias: App\Module\Core\Infrastructure\Doctrine\DoctrineRoleRepository
|
|
|
|
App\Module\Core\Domain\Repository\UserRepositoryInterface:
|
|
alias: App\Module\Core\Infrastructure\Doctrine\DoctrineUserRepository
|
|
|
|
App\Module\Sites\Domain\Repository\SiteRepositoryInterface:
|
|
alias: App\Module\Sites\Infrastructure\Doctrine\DoctrineSiteRepository
|
|
|
|
App\Shared\Domain\Contract\SiteProviderInterface:
|
|
alias: App\Module\Sites\Infrastructure\Doctrine\DoctrineSiteRepository
|
|
|
|
App\Module\Sites\Application\Service\CurrentSiteProviderInterface:
|
|
alias: App\Module\Sites\Application\Service\CurrentSiteProvider
|
|
|
|
# Geocodage des adresses Tiers (M6.1) : BAN api-adresse.data.gouv.fr.
|
|
App\Shared\Domain\Contract\GeocoderInterface:
|
|
alias: App\Shared\Infrastructure\Geocoding\BanGeocoder
|
|
|
|
# Moteur de trajet V1 (M6 § 3.4) : Haversine + plus proche voisin. La V2
|
|
# rebranchera OrsRouteEngine ici sans toucher au calculateur ni au front.
|
|
App\Module\FieldSales\Domain\Route\RouteEngineInterface:
|
|
alias: App\Module\FieldSales\Infrastructure\Route\HaversineRouteEngine
|
|
|
|
# Rendu PDF (feuille de route M6.4, etc.) : Dompdf.
|
|
App\Shared\Domain\Contract\PdfRendererInterface:
|
|
alias: App\Shared\Infrastructure\Pdf\DompdfRenderer
|
|
|
|
# En test : geocodeur en memoire, deterministe et sans reseau (les tests
|
|
# fonctionnels d'adresse ne doivent jamais appeler la BAN reelle).
|
|
when@test:
|
|
services:
|
|
App\Tests\Fixtures\Geocoding\InMemoryGeocoder: ~
|
|
|
|
App\Shared\Domain\Contract\GeocoderInterface:
|
|
alias: App\Tests\Fixtures\Geocoding\InMemoryGeocoder
|