From bd27e8db7e7c09098bcd50e3e43fdd33943d6a7c Mon Sep 17 00:00:00 2001
From: Anton Sattarov <dirty.mew@gmail.com>
Date: Fri, 17 Jan 2025 09:53:19 +0100
Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?=
 =?UTF-8?q?=D0=BD=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20=D0=BA=D0=BE=D0=BF?=
 =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D1=84=D0=B8?=
 =?UTF-8?q?=D0=BB=D1=8C=D1=82=D1=80=D0=B0=20items?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 pkg/items/service.go | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/pkg/items/service.go b/pkg/items/service.go
index b193076b..747f1554 100644
--- a/pkg/items/service.go
+++ b/pkg/items/service.go
@@ -74,6 +74,22 @@ func NewFilter(params ...interface{}) *Filter {
 	return f
 }
 
+func (f *Filter) Clone() *Filter {
+	if f == nil {
+		return nil
+	}
+	clone := &Filter{
+		ID:     make([]string, len(f.ID)),
+		Data:   make([]*filter.Filter, len(f.Data)),
+		Q:      make([]string, len(f.Q)),
+		Search: f.Search,
+	}
+	copy(clone.ID, f.ID)
+	copy(clone.Data, f.Data)
+	copy(clone.Q, f.Q)
+	return clone
+}
+
 // AggregateExpRe - формат, которому должна соответствовать формула расчета данных
 var AggregateExpRe = regexp.MustCompile(`([a-zA-Z]+)\((.*)\)`)
 
-- 
GitLab