feat: SMTP salida propio en webhook de soporte

This commit is contained in:
Lizandro Guarnizo
2026-07-30 12:19:56 -05:00
parent 333fe03de0
commit 03b18418eb
5 changed files with 203 additions and 10 deletions
+9
View File
@@ -15,6 +15,15 @@ type SoporteWebhookConfig struct {
ResponderAuto bool `json:"responder_auto" gorm:"column:responder_auto;default:true"`
MensajeAuto string `json:"mensaje_auto" gorm:"column:mensaje_auto;type:text"`
AsignarA *uint `json:"asignar_a" gorm:"column:asignar_a;index"` // auto-asignar tickets a este user
// SMTP salida para notificaciones y auto-respuesta
SmtpHost string `json:"smtp_host" gorm:"column:smtp_host;size:255"`
SmtpPort int `json:"smtp_port" gorm:"column:smtp_port;default:587"`
SmtpUsername string `json:"smtp_username" gorm:"column:smtp_username;size:255"`
SmtpPassword string `json:"smtp_password" gorm:"column:smtp_password;size:255"` // cifrado AES
SmtpEncryption string `json:"smtp_encryption" gorm:"column:smtp_encryption;size:20;default:'tls'"` // tls|starttls|none
SmtpFromAddr string `json:"smtp_from_addr" gorm:"column:smtp_from_addr;size:255"`
SmtpFromName string `json:"smtp_from_name" gorm:"column:smtp_from_name;size:255"`
}
func (SoporteWebhookConfig) TableName() string { return "soporte_webhook_config" }
+11
View File
@@ -56,3 +56,14 @@ func TestSoporteWebhookConfigAsignarANil(t *testing.T) {
t.Errorf("AsignarA debe ser nil por defecto, got %v", *cfg.AsignarA)
}
}
func TestSoporteWebhookConfigSmtpDefaults(t *testing.T) {
cfg := SoporteWebhookConfig{Nombre: "SMTP Test"}
// Go zero values — los defaults reales los aplica GORM o el controller
if cfg.SmtpHost != "" {
t.Errorf("SmtpHost debe ser vacío por defecto, got %q", cfg.SmtpHost)
}
if cfg.SmtpPort != 0 {
t.Errorf("SmtpPort debe ser 0 en Go, got %d", cfg.SmtpPort)
}
}