// engine/spec-templates/fintech-kyc.ts — Fintech KYC verification template.
// AC-04: Templates by industry — fintech vertical (KYC).
/** Fintech KYC verification template. */
export const FINTECH_KYC_TEMPLATE = {
    id: 'fintech-kyc',
    name: 'Verificacion de identidad (KYC)',
    category: 'industry',
    subcategory: 'fintech',
    description: 'Flujo de verificacion de identidad con niveles de verificacion, documentos y compliance AML.',
    tags: ['fintech', 'kyc', 'identity', 'compliance', 'aml'],
    complexityScore: 'L',
    estimationBase: {
        hoursMin: 40,
        hoursMax: 80,
        notes: 'Incluye integracion con proveedor de verificacion y flujo multi-nivel',
    },
    criteria: [
        { id: 'AC-1', title: 'Niveles de verificacion', required: true },
        { id: 'AC-2', title: 'Carga de documentos', required: true },
        { id: 'AC-3', title: 'Validacion automatica', required: true },
        { id: 'AC-4', title: 'Revision manual', required: false },
        { id: 'AC-5', title: 'Compliance AML', required: true },
        { id: 'AC-6', title: 'Auditoria', required: true },
    ],
    variables: [
        {
            key: 'ServiceName',
            label: 'Nombre del servicio',
            description: 'Nombre del servicio financiero',
            example: 'FinanceApp',
            required: true,
        },
        {
            key: 'KycLevels',
            label: 'Niveles KYC',
            description: 'Niveles de verificacion soportados',
            example: 'Basico, Intermedio, Avanzado',
            required: false,
            defaultValue: 'Basico, Intermedio, Avanzado',
        },
    ],
    huTemplate: `# HU: Verificacion de Identidad (KYC) — {{ServiceName}}

## Historia de Usuario
Como usuario de {{ServiceName}}, quiero verificar mi identidad de forma progresiva para poder acceder a funcionalidades avanzadas del servicio.

## Criterios de Aceptacion

### AC-1: Niveles de verificacion
- [ ] El sistema soporta niveles de verificacion: {{KycLevels}}
- [ ] Cada nivel tiene requisitos documentales claros
- [ ] El usuario puede ver su nivel actual y los requisitos del siguiente
- [ ] Las funcionalidades se desbloquean segun el nivel alcanzado

### AC-2: Carga de documentos
- [ ] El usuario puede subir documentos de identidad en formatos imagen y PDF
- [ ] Los documentos se validan por formato, tamano y legibilidad
- [ ] Se almacenan cifrados y con acceso restringido
- [ ] Se genera un recibo de carga para el usuario

### AC-3: Validacion automatica
- [ ] Los documentos pasan por validacion automatica (OCR + verificacion)
- [ ] El resultado se comunica al usuario en tiempo real o por notificacion
- [ ] Los documentos rechazados indican el motivo del rechazo
- [ ] El usuario puede reintentar la verificacion con documentos nuevos

### AC-4: Revision manual
- [ ] Los casos dudosos se escalan a revision manual
- [ ] El revisor puede aprobar, rechazar o solicitar mas informacion
- [ ] El historial de decisiones se registra para auditoria

### AC-5: Compliance AML
- [ ] Se verifica contra listas de sanciones y PEP (personas expuestas politicamente)
- [ ] Las alertas AML se registran y se escalan segun protocolo
- [ ] La verificacion AML se repite periodicamente para usuarios existentes
- [ ] Se mantiene registro de todas las verificaciones realizadas

### AC-6: Auditoria
- [ ] Toda accion sobre documentos y verificaciones se registra con timestamp y actor
- [ ] Los registros de auditoria son inmutables
- [ ] Se puede generar reporte de auditoria por usuario o periodo

## Fuera de Alcance
- Integracion con proveedores especificos de KYC (configurar en implementacion)
- Verificacion biometrica (crear spec separada)
`,
    fichaTecnicaTemplate: `# FICHA TÉCNICA: KYC — {{ServiceName}}

## Archivos Afectados
- kyc/verification-levels
- kyc/document-upload
- kyc/automatic-validation
- kyc/manual-review
- kyc/aml-check
- storage/documents (cifrado)

## Tipos / Entidades
- \`KycLevel\`: id, name, requirements[], unlockedFeatures[]
- \`VerificationDocument\`: id, userId, type, status, uploadedAt
- \`AmlCheckResult\`: userId, checkDate, sanctionMatch, pepMatch, status

## Riesgos
- Fuga de documentos personales → cifrado obligatorio + acceso restringido
- Falsos positivos AML → flujo de revision manual requerido
- Regulacion cambiante → arquitectura extensible para nuevos requisitos

## Estimacion
- Dev: 40–80 horas
- Review: 8–16 horas
- Dificultad: 4/5
`,
    progressTemplate: `# PROGRESS: KYC — {{ServiceName}}

## Estado: borrador

## Criterios
- [ ] AC-1: Niveles de verificacion
- [ ] AC-2: Carga de documentos
- [ ] AC-3: Validacion automatica
- [ ] AC-4: Revision manual
- [ ] AC-5: Compliance AML
- [ ] AC-6: Auditoria
`,
};
//# sourceMappingURL=fintech-kyc.js.map