// engine/spec-templates/fintech-transactions.ts — Fintech transactions template.
// AC-04: Templates by industry — fintech vertical (transactions).
/** Fintech transactions template. */
export const FINTECH_TRANSACTIONS_TEMPLATE = {
    id: 'fintech-transactions',
    name: 'Gestion de transacciones financieras',
    category: 'industry',
    subcategory: 'fintech',
    description: 'Transacciones financieras con idempotencia, reversion, auditoria y limites.',
    tags: ['fintech', 'transactions', 'payments', 'idempotency', 'audit'],
    complexityScore: 'XL',
    estimationBase: {
        hoursMin: 80,
        hoursMax: 160,
        notes: 'Requiere idempotencia estricta y auditoria completa',
    },
    criteria: [
        { id: 'AC-1', title: 'Creacion de transacciones', required: true },
        { id: 'AC-2', title: 'Idempotencia', required: true },
        { id: 'AC-3', title: 'Reversion', required: true },
        { id: 'AC-4', title: 'Limites y controles', required: true },
        { id: 'AC-5', title: 'Auditoria', required: true },
        { id: 'AC-6', title: 'Conciliacion', required: false },
    ],
    variables: [
        {
            key: 'ServiceName',
            label: 'Nombre del servicio',
            description: 'Nombre del servicio financiero',
            example: 'FinanceApp',
            required: true,
        },
        {
            key: 'Currency',
            label: 'Moneda principal',
            description: 'Moneda principal del sistema',
            example: 'USD',
            required: false,
            defaultValue: 'USD',
        },
    ],
    huTemplate: `# HU: Transacciones Financieras — {{ServiceName}}

## Historia de Usuario
Como usuario de {{ServiceName}}, quiero realizar transacciones financieras de forma segura y rastreable.

## Criterios de Aceptacion

### AC-1: Creacion de transacciones
- [ ] Se puede crear una transaccion con monto, origen, destino y concepto
- [ ] Cada transaccion recibe un ID unico e inmutable
- [ ] Los montos se manejan en la menor unidad (centavos) para evitar errores de precision
- [ ] La moneda ({{Currency}}) se registra explicitamente en cada transaccion

### AC-2: Idempotencia
- [ ] Cada solicitud de transaccion incluye una clave de idempotencia
- [ ] Solicitudes duplicadas retornan el resultado original sin ejecutar de nuevo
- [ ] Las claves de idempotencia expiran despues de un periodo configurable

### AC-3: Reversion
- [ ] Las transacciones pueden revertirse dentro del periodo permitido
- [ ] La reversion genera una contra-transaccion (no elimina la original)
- [ ] Las transacciones revertidas muestran estado "revertida" con referencia cruzada

### AC-4: Limites y controles
- [ ] Limites por monto individual, diario y mensual por usuario
- [ ] Transacciones que excedan limites requieren aprobacion adicional
- [ ] Los limites son configurables por nivel de usuario/cuenta

### AC-5: Auditoria
- [ ] Toda transaccion registra timestamp, actor, IP y dispositivo
- [ ] Los registros de auditoria son inmutables (append-only)
- [ ] Se puede consultar el historial completo de una transaccion

### AC-6: Conciliacion
- [ ] Proceso de conciliacion periodica entre sistema interno y proveedores externos
- [ ] Las discrepancias generan alertas automaticas
- [ ] Reporte de conciliacion exportable

## Fuera de Alcance
- Integracion con proveedores de pago especificos (ver template third-party-integration)
`,
    fichaTecnicaTemplate: `# FICHA TÉCNICA: Transacciones — {{ServiceName}}

## Archivos Afectados
- transactions/create
- transactions/reverse
- transactions/limits
- transactions/audit-log
- transactions/reconciliation

## Tipos / Entidades
- \`Transaction\`: id, amount, currency, from, to, status, idempotencyKey, createdAt
- \`TransactionLimit\`: userId, type (daily/monthly/single), maxAmount
- \`AuditEntry\`: transactionId, action, actor, ip, timestamp

## Riesgos
- Doble cargo sin idempotencia → claves de idempotencia obligatorias
- Precision de montos → usar enteros (centavos), nunca floats
- Reversion fuera de plazo → controles temporales estrictos

## Estimacion
- Dev: 80–160 horas
- Review: 16–32 horas
- Dificultad: 5/5
`,
    progressTemplate: `# PROGRESS: Transacciones — {{ServiceName}}

## Estado: borrador

## Criterios
- [ ] AC-1: Creacion de transacciones
- [ ] AC-2: Idempotencia
- [ ] AC-3: Reversion
- [ ] AC-4: Limites y controles
- [ ] AC-5: Auditoria
- [ ] AC-6: Conciliacion
`,
};
//# sourceMappingURL=fintech-transactions.js.map