package model import ( "net/mail" "strings" "git.sendico.io/tech/sxchnge/bff/pkg/merrors" ) func (i *Invitation) Validate() error { if i == nil { return merrors.InvalidArgument("invitation is required", "invitation") } if strings.TrimSpace(i.Content.Email) == "" { return merrors.InvalidArgument("invitation email must not be empty", "description.email") } trimmedEmail := strings.TrimSpace(i.Content.Email) parsed, err := mail.ParseAddress(trimmedEmail) if err != nil || parsed.Address != trimmedEmail { return merrors.InvalidArgument("invitation email is malformed", "description.email") } return nil }