Bootstrap copied BFF and local accounts with public Sendico contracts (#34)
This commit is contained in:
1 parent
67dc5b5b1e
commit
7062672a87
556 files changed
+42291
-777
No files matched your search
@@ -0,0 +1,38 @@
|
||||
package person
|
||||
|
||||
import "strings"
|
||||
|
||||
// Name represents a person's first and last name as a reusable value object.
|
||||
type Name struct {
|
||||
FirstName string `bson:"firstName,omitempty" json:"first_name,omitempty"`
|
||||
LastName string `bson:"lastName,omitempty" json:"last_name,omitempty"`
|
||||
}
|
||||
|
||||
func (n Name) Trim() Name {
|
||||
return Name{
|
||||
FirstName: strings.TrimSpace(n.FirstName),
|
||||
LastName: strings.TrimSpace(n.LastName),
|
||||
}
|
||||
}
|
||||
|
||||
func (n Name) WithFallback(fallback Name) Name {
|
||||
n = n.Trim()
|
||||
fallback = fallback.Trim()
|
||||
if n.FirstName == "" {
|
||||
n.FirstName = fallback.FirstName
|
||||
}
|
||||
if n.LastName == "" {
|
||||
n.LastName = fallback.LastName
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
func (n Name) FullName() string {
|
||||
n = n.Trim()
|
||||
return strings.TrimSpace(n.FirstName + " " + n.LastName)
|
||||
}
|
||||
|
||||
func (n Name) IsZero() bool {
|
||||
n = n.Trim()
|
||||
return n.FirstName == "" && n.LastName == ""
|
||||
}
|
||||
Reference in new issue
Block a user