package buildsvc import "strings" type GlobalDataInput struct { CompanyName string BusinessType string Username string Email string Phone string OrgNumber string StartDate string Mission string DescriptionShort string DescriptionLong string SiteLanguage string AddressLine1 string AddressLine2 string AddressCity string AddressRegion string AddressZIP string AddressCountry string } func BuildGlobalData(input GlobalDataInput) map[string]any { globalData := map[string]any{} setIfNotEmpty(globalData, "companyName", input.CompanyName) setIfNotEmpty(globalData, "businessType", input.BusinessType) setIfNotEmpty(globalData, "username", input.Username) setIfNotEmpty(globalData, "email", input.Email) setIfNotEmpty(globalData, "phone", input.Phone) setIfNotEmpty(globalData, "orgNumber", input.OrgNumber) setIfNotEmpty(globalData, "startDate", input.StartDate) setIfNotEmpty(globalData, "mission", input.Mission) setIfNotEmpty(globalData, "descriptionShort", input.DescriptionShort) setIfNotEmpty(globalData, "descriptionLong", input.DescriptionLong) setIfNotEmpty(globalData, "siteLanguage", input.SiteLanguage) address := map[string]any{} setIfNotEmpty(address, "line1", input.AddressLine1) setIfNotEmpty(address, "line2", input.AddressLine2) setIfNotEmpty(address, "city", input.AddressCity) setIfNotEmpty(address, "region", input.AddressRegion) setIfNotEmpty(address, "zip", input.AddressZIP) setIfNotEmpty(address, "country", input.AddressCountry) if len(address) > 0 { globalData["address"] = address } return globalData } func FilterGlobalData(input map[string]any) map[string]any { if len(input) == 0 { return map[string]any{} } globalData := map[string]any{} setStringIfPresent(globalData, "companyName", input["companyName"]) setStringIfPresent(globalData, "businessType", input["businessType"]) setStringIfPresent(globalData, "username", input["username"]) setStringIfPresent(globalData, "email", input["email"]) setStringIfPresent(globalData, "phone", input["phone"]) setStringIfPresent(globalData, "orgNumber", input["orgNumber"]) setStringIfPresent(globalData, "startDate", input["startDate"]) setStringIfPresent(globalData, "mission", input["mission"]) setStringIfPresent(globalData, "descriptionShort", input["descriptionShort"]) setStringIfPresent(globalData, "descriptionLong", input["descriptionLong"]) setStringIfPresent(globalData, "siteLanguage", input["siteLanguage"]) address := map[string]any{} if rawAddress, ok := input["address"]; ok { if sourceAddress, ok := rawAddress.(map[string]any); ok { setStringIfPresent(address, "line1", sourceAddress["line1"]) setStringIfPresent(address, "line2", sourceAddress["line2"]) setStringIfPresent(address, "city", sourceAddress["city"]) setStringIfPresent(address, "region", sourceAddress["region"]) setStringIfPresent(address, "zip", sourceAddress["zip"]) setStringIfPresent(address, "country", sourceAddress["country"]) } } if len(address) > 0 { globalData["address"] = address } return globalData } func setIfNotEmpty(m map[string]any, key, value string) { if strings.TrimSpace(value) == "" { return } m[key] = strings.TrimSpace(value) } func setStringIfPresent(target map[string]any, key string, raw any) { value, ok := raw.(string) if !ok { return } setIfNotEmpty(target, key, value) }