Bootstrap copied BFF and local accounts with public Sendico contracts (#34)

This commit is contained in:
Stephan D committed 2026-09-12 13:37:48 +02:00
1 parent 67dc5b5b1e
commit 7062672a87
556 files changed
+42291 -777

No files matched your search

+38
View File
@@ -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 == ""
}
+14
View File
@@ -0,0 +1,14 @@
package person
import "testing"
func TestNameWithFallbackUsesFallbackPerField(t *testing.T) {
name := Name{FirstName: " Ivan "}
fallback := Name{FirstName: "FallbackFirst", LastName: " Ivanov "}
got := name.WithFallback(fallback)
want := Name{FirstName: "Ivan", LastName: "Ivanov"}
if got != want {
t.Fatalf("name mismatch: got=%+v want=%+v", got, want)
}
}