<?php

declare(strict_types=1);

namespace App\Shared\Domain\Contract;

/**
 * Contrat minimal exposant ce qu'un autre module doit connaitre d'un Supplier
 * (M2 Commercial) sans creer de couplage direct vers le module Commercial
 * (regle ABSOLUE n°1). Mappe vers App\Module\Commercial\Domain\Entity\Supplier
 * via `resolve_target_entities` (doctrine.yaml).
 *
 * Implemente par App\Module\Commercial\Domain\Entity\Supplier. Utilise comme
 * type-hint dans les relations ORM cross-module (ex: CarrierPrice.supplier, M4).
 * La serialisation passe par les read-groups de l'entite concrete (supplier:read),
 * pas par cette interface.
 */
interface SupplierInterface
{
    public function getId(): ?int;

    public function getCompanyName(): ?string;
}
