Skip to content

Commit 5edf8e4

Browse files
committed
CustomsFieldsMigrators contract
1 parent b1634f3 commit 5edf8e4

File tree

5 files changed

+31
-8
lines changed

5 files changed

+31
-8
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
namespace Relaticle\CustomFields\Contracts;
4+
5+
use Relaticle\CustomFields\Enums\CustomFieldType;
6+
use Relaticle\CustomFields\Models\CustomField;
7+
8+
interface CustomsFieldsMigrators
9+
{
10+
public function find(string $model, string $code): ?CustomsFieldsMigrators;
11+
public function new(string $model, CustomFieldType $type, string $name, string $code, bool $active = true, bool $userDefined = false): CustomsFieldsMigrators;
12+
public function options(array $options): CustomsFieldsMigrators;
13+
public function lookupType(string $model): CustomsFieldsMigrators;
14+
public function create(): void;
15+
public function update(array $data): void;
16+
public function delete(): void;
17+
public function forceDelete(): void;
18+
public function restore(): void;
19+
}

src/CustomFieldsServiceProvider.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
use Livewire\Features\SupportTesting\Testable;
1515
use Livewire\Livewire;
1616
use Relaticle\CustomFields\Commands\FilamentCustomFieldCommand;
17+
use Relaticle\CustomFields\Contracts\CustomsFieldsMigrators;
18+
use Relaticle\CustomFields\Migrations\CustomFieldsMigrator;
1719
use Relaticle\CustomFields\Models\CustomField;
1820
use Relaticle\CustomFields\Testing\TestsFilamentCustomField;
1921
use Spatie\LaravelPackageTools\Commands\InstallCommand;
@@ -28,6 +30,8 @@ class CustomFieldsServiceProvider extends PackageServiceProvider
2830

2931
public function bootingPackage()
3032
{
33+
$this->app->singleton(CustomsFieldsMigrators::class, CustomFieldsMigrator::class);
34+
3135
if (config('custom-fields.tenant_aware', false) && Filament::hasTenancy()) {
3236
$tenantModel = Filament::getTenantModel();
3337
$tenantModelInstance = app($tenantModel);

src/Filament/Forms/Components/CustomFieldsComponent/SelectComponent.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ protected function configureLookup(Select $select, $lookupType): Select
3838
$recordTitleAttribute = FilamentResourceService::getRecordTitleAttribute($lookupType);
3939
$globalSearchableAttributes = FilamentResourceService::getGlobalSearchableAttributes($lookupType);
4040

41+
// TODO: Check tenant support for below queries and other lookups
4142
return $select
4243
->getSearchResultsUsing(fn(string $search): array => $entityInstance->query()
4344
->whereAny($globalSearchableAttributes, 'like', "%{$search}%")

src/Migrations/CustomFieldsMigration.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,16 @@
33
namespace Relaticle\CustomFields\Migrations;
44

55
use Illuminate\Database\Migrations\Migration;
6+
use Relaticle\CustomFields\Contracts\CustomsFieldsMigrators;
67

78
abstract class CustomFieldsMigration extends Migration
89
{
9-
protected CustomFieldsMigrator $migrator;
10+
protected CustomsFieldsMigrators $migrator;
1011

1112
abstract public function up();
1213

1314
public function __construct()
1415
{
15-
$this->migrator = app(CustomFieldsMigrator::class);
16+
$this->migrator = app(CustomsFieldsMigrators::class);
1617
}
1718
}

src/Migrations/CustomFieldsMigrator.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33
namespace Relaticle\CustomFields\Migrations;
44

55
use Illuminate\Support\Facades\DB;
6+
use Relaticle\CustomFields\Contracts\CustomsFieldsMigrators;
67
use Relaticle\CustomFields\Data\CustomFieldData;
78
use Relaticle\CustomFields\Enums\CustomFieldType;
89
use Relaticle\CustomFields\Exceptions\CustomFieldAlreadyExistsException;
910
use Relaticle\CustomFields\Exceptions\CustomFieldDoesNotExistException;
1011
use Relaticle\CustomFields\Exceptions\FieldTypeNotOptionableException;
1112
use Relaticle\CustomFields\Models\CustomField;
1213

13-
class CustomFieldsMigrator
14+
class CustomFieldsMigrator implements CustomsFieldsMigrators
1415
{
1516
private CustomFieldData $customFieldData;
1617

@@ -102,11 +103,10 @@ public function create(): void
102103

103104
/**
104105
* @param array $data
105-
* @return CustomFieldsMigrator
106+
* @return void
106107
* @throws CustomFieldDoesNotExistException
107-
* @throws \Exception
108108
*/
109-
public function update(array $data): CustomFieldsMigrator
109+
public function update(array $data): void
110110
{
111111
if (!$this->customField->exists) {
112112
throw CustomFieldDoesNotExistException::whenUpdating($this->customFieldData->code);
@@ -129,8 +129,6 @@ public function update(array $data): CustomFieldsMigrator
129129
DB::rollBack();
130130
throw $exception;
131131
}
132-
133-
return $this;
134132
}
135133

136134

0 commit comments

Comments
 (0)