package model import ( "strings" "github.com/tech/sendico/pkg/merrors" ) // ContactRequest represents a contact form submission from the marketing site. type ContactRequest struct { Name string `json:"name"` Email string `json:"email"` Phone string `json:"phone"` Company string `json:"company"` Topic string `json:"topic"` Message string `json:"message"` } // Normalize trims whitespace from all string fields. func (cr *ContactRequest) Normalize() { if cr == nil { return } cr.Name = strings.TrimSpace(cr.Name) cr.Email = strings.TrimSpace(cr.Email) cr.Phone = strings.TrimSpace(cr.Phone) cr.Company = strings.TrimSpace(cr.Company) cr.Topic = strings.TrimSpace(cr.Topic) cr.Message = strings.TrimSpace(cr.Message) } // Validate ensures required contact request fields are present. func (cr *ContactRequest) Validate() error { if cr == nil { return merrors.InvalidArgument("request payload is empty", "request") } if (cr.Email == "") || (cr.Phone == "") { return merrors.InvalidArgument("email or phone must not be empty", "request.email", "request.phone") } return nil }