-- Fase 0-C, Despliegue A: separar el texto que ve el cliente del contexto interno. -- -- ESTA MIGRACION ES PURAMENTE ADITIVA. No modifica ni una sola fila existente. -- El movimiento de datos (observaciones -> observacionesInternas) seria un -- Despliegue B posterior y NO se incluye aqui, por dos razones: -- -- 1. Rollback seguro. No hay migraciones `down` en este repo ni servicio de -- backup en docker-compose.coolify.yml. Si un UPDATE vaciara "observaciones" -- y el despliegue se revirtiera, el codigo anterior leeria NULL en todas las -- filas y el asesor veria sus notas desaparecidas: sin error y sin log. -- -- 2. El dato real no lo necesita. Al momento de escribir esto la unica fila de -- produccion con "observaciones" no vacias (UJ2606AG777, aprobada) contiene -- condiciones de pago dirigidas al cliente en segunda persona. Moverlas a -- "internas" ocultaria terminos ya acordados en un documento emitido. -- Esa fila ya esta clasificada correctamente donde esta. -- -- IF NOT EXISTS hace la sentencia idempotente si alguien la aplica a mano. ALTER TABLE "Cotizacion" ADD COLUMN IF NOT EXISTS "observacionesInternas" TEXT;