refactor(integration): generalizar el requisito de configuracion

Renombra requires_client_configuration a requires_configuration conservando los valores existentes y su rollback. Actualiza el modelo, la validacion, los seeders y los consumidores del campo para permitir configuraciones de cliente o tipo de sitio.
This commit is contained in:
2026-09-04 12:47:29 -03:00
parent f11ba5a470
commit e4146288f1
10 changed files with 35 additions and 10 deletions

View File

@@ -14,12 +14,12 @@ class Integration extends Model
'name',
'url',
'integration_data_schema',
'requires_client_configuration',
'requires_configuration',
];
protected $casts = [
'integration_data_schema' => 'array',
'requires_client_configuration' => 'boolean',
'requires_configuration' => 'boolean',
];
/** @return HasMany<IntegrationInstance, $this> */

View File

@@ -18,7 +18,7 @@ class StoreIntegrationRequest extends FormRequest
'name' => ['required', 'string', 'max:255'],
'url' => ['nullable', 'url', 'max:255'],
'integration_data_schema' => ['nullable', 'array'],
'requires_client_configuration' => ['sometimes', 'boolean'],
'requires_configuration' => ['sometimes', 'boolean'],
];
}
}

View File

@@ -19,7 +19,7 @@ class UpdateIntegrationRequest extends FormRequest
'name' => ['sometimes', 'required', 'string', 'max:255'],
'url' => ['nullable', 'url', 'max:255'],
'integration_data_schema' => ['nullable', 'array'],
'requires_client_configuration' => ['sometimes', 'boolean'],
'requires_configuration' => ['sometimes', 'boolean'],
// the code shouldn't ideally be updatable, but if it is:
'integration_code' => ['sometimes', 'required', 'string', 'unique:integrations,integration_code,'.($integration->id ?? '')],
];

View File

@@ -108,7 +108,7 @@ abstract class BaseIntegrationService
->where('integration_code', $this->integrationCode)
->first();
if (! $this->clientIntegration && $this->integration->requires_client_configuration) {
if (! $this->clientIntegration && $this->integration->requires_configuration) {
throw new Exception("Client '{$this->clientContext->code}' does not have integration '{$this->integrationCode}' configured.");
}
}