add logo_url to landing questions; add color/foto_perfil extraction to vcard

This commit is contained in:
Lizandro Guarnizo
2026-05-28 22:44:42 -05:00
parent 52ce8638a8
commit f8b352eb03
2 changed files with 6 additions and 1 deletions
+1
View File
@@ -20,6 +20,7 @@ type LandingSession struct {
UserWebsite string `json:"user_website" gorm:"column:user_website"`
UserAddress string `json:"user_address" gorm:"column:user_address"`
SocialMedia string `json:"social_media" gorm:"column:social_media"`
LogoUrl string `json:"logo_url" gorm:"column:logo_url"`
// Historial de mensajes almacenado como JSON
AnswersJSON string `json:"-" gorm:"column:answers_json;type:text"`
HTMLContent string `json:"html_content,omitempty" gorm:"column:html_content;type:text"`
+5 -1
View File
@@ -56,6 +56,7 @@ var landingQuestions = []struct {
{"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", "¿Cuál es tu sitio web o portafolio?"},
{"logo_url", "¿Tienes un logo? Comparte la URL de tu logo (o escribe \"no\" si no tienes)"},
{"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 +96,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, "social_media": true, "user_address": true}
contactFields := map[string]bool{"user_name": true, "user_phone": true, "user_email": true, "user_website": true, "logo_url": true, "social_media": true, "user_address": true}
if userAnswersCount < len(landingQuestions) {
key := landingQuestions[userAnswersCount].Key
if contactFields[key] {
@@ -108,6 +109,8 @@ func LandingChat(c *fiber.Ctx) error {
session.UserEmail = req.Message
case "user_website":
session.UserWebsite = req.Message
case "logo_url":
session.LogoUrl = req.Message
case "social_media":
session.SocialMedia = req.Message
case "user_address":
@@ -166,6 +169,7 @@ func LandingGetSession(c *fiber.Ctx) error {
"user_website": session.UserWebsite,
"user_address": session.UserAddress,
"social_media": session.SocialMedia,
"logo_url": session.LogoUrl,
"vcard_included": session.VcardIncluded,
}
// Solo exponer el HTML si la sesión está generada (preview con marca de agua siempre)