refactor(integrations): move configuration ownership to clients
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Domains\Client\Models;
|
namespace App\Domains\Client\Models;
|
||||||
|
|
||||||
|
use App\Domains\Integration\Models\ClientIntegration;
|
||||||
use App\Domains\Tenant\Models\Tenant;
|
use App\Domains\Tenant\Models\Tenant;
|
||||||
use Illuminate\Database\Eloquent\Attributes\Fillable;
|
use Illuminate\Database\Eloquent\Attributes\Fillable;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
@@ -20,4 +21,10 @@ class Client extends Model
|
|||||||
{
|
{
|
||||||
return $this->hasMany(Tenant::class);
|
return $this->hasMany(Tenant::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @return HasMany<ClientIntegration, $this> */
|
||||||
|
public function integrations(): HasMany
|
||||||
|
{
|
||||||
|
return $this->hasMany(ClientIntegration::class);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ return new class extends Migration
|
|||||||
{
|
{
|
||||||
public function up(): void
|
public function up(): void
|
||||||
{
|
{
|
||||||
if (! Schema::hasTable('client_integrations')) {
|
|
||||||
Schema::create('client_integrations', function (Blueprint $table): void {
|
Schema::create('client_integrations', function (Blueprint $table): void {
|
||||||
$table->id();
|
$table->id();
|
||||||
$table->foreignId('client_id')->constrained('clients')->cascadeOnDelete();
|
$table->foreignId('client_id')->constrained('clients')->cascadeOnDelete();
|
||||||
@@ -23,9 +22,7 @@ return new class extends Migration
|
|||||||
->cascadeOnDelete();
|
->cascadeOnDelete();
|
||||||
$table->unique(['client_id', 'integration_code']);
|
$table->unique(['client_id', 'integration_code']);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
if (Schema::hasTable('tenant_integration')) {
|
|
||||||
DB::table('tenant_integration')
|
DB::table('tenant_integration')
|
||||||
->join('tenants', 'tenants.codigo', '=', 'tenant_integration.tenant_code')
|
->join('tenants', 'tenants.codigo', '=', 'tenant_integration.tenant_code')
|
||||||
->select([
|
->select([
|
||||||
@@ -49,15 +46,11 @@ return new class extends Migration
|
|||||||
],
|
],
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
if (! Schema::hasColumn('integrations', 'requires_client_configuration')) {
|
|
||||||
Schema::table('integrations', function (Blueprint $table): void {
|
Schema::table('integrations', function (Blueprint $table): void {
|
||||||
$table->boolean('requires_client_configuration')->default(true);
|
$table->boolean('requires_client_configuration')->default(true);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
if (Schema::hasColumn('integrations', 'requires_tenant_configuration')) {
|
|
||||||
DB::table('integrations')->update([
|
DB::table('integrations')->update([
|
||||||
'requires_client_configuration' => DB::raw('requires_tenant_configuration'),
|
'requires_client_configuration' => DB::raw('requires_tenant_configuration'),
|
||||||
]);
|
]);
|
||||||
@@ -65,7 +58,6 @@ return new class extends Migration
|
|||||||
Schema::table('integrations', function (Blueprint $table): void {
|
Schema::table('integrations', function (Blueprint $table): void {
|
||||||
$table->dropColumn('requires_tenant_configuration');
|
$table->dropColumn('requires_tenant_configuration');
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
Schema::dropIfExists('tenant_integration');
|
Schema::dropIfExists('tenant_integration');
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user