summaryrefslogtreecommitdiff
path: root/internal/inventory/inventory.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/inventory/inventory.go')
-rw-r--r--internal/inventory/inventory.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/internal/inventory/inventory.go b/internal/inventory/inventory.go
new file mode 100644
index 0000000..4fe3be0
--- /dev/null
+++ b/internal/inventory/inventory.go
@@ -0,0 +1,31 @@
+package inventory
+
+type Inventory struct {
+ Items []Item
+}
+
+type Item struct {
+ Title string
+ Quantity int
+}
+
+func (m *Inventory) Add(title string) {
+ for _, v := range m.Items {
+ if v.Title == title {
+ v.Quantity += 1
+ return
+ }
+ }
+ m.Items = append(m.Items, Item{Title: title, Quantity: 1})
+}
+
+func (m *Inventory) Del(title string) int {
+ for i, v := range m.Items {
+ if v.Title == title {
+ count := v.Quantity
+ m.Items = append(m.Items[:i], m.Items[i+1:]...)
+ return count
+ }
+ }
+ return 0
+}