# Provider Verification Summary Implementation Plan

> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.

**Goal:** Mostrar separadamente el correo de la cuenta y el nivel de verificación del prestador vigente en el portal bilingüe.

**Architecture:** La API ya entrega `verification_level` y excluye prestadores archivados de `/service-providers/mine`. La web conservará ese campo en su proyección segura y una función de vista lo traducirá y renderizará junto al estado de correo derivado de la sesión.

**Tech Stack:** Laravel Blade/PHP, JavaScript sin framework, CSS modular, Node test runner, PHPUnit.

---

### Task 1: Proyección y renderizado del nivel de verificación

**Files:**
- Modify: `tests/js/provider-payloads.test.js`
- Modify: `tests/js/provider-review.test.js`
- Modify: `resources/js/provider/04-store.js`
- Modify: `resources/js/provider/19-verifications-view.js`
- Modify: `resources/js/provider/19-verifications-viewmodel.js`
- Modify: `resources/js/provider/00-i18n.js`

- [ ] **Step 1: Escribir las pruebas en rojo**

Agregar un recurso con `verification_level: 'business_verified'` a la prueba de
proyección y exigir que el valor proyectado se conserve. Agregar nodos de
prueba para `#provider-provider-verification-status` y exigir que el renderer
muestre «Comercio verificado» en español y «Business verified» en inglés.

- [ ] **Step 2: Ejecutar las pruebas y confirmar el fallo esperado**

Run: `node --test tests/js/provider-payloads.test.js tests/js/provider-review.test.js`

Expected: FAIL porque `providerProjectResource()` elimina
`verification_level` y el renderer del resumen aún no existe.

- [ ] **Step 3: Implementar la proyección segura y el renderer**

Definir la lista cerrada de niveles admitidos, proyectar únicamente uno de
esos valores y usar `unverified` como valor seguro. Incorporar un mapa de
etiquetas del nivel y una función que actualice texto y `data-level` del
`output`; llamarla desde `providerInitializeVerificationUi()`.

- [ ] **Step 4: Ejecutar las pruebas y confirmar verde**

Run: `node --test tests/js/provider-payloads.test.js tests/js/provider-review.test.js`

Expected: PASS.

### Task 2: Marcado, estilos y traducciones del resumen doble

**Files:**
- Modify: `tests/Feature/ProviderPortalVerificationUiTest.php`
- Modify: `tests/Feature/ProviderPortalLocalizationTest.php`
- Modify: `resources/views/provider/partials/verifications.blade.php`
- Modify: `resources/lang/es/provider_portal.php`
- Modify: `resources/lang/en/provider_portal.php`
- Modify: `public/css/provider/portal/04-components.css`

- [ ] **Step 1: Escribir las pruebas de vista en rojo**

Exigir el contenedor `provider-verification-summary`, ambos `output` y los
títulos localizados «Verificación del prestador» / «Provider verification».

- [ ] **Step 2: Ejecutar las pruebas y confirmar el fallo esperado**

Run: `php artisan test tests/Feature/ProviderPortalVerificationUiTest.php tests/Feature/ProviderPortalLocalizationTest.php`

Expected: FAIL porque el segundo estado aún no está en Blade.

- [ ] **Step 3: Implementar el bloque visual bilingüe**

Agrupar dos tarjetas de estado en una cuadrícula adaptable, conservar el
acento coral y los tokens existentes de MyCode, y agregar las claves de idioma
para título y texto inicial del nivel del prestador.

- [ ] **Step 4: Ejecutar las pruebas focalizadas**

Run: `php artisan test tests/Feature/ProviderPortalVerificationUiTest.php tests/Feature/ProviderPortalLocalizationTest.php`

Expected: PASS.

### Task 3: Versión, compilación y regresión

**Files:**
- Modify: `VERSION`
- Generated: `public/js/provider/app.js`

- [ ] **Step 1: Evaluar y actualizar la versión**

El cambio es compatible y visible: incrementar patch de `1.7.1` a `1.7.2`.

- [ ] **Step 2: Compilar activos**

Run: `npm ci && npm run production`

Expected: compilación exitosa y `public/js/provider/app.js` actualizado.

- [ ] **Step 3: Ejecutar regresión completa**

Run: `npm run test:provider && php artisan test && php artisan architecture:audit --strict && git diff --check`

Expected: todos los comandos terminan con código 0.

- [ ] **Step 4: Revisar el diff y confirmar alcance**

Verificar que no hay cambios en la API, en el login clásico ni en archivos
locales ajenos al trabajo.
