<?php namespace App\Fileshare\Data; use App\Fileshare\Models\Fileshare; use Illuminate\Filesystem\FilesystemAdapter; use Spatie\LaravelData\Attributes\MapInputName; use Spatie\LaravelData\Attributes\MapOutputName; use Spatie\LaravelData\Data; use Spatie\LaravelData\Mappers\SnakeCaseMapper; #[MapInputName(SnakeCaseMapper::class)] #[MapOutputName(SnakeCaseMapper::class)] class FileshareResourceData extends Data { public function __construct(public int $connectionId, public string $resource) { } public function getConnection(): Fileshare { return Fileshare::find($this->connectionId); } public function getStorage(): FilesystemAdapter { return $this->getConnection()->type->getFilesystem(); } }