// engine/spec-templates/templates-industry-ecom.ts — E-commerce industry templates.
// AC-04: Templates by industry — e-commerce vertical (split from health-ecom).
/** E-commerce cart and checkout template. */
export const ECOMMERCE_CART_CHECKOUT_TEMPLATE = {
    id: 'ecommerce-cart-checkout',
    name: 'Carrito y proceso de compra',
    category: 'industry',
    subcategory: 'ecommerce',
    description: 'Carrito de compras con cupones, calculo de impuestos y proceso de checkout.',
    tags: ['ecommerce', 'cart', 'checkout', 'payments', 'coupons'],
    complexityScore: 'L',
    estimationBase: {
        hoursMin: 40,
        hoursMax: 80,
        notes: 'Incluye cupones, impuestos y multiples metodos de pago',
    },
    criteria: [
        { id: 'AC-1', title: 'Gestion del carrito', required: true },
        { id: 'AC-2', title: 'Cupones y descuentos', required: false },
        { id: 'AC-3', title: 'Calculo de impuestos', required: true },
        { id: 'AC-4', title: 'Proceso de checkout', required: true },
        { id: 'AC-5', title: 'Confirmacion de compra', required: true },
        { id: 'AC-6', title: 'Recuperacion de carrito', required: false },
    ],
    variables: [
        {
            key: 'StoreName',
            label: 'Nombre de la tienda',
            description: 'Nombre del e-commerce',
            example: 'MiTienda',
            required: true,
        },
    ],
    huTemplate: `# HU: Carrito y Checkout — {{StoreName}}

## Historia de Usuario
Como comprador de {{StoreName}}, quiero agregar productos al carrito y completar la compra de forma fluida y segura.

## Criterios de Aceptacion

### AC-1: Gestion del carrito
- [ ] Se pueden agregar, actualizar cantidad y eliminar productos del carrito
- [ ] El carrito persiste entre sesiones (usuario autenticado) o en almacenamiento local (anonimo)
- [ ] Se muestra subtotal actualizado en tiempo real
- [ ] Los productos sin stock se marcan automaticamente

### AC-2: Cupones y descuentos
- [ ] Se puede aplicar un codigo de cupon al carrito
- [ ] Los cupones validan vigencia, condiciones minimas y uso unico si aplica
- [ ] El descuento se refleja en el resumen antes de confirmar

### AC-3: Calculo de impuestos
- [ ] Los impuestos se calculan segun la direccion de envio
- [ ] El desglose de impuestos se muestra transparentemente
- [ ] Las reglas de impuestos son configurables por region

### AC-4: Proceso de checkout
- [ ] El checkout recopila direccion de envio, metodo de pago y datos de facturacion
- [ ] Se valida toda la informacion antes de procesar el pago
- [ ] El proceso es resistente a fallos parciales (no se cobra sin confirmar pedido)

### AC-5: Confirmacion de compra
- [ ] Se muestra resumen de pedido con numero de orden
- [ ] Se envia confirmacion por email con detalles del pedido
- [ ] El inventario se actualiza al confirmar la compra

### AC-6: Recuperacion de carrito
- [ ] Se envia recordatorio de carrito abandonado despues de N horas
- [ ] El enlace de recuperacion restaura el carrito con los productos originales
- [ ] Los productos no disponibles se indican al recuperar
`,
    fichaTecnicaTemplate: `# FICHA TÉCNICA: Carrito y Checkout — {{StoreName}}

## Archivos Afectados
- cart/management
- cart/coupons
- checkout/tax-calculator
- checkout/payment-processor
- checkout/confirmation
- notifications/cart-recovery

## Tipos / Entidades
- \`Cart\`: id, userId, items[], couponCode, subtotal, tax, total
- \`CartItem\`: productId, quantity, unitPrice
- \`Order\`: id, cartId, status, paymentId, shippingAddress, createdAt

## Riesgos
- Doble cobro → idempotencia en procesamiento de pago
- Precio desactualizado en carrito → revalidar precios en checkout
- Carrito inconsistente → recalcular totales en cada operacion

## Estimacion
- Dev: 40–80 horas
- Review: 8–16 horas
- Dificultad: 4/5
`,
    progressTemplate: `# PROGRESS: Carrito y Checkout — {{StoreName}}

## Estado: borrador

## Criterios
- [ ] AC-1: Gestion del carrito
- [ ] AC-2: Cupones y descuentos
- [ ] AC-3: Calculo de impuestos
- [ ] AC-4: Proceso de checkout
- [ ] AC-5: Confirmacion de compra
- [ ] AC-6: Recuperacion de carrito
`,
};
/** E-commerce inventory template. */
export const ECOMMERCE_INVENTORY_TEMPLATE = {
    id: 'ecommerce-inventory',
    name: 'Gestion de inventario',
    category: 'industry',
    subcategory: 'ecommerce',
    description: 'Control de stock, alertas de inventario bajo y variantes de producto.',
    tags: ['ecommerce', 'inventory', 'stock', 'products', 'variants'],
    complexityScore: 'M',
    estimationBase: {
        hoursMin: 24,
        hoursMax: 48,
        notes: 'Incluye variantes de producto y alertas de stock',
    },
    criteria: [
        { id: 'AC-1', title: 'Control de stock', required: true },
        { id: 'AC-2', title: 'Alertas de inventario', required: true },
        { id: 'AC-3', title: 'Variantes de producto', required: true },
        { id: 'AC-4', title: 'Movimientos de inventario', required: true },
        { id: 'AC-5', title: 'Reportes', required: false },
    ],
    variables: [
        {
            key: 'StoreName',
            label: 'Nombre de la tienda',
            description: 'Nombre del e-commerce',
            example: 'MiTienda',
            required: true,
        },
    ],
    huTemplate: `# HU: Inventario — {{StoreName}}

## Historia de Usuario
Como administrador de {{StoreName}}, quiero gestionar el inventario de productos para mantener el stock actualizado y recibir alertas cuando este bajo.

## Criterios de Aceptacion

### AC-1: Control de stock
- [ ] Cada producto/variante tiene una cantidad en stock
- [ ] El stock se decrementa automaticamente al confirmar una venta
- [ ] Los productos sin stock no pueden agregarse al carrito
- [ ] Se soporta stock por ubicacion/almacen (multi-warehouse)

### AC-2: Alertas de inventario
- [ ] Se generan alertas cuando el stock cae bajo el umbral configurado
- [ ] Las alertas son configurables por producto o categoria
- [ ] Se notifica por email y/o dashboard

### AC-3: Variantes de producto
- [ ] Cada producto puede tener variantes (talla, color, etc.)
- [ ] Cada variante tiene su propio stock independiente
- [ ] Las variantes comparten la ficha de producto base

### AC-4: Movimientos de inventario
- [ ] Todo cambio de stock se registra como movimiento (entrada, salida, ajuste)
- [ ] Cada movimiento incluye razon, cantidad y actor
- [ ] El historial de movimientos es consultable por producto y periodo

### AC-5: Reportes
- [ ] Reporte de productos con stock bajo
- [ ] Reporte de movimientos por periodo
- [ ] Exportable en CSV o equivalente
`,
    fichaTecnicaTemplate: `# FICHA TÉCNICA: Inventario — {{StoreName}}

## Archivos Afectados
- inventory/stock-manager
- inventory/alerts
- inventory/variants
- inventory/movements
- inventory/reports

## Tipos / Entidades
- \`Product\`: id, name, variants[], category
- \`Variant\`: id, productId, attributes, stock, sku
- \`StockMovement\`: variantId, type, quantity, reason, actor, timestamp

## Riesgos
- Sobreventa → reserva de stock al agregar al carrito con TTL
- Inconsistencia en stock multi-almacen → transacciones atomicas
- Alertas no enviadas → cola de notificaciones con reintentos

## Estimacion
- Dev: 24–48 horas
- Review: 4–8 horas
- Dificultad: 3/5
`,
    progressTemplate: `# PROGRESS: Inventario — {{StoreName}}

## Estado: borrador

## Criterios
- [ ] AC-1: Control de stock
- [ ] AC-2: Alertas de inventario
- [ ] AC-3: Variantes de producto
- [ ] AC-4: Movimientos de inventario
- [ ] AC-5: Reportes
`,
};
//# sourceMappingURL=templates-industry-ecom.js.map