Files
animethemes-server/app/Filament/HeaderActions/Models/Wiki/Studio/AttachStudioResourceHeaderAction.php
T

50 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Filament\HeaderActions\Models\Wiki\Studio;
use App\Actions\Models\Wiki\Studio\AttachStudioResourceAction as AttachStudioResourceActionAction;
use App\Enums\Models\Wiki\ResourceSite;
use App\Filament\HeaderActions\Models\Wiki\AttachResourceHeaderAction;
use App\Models\Wiki\Studio;
use App\Rules\Wiki\Resource\StudioResourceLinkFormatRule;
use Illuminate\Contracts\Validation\ValidationRule;
/**
* Class AttachStudioResourceHeaderAction.
*/
class AttachStudioResourceHeaderAction extends AttachResourceHeaderAction
{
/**
* Initial setup for the action.
*
* @return void
*/
protected function setUp(): void
{
parent::setUp();
$this->sites([
ResourceSite::ANIDB,
ResourceSite::ANILIST,
ResourceSite::ANIME_PLANET,
ResourceSite::ANN,
ResourceSite::MAL,
]);
$this->action(fn (Studio $record, array $data) => (new AttachStudioResourceActionAction($this->sites))->handle($record, $data));
}
/**
* Get the format validation rule.
*
* @param ResourceSite $site
* @return ValidationRule
*/
protected function getFormatRule(ResourceSite $site): ValidationRule
{
return new StudioResourceLinkFormatRule($site);
}
}