// registrar_interaccion
// Registra una interacción (llamada, email o reunión) con un cliente.
// Crea un registro Interaccion — el historial de contacto del CRM.
//
// ids.cliente: UUID del Cliente (la interacción guarda la FK).
// params: { interaccion_id, canal:str, nota:str, timestamp:str }

let int_id = input.params.interaccion_id;
if type_of(int_id) == "()" {
    throw "params.interaccion_id es obligatorio (idempotencia)"
}

let canal = input.params.canal;
if canal != "llamada" && canal != "email" && canal != "reunion" {
    throw "canal desconocido: " + canal + " (esperado: llamada | email | reunion)"
}

[
    #{
        op: "create",
        entity: "Interaccion",
        id: int_id,
        data: #{
            id:         int_id,
            cliente_id: input.ids.cliente,
            canal:      canal,
            nota:       input.params.nota,
            timestamp:  input.params.timestamp,
        },
    },
]
