@extends('layouts.ownerLayout') @section('title', 'Configuración') @section('vendor-style') @vite([ 'resources/assets/vendor/libs/notyf/notyf.scss', 'resources/assets/vendor/libs/@form-validation/form-validation.scss' ]) @endsection @section('vendor-script') @vite([ 'resources/assets/vendor/libs/notyf/notyf.js', 'resources/assets/vendor/libs/@form-validation/popular.js', 'resources/assets/vendor/libs/@form-validation/bootstrap5.js', 'resources/assets/vendor/libs/@form-validation/auto-focus.js' ]) @endsection @section('page-script') @endsection @section('content') @if (!$organization)
Tu usuario no tiene organización asignada. Pide al administrador vincular tu cuenta para configurar APIs.
@else @php $maskApiKey = function (?string $value): string { $value = trim((string) $value); if ($value === '') { return 'sin configurar'; } $len = mb_strlen($value, 'UTF-8'); if ($len <= 8) { return str_repeat('*', $len); } return mb_substr($value, 0, 4, 'UTF-8') . '...' . mb_substr($value, -4, null, 'UTF-8'); }; $googleKeyMasked = $maskApiKey($organization->google_maps_api_key ?? null); $geminiKeyMasked = $maskApiKey($organization->gemini_api_key ?? null); $googleConfigured = !empty($organization->google_maps_api_key); $geminiConfigured = !empty($organization->gemini_api_key); $activeApiTokens = $apiTokens->whereNull('revoked_at')->values(); @endphp @if(session('api_token_plaintext')) @endif
Token personal para integraciones

Cada token pertenece a tu usuario y respeta tus permisos y grupos mariachi. Úsalo con `Authorization: Bearer TU_TOKEN`.

Tokens activos
{{ $activeApiTokens->count() }}
Tu usuario
{{ $organization->name }}
{{ auth()->user()->email }}
Uso recomendado
n8n, Chatwoot, IA
Un token por integración o uno único restablecible.
@forelse($apiTokens as $token) @empty @endforelse
Nombre Prefijo Estado Último uso Creado Acción
{{ $token->name }}
ID {{ $token->id }}
{{ $token->token_prefix }} @if($token->revoked_at) Revocado @else Activo @endif {{ $token->last_used_at ? $token->last_used_at->format('d/m/Y H:i') : 'Sin uso' }} {{ optional($token->created_at)->format('d/m/Y H:i') }} @if(!$token->revoked_at)
@csrf
@else Sin acciones @endif
Aún no has generado tokens API para tu usuario.
Integraciones

Configura Google Maps para autocompletar direcciones y Gemini para autocompletado por IA.

@csrf
Google Maps API
Estado: @if($googleConfigured) Configurada @else Sin configurar @endif | Huella: {{ $googleKeyMasked }}. Si dejas vacío, no se reemplaza.
Código ISO-2. Ejemplos: co, mx, us.
Gemini API
Estado: @if($geminiConfigured) Configurada @else Sin configurar @endif | Huella: {{ $geminiKeyMasked }}. Si dejas vacío, no se reemplaza.
Cancelar
@endif @endsection