From 637d874716935e158b9893135696589f8c9df523 Mon Sep 17 00:00:00 2001
From: "daniel.naude" <danieln@bob.co.za>
Date: Fri, 17 May 2024 10:43:59 +0200
Subject: [PATCH] Add a deepCopy to TradingHours String function to prevent
 side effects

---
 date_utils/date_utils.go | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/date_utils/date_utils.go b/date_utils/date_utils.go
index c86bc6a..1e66fe9 100644
--- a/date_utils/date_utils.go
+++ b/date_utils/date_utils.go
@@ -9,6 +9,7 @@ import (
 
 	"github.com/araddon/dateparse"
 	"gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/errors"
+	"gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/utils"
 )
 
 const TimeZoneString = "Africa/Johannesburg"
@@ -337,7 +338,8 @@ func (t TradingHours) Validate() error {
 func (t TradingHours) String() string {
 	var result strings.Builder
 	const numberOfDaysInWeek = 7
-	weekdays, publicHolidays := t[:numberOfDaysInWeek], t[numberOfDaysInWeek]
+	copyOfT := utils.DeepCopy(t).(TradingHours)
+	weekdays, publicHolidays := copyOfT[:numberOfDaysInWeek], copyOfT[numberOfDaysInWeek]
 	weekdays = append(weekdays, weekdays[0]) // Add the first day (Sunday) to the end because we want Monday to be first in the string
 
 	rangeStartIndex := 1
-- 
GitLab