replace cta with social_media question; add SocialMedia field to landing_session

This commit is contained in:
Lizandro Guarnizo
2026-05-28 20:49:35 -05:00
parent 06d85dc0bf
commit 52ce8638a8
4 changed files with 243 additions and 10 deletions
+6 -3
View File
@@ -52,11 +52,11 @@ var landingQuestions = []struct {
{"target", "¿A quién va dirigida tu landing page? ¿Cuál es tu cliente ideal?"},
{"offer", "¿Qué producto o servicio principal quieres destacar?"},
{"value_prop", "¿Cuál es tu propuesta de valor? ¿Por qué deberían elegirte a ti y no a la competencia?"},
{"cta", "¿Qué acción quieres que tome el visitante? (Ej: agendar cita, comprar, contactar, etc.)"},
{"colors", "¿Tienes colores de marca? Descríbelos o dime el estilo visual que prefieres. (Ej: moderno, minimalista, corporativo, colorido)"},
{"user_phone", "¿Cuál es tu número de teléfono o WhatsApp de contacto?"},
{"user_email", "¿Cuál es tu correo electrónico de contacto?"},
{"user_website", "¿Tienes sitio web o redes sociales que quieras enlazar? (Escríbelos o escribe \"no\" si no tienes)"},
{"user_website", "¿Cuál es tu sitio web o portafolio?"},
{"social_media", "¿Qué redes sociales tienes? Comparte tus perfiles de Instagram, LinkedIn, YouTube, TikTok, etc. (Ej: Instagram: @tunombre, LinkedIn: /in/tunombre)"},
{"user_address", "¿Tienes una dirección física o ciudad donde operas?"},
{"extras", "¿Hay algo más que quieras incluir? Testimonios, precios, galería, FAQ... (O escribe \"listo\" para generar ya tu landing)"},
}
@@ -95,7 +95,7 @@ func LandingChat(c *fiber.Ctx) error {
msgs = append(msgs, models.LandingMessage{Role: "user", Content: req.Message})
// Guardar campo estructurado si corresponde
contactFields := map[string]bool{"user_name": true, "user_phone": true, "user_email": true, "user_website": true, "user_address": true}
contactFields := map[string]bool{"user_name": true, "user_phone": true, "user_email": true, "user_website": true, "social_media": true, "user_address": true}
if userAnswersCount < len(landingQuestions) {
key := landingQuestions[userAnswersCount].Key
if contactFields[key] {
@@ -108,6 +108,8 @@ func LandingChat(c *fiber.Ctx) error {
session.UserEmail = req.Message
case "user_website":
session.UserWebsite = req.Message
case "social_media":
session.SocialMedia = req.Message
case "user_address":
session.UserAddress = req.Message
}
@@ -163,6 +165,7 @@ func LandingGetSession(c *fiber.Ctx) error {
"user_job": session.UserJob,
"user_website": session.UserWebsite,
"user_address": session.UserAddress,
"social_media": session.SocialMedia,
"vcard_included": session.VcardIncluded,
}
// Solo exponer el HTML si la sesión está generada (preview con marca de agua siempre)