Files

36 lines
971 B
PHP

<?php
namespace App\Features\Settings\Data;
use App\Features\Settings\Models\SaveFile;
use Spatie\LaravelData\Attributes\MapInputName;
use Spatie\LaravelData\Data;
use Spatie\LaravelData\Mappers\SnakeCaseMapper;
#[MapInputName(SnakeCaseMapper::class)]
class SaveFileData extends Data
{
public function __construct(
public int $id,
public int $userId,
public int $gameId,
public string $filePath,
public string $fileName,
public int $fileSize,
public ?string $lastSyncedAt,
) {}
public static function fromModel(SaveFile $saveFile): self
{
return new self(
id: $saveFile->id,
userId: $saveFile->user_id,
gameId: $saveFile->game_id,
filePath: $saveFile->file_path,
fileName: $saveFile->file_name,
fileSize: $saveFile->file_size,
lastSyncedAt: $saveFile->last_synced_at?->toISOString(),
);
}
}