Files
RetroHub/app/Features/Consoles/Data/ConsoleData.php
T

38 lines
1.0 KiB
PHP

<?php
namespace App\Features\Consoles\Data;
use App\Features\Consoles\Models\Console;
use Spatie\LaravelData\Attributes\MapInputName;
use Spatie\LaravelData\Data;
use Spatie\LaravelData\Mappers\SnakeCaseMapper;
#[MapInputName(SnakeCaseMapper::class)]
class ConsoleData extends Data
{
public function __construct(
public int $id,
public string $name,
public string $slug,
public ?string $iconPath,
public array $romExtensions,
public ?int $igdbPlatformId,
public ?int $tgdbPlatformId,
public int $gamesCount,
) {}
public static function fromModel(Console $console): self
{
return new self(
id: $console->id,
name: $console->name,
slug: $console->slug,
iconPath: $console->icon_path,
romExtensions: $console->rom_extensions,
igdbPlatformId: $console->igdb_platform_id,
tgdbPlatformId: $console->tgdb_platform_id,
gamesCount: $console->games_count ?? 0,
);
}
}