Files
myep-team/src/Service/Upload/DownloadNamer.php
T
2025-08-21 14:20:43 +02:00

34 lines
831 B
PHP

<?php
namespace App\Service\Upload;
use App\Entity\Teamer;
use App\Entity\Upload;
use Symfony\Component\String\Slugger\AsciiSlugger;
class DownloadNamer
{
public function nameForTeamer(Upload $upload, Teamer $teamer): string
{
$pattern = match ($upload->getType()) {
Upload::TYPE_INVOICE => 'hn-%d-%s-%s.pdf',
Upload::TYPE_CONTRACT => 'hv-%d-%s-%s.pdf',
default => null,
};
if (null === $pattern) {
return $upload->getOriginalFilename();
}
$slugger = new AsciiSlugger('de');
$teamerName = strtolower($slugger->slug($teamer->getFullName(true), '_'));
return sprintf(
$pattern,
$upload->getId(),
$teamerName,
$upload->getCreatedAt()->format('Ymd')
);
}
}