Skip to main content

Plantillas

Visión general​

Crono genera contenido dinámico (cuerpos de correo, mensajes de WhatsApp y otros fragmentos de texto) con un motor de plantillas basado en la sintaxis Liquid. Las plantillas trabajan con modelos arbitrarios e incluyen soporte de localización, y pueden extenderse con filtros o etiquetas personalizadas.

El motor se expone mediante IPlantillaMotor (Crono.Plantillas), con su implementación Liquid LiquidPlantillaMotor (Crono.Nucleo.Plataforma.Plantillas.Liquid).

Renderizar plantillas​

Inyecta IPlantillaMotor para renderizar una plantilla a partir de su fuente y un modelo:

public class ConstructorCorreoPrestamo
{
private readonly IPlantillaMotor _plantillas;

public ConstructorCorreoPrestamo(IPlantillaMotor plantillas)
{
_plantillas = plantillas;
}

public Task<string> ConstruirAsync(Prestamo prestamo)
{
var fuente = "Hola {{ Cliente.Nombre }}, tu préstamo {{ Prestamo.Codigo }} tiene un saldo de {{ Prestamo.Saldo }}.";
var modelo = new { Prestamo = prestamo, Cliente = prestamo.Cliente };
return _plantillas.RenderizarAsync(fuente, modelo);
}
}

El motor también ofrece:

  • Compilar(fuente) — compila una plantilla a un IPlantilla reutilizable.
  • CrearModeloPruebaPara(entidad, prefijo) — genera un modelo con valores de ejemplo para previsualizar una plantilla sin datos reales de producción.

Plantillas de comunicación​

Sobre este motor, el módulo de Comunicaciones administra las plantillas de mensajes (por ejemplo, los mensajes de WhatsApp). El ComunicacionRenderizador renderiza cada plantilla con los tokens de la entidad correspondiente y valida que no haya tokens desconocidos, ofreciendo además una previsualización en vivo con datos de prueba.

Plantillas de documentos​

De forma análoga, los documentos de préstamo (contratos, cronogramas, constancias, etc.) se generan a partir de plantillas con variables que se resuelven contra los datos del préstamo, y luego se exportan a PDF o imagen.