<?php
namespace API\Partenaire;

use GuzzleHttp\Psr7\Response;

/**
 * Interface pour Partenaire capable d'heberger des documents de fournisseur
 */
interface IFournissDocExt
{
    /**
     * @param array<mixed> $fourniss Entity Fourniss
     */
    public function preprocessDocAtt(array $fourniss) :void;

    /**
     * @param string $fournissCode
     * @param array<mixed> $listDocAtt Array of DocCanva/DocAtt as returned by DocAtt::detail
     * @return array<mixed> Simili of Entity DocCanva/DocAtt
     */
    public function processListDocAtt(string $fournissCode, array $listDocAtt) :array;

    /**
     * Return a path to a twig template used in src\Modules\Fournisseur\Views\DocFournisseur\index.twig
     * ex : @Fournisseur/DocFournisseur/_rowDocProvigis.twig
     */
    public function getDocAttTemplate() :?string;

    public function downloadDoc(string $fournissId, int $docNum) :Response;
}
