30 lines
824 B
PHP
30 lines
824 B
PHP
<?php
|
|
|
|
namespace App\Data\DataPipes;
|
|
|
|
use App\Data\FileData;
|
|
use Illuminate\Support\Carbon;
|
|
use Illuminate\Support\Collection;
|
|
use Spatie\LaravelData\DataPipes\DataPipe;
|
|
use Spatie\LaravelData\Lazy;
|
|
use Spatie\LaravelData\Optional;
|
|
use Spatie\LaravelData\Support\DataClass;
|
|
use Spatie\LaravelData\Support\DataConfig;
|
|
use Spatie\LaravelData\Support\DataProperty;
|
|
use Illuminate\Support\Str;
|
|
|
|
class ParseWatchFile implements DataPipe
|
|
{
|
|
public function handle(mixed $payload, DataClass $class, Collection $properties): Collection
|
|
{
|
|
$properties['watched'] = Carbon::now();
|
|
$properties['output'] = sprintf(
|
|
'%s-%dx%02d.json',
|
|
Str::slug($properties['showTitle']),
|
|
$properties['season'],
|
|
$properties['episode']
|
|
);
|
|
|
|
return $properties;
|
|
}
|
|
}
|