Files
sendico/api/notification/internal/server/notificationimp/telegram/contact.go
2026-02-10 20:40:23 +01:00

71 lines
2.0 KiB
Go

package telegram
import (
"strings"
"github.com/tech/sendico/pkg/model"
)
const legacyContactRequestTopicSignup = "signup_request"
func newContactRequestTemplate(request *model.ContactRequest) messageTemplate {
if request == nil {
request = &model.ContactRequest{}
}
switch normalizeContactRequestTopic(request.Topic) {
case model.ContactRequestTopicAccountVerificationCompleted:
return newAccountVerificationCompletedTemplate(request)
case model.ContactRequestTopicSignupCompleted:
return newSignupCompletedTemplate(request)
default:
return newSiteContactTemplate(request)
}
}
func normalizeContactRequestTopic(topic string) string {
normalized := strings.ToLower(strings.TrimSpace(topic))
if normalized == legacyContactRequestTopicSignup {
return model.ContactRequestTopicSignupCompleted
}
return normalized
}
func newAccountVerificationCompletedTemplate(request *model.ContactRequest) messageTemplate {
return messageTemplate{
title: "Account verification completed",
emphasize: []string{"verification completed"},
fields: []messageField{
{label: "Name", value: request.Name},
{label: "Email", value: request.Email},
},
}
}
func newSignupCompletedTemplate(request *model.ContactRequest) messageTemplate {
return messageTemplate{
title: "New signup completed",
emphasize: []string{"signup completed"},
fields: []messageField{
{label: "Organization", value: request.Company},
{label: "Name", value: request.Name},
{label: "Email", value: request.Email},
},
}
}
func newSiteContactTemplate(request *model.ContactRequest) messageTemplate {
return messageTemplate{
title: "New site request received",
emphasize: []string{"site request"},
fields: []messageField{
{label: "Name", value: request.Name},
{label: "Email", value: request.Email},
{label: "Phone", value: request.Phone},
{label: "Company", value: request.Company},
{label: "Topic", value: request.Topic},
{label: "Message", value: request.Message},
},
}
}