36 lines
971 B
PHP
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(),
|
|
);
|
|
}
|
|
}
|