UNPKG

geofind-contract-generator

Version:

Sistema profesional de generación de contratos de arrendamiento y envío de correos

104 lines (83 loc) 4.91 kB
const ContractGenerator = require('./src/contractGenerator'); const generator = new ContractGenerator(); const clientData = { nombre: "Ana María Rodríguez Sánchez", edad: "35", gmail: "ana.rodriguez@email.com", numero_telefonico: "555-987-6543", direccion: "Calle Secundaria 789, Colonia Centro, Guadalajara, Jalisco", curp: "ROSA750215JTLNDR05", // reference_number: "CTO-2024-002" }; const propertyData = { property_address: "Casa en residencial cerrado con vigilancia 24 horas en una zona exclusiva de la ciudad", property_type: "Casa", rental_period: "24 meses", monthly_rent: "25000", deposit_amount: "25000", arrendador_nombre: "Carlos Eduardo Mendoza Ruiz", clausulas: [ "1. DURACIÓN: El presente contrato tendrá una vigencia de 24 meses renovables automáticamente por periodos iguales salvo notificación por escrito de alguna de las partes con 30 días de anticipación a la fecha de terminación.", "2. RENTA: El pago mensual deberá realizarse antes del día 5 de cada mes mediante transferencia bancaria a la cuenta especificada, considerándose días inhábiles aquellos establecidos por la ley federal del trabajo.", "3. DEPÓSITO: El depósito en garantía será equivalente a una mensualidad de renta y será devuelto al término del contrato, previa verificación del inmueble y liquidación total de servicios pendientes.", "4. MANTENIMIENTO: El arrendatario se obliga a mantener la propiedad en óptimas condiciones de limpieza y funcionamiento, realizando reparaciones menores y reportando inmediatamente cualquier daño estructural o falla en los sistemas.", "5. SERVICIOS: El arrendador cubre los servicios de agua y mantenimiento de áreas comunes, mientras el arrendatario cubre luz, gas, internet, televisión por cable y demás servicios particulares del inmueble." ] }; function verifyContractRules(clientData, propertyData) { const rules = []; console.log("🔍 VERIFICANDO REGLAS DEL CONTRATO:"); console.log("-".repeat(50)); if (!clientData.nombre) rules.push("❌ Falta nombre del arrendatario"); else rules.push("✅ Nombre del arrendatario: COMPLETO"); if (!propertyData.property_address) rules.push("❌ Falta dirección de la propiedad"); else rules.push("✅ Dirección de propiedad: COMPLETA"); if (!propertyData.monthly_rent) rules.push("❌ Falta renta mensual"); else rules.push("✅ Renta mensual: DEFINIDA"); if (clientData.reference_number && !clientData.reference_number.startsWith('CTO-')) { rules.push("⚠️ Referencia no sigue formato estándar"); } else { rules.push("✅ Formato de referencia: CORRECTO"); } if (propertyData.clausulas && propertyData.clausulas.length > 0) { rules.push(`✅ Cláusulas personalizadas: ${propertyData.clausulas.length} ACTIVAS`); } else { rules.push("✅ Cláusulas por defecto: ACTIVAS"); } if (!clientData.gmail && !clientData.numero_telefonico) { rules.push("⚠️ Falta información de contacto del arrendatario"); } else { rules.push("✅ Información de contacto: COMPLETA"); } if (propertyData.property_address && propertyData.property_address.length > 50) { rules.push("✅ Dirección larga: ACTIVA función de salto de línea"); } if (propertyData.clausulas && propertyData.clausulas.some(clause => clause.length > 100)) { rules.push("✅ Cláusulas largas: ACTIVA función de texto multilínea"); } rules.forEach(rule => console.log(` ${rule}`)); console.log("-".repeat(50)); return rules; } async function generateSingleContract() { console.log("🚀 INICIANDO GENERACIÓN DE CONTRATO ÚNICO\n"); verifyContractRules(clientData, propertyData); try { console.log("📄 GENERANDO CONTRATO..."); const filepath = await generator.generateRentalContract(clientData, propertyData); console.log(`\n🎉 CONTRATO GENERADO EXITOSAMENTE:`); console.log(`📍 Ubicación: ${filepath}`); console.log(`📊 Características activadas:`); console.log(` • Encabezados con colores verde`); console.log(` • Secciones con fondos diferenciados`); console.log(` • Texto multilínea en cláusulas largas`); console.log(` • Espaciado mejorado en firmas`); console.log(` • Manejo de páginas múltiples`); console.log(` • Formato profesional completo`); } catch (error) { console.log(`\n❌ ERROR EN LA GENERACIÓN:`); console.log(` ${error.message}`); } console.log("\n🏁 PROCESO COMPLETADO"); } generateSingleContract();