64 lines
2.4 KiB
PHP
64 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace App\Modules\TuitionPaymentOrder\Nova\Resources;
|
|
|
|
use App\Modules\TuitionPaymentOrder\Models\TuitionPaymentOrder;
|
|
use Ebess\AdvancedNovaMediaLibrary\Fields\Files;
|
|
use Laravel\Nova\Fields\File;
|
|
use Laravel\Nova\Http\Requests\NovaRequest;
|
|
|
|
class TuitionPaymentOrderFileFields
|
|
{
|
|
/**
|
|
* Reciver files
|
|
*/
|
|
public static function reciverFiles(): array
|
|
{
|
|
return collect(TuitionPaymentOrder::reciverFiles())
|
|
->map(function (array $file) {
|
|
return File::make(__($file['name']), $file['code'])
|
|
->fullWidth()
|
|
->deletable(false)
|
|
->creationRules($file['required'] ? 'required' : 'nullable')
|
|
->updateRules('nullable')
|
|
->store(function (NovaRequest $request, $model) use ($file) {
|
|
return function () use ($model, $file) {
|
|
$model->addMediaFromRequest($file['code'])
|
|
->preservingOriginal()
|
|
->toMediaCollection($file['code']);
|
|
};
|
|
})
|
|
->preview(function ($value, $disk, $resource) use ($file) {
|
|
return $resource->getFirstMediaUrl($file['code']);
|
|
});
|
|
})
|
|
->toArray();
|
|
}
|
|
|
|
/**
|
|
* Sender files
|
|
*/
|
|
public static function senderFiles(): array
|
|
{
|
|
return collect(TuitionPaymentOrder::senderFiles())
|
|
->map(function (array $file) {
|
|
return File::make(__($file['name']), $file['code'])
|
|
->fullWidth()
|
|
->deletable(false)
|
|
->creationRules($file['required'] ? 'required' : 'nullable')
|
|
->updateRules('nullable')
|
|
->store(function (NovaRequest $request, $model) use ($file) {
|
|
return function () use ($model, $file) {
|
|
$model->addMediaFromRequest($file['code'])
|
|
->preservingOriginal()
|
|
->toMediaCollection($file['code']);
|
|
};
|
|
})
|
|
->preview(function ($value, $disk, $resource) use ($file) {
|
|
return $resource->getFirstMediaUrl($file['code']);
|
|
});
|
|
})
|
|
->toArray();
|
|
}
|
|
}
|