refactor(integration): resolver credenciales mediante instancias

Resuelve primero la instancia del cliente y luego la del tipo de sitio cuando existe contexto de tenant. Adapta SMTP y Telepagos, con tokens identificados por instancia y version de credenciales.

Separa la edicion de instancias de sus asociaciones y conserva el guardado por cliente creando una instancia nueva. Impide eliminar instancias en uso y adapta las pruebas existentes, incluida la herencia SMTP.
This commit is contained in:
2026-09-04 12:47:47 -03:00
parent e4146288f1
commit c0057c237a
12 changed files with 190 additions and 54 deletions

View File

@@ -0,0 +1,21 @@
<?php
namespace Tests\Concerns;
use App\Domains\Integration\Models\ClientIntegration;
use App\Domains\Integration\Models\IntegrationInstance;
trait CreatesIntegrationInstances
{
private function createClientIntegration(array $attributes): ClientIntegration
{
$instance = IntegrationInstance::create([
'integration_code' => $attributes['integration_code'],
'name' => 'Test instance',
'integration_data' => $attributes['integration_data'],
]);
unset($attributes['integration_data']);
return ClientIntegration::create($attributes + ['integration_instance_id' => $instance->id]);
}
}