From 3157ab474dd55de1db066f808432544522e3ac0f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Albert=20Esp=C3=ADn?= <albert@espin.ovh>
Date: Sun, 2 Mar 2025 12:12:32 +0100
Subject: [PATCH] products and categories

---
 pkg/types/mercadona/product.go | 49 ++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)
 create mode 100644 pkg/types/mercadona/product.go

diff --git a/pkg/types/mercadona/product.go b/pkg/types/mercadona/product.go
new file mode 100644
index 0000000..e9dbf3d
--- /dev/null
+++ b/pkg/types/mercadona/product.go
@@ -0,0 +1,49 @@
+package mercadona
+
+type Product struct {
+	ID     string `json:"id,omitempty"`
+	Slug   string `json:"slug,omitempty"`
+	Limit  int    `json:"limit,omitempty"`
+	Badges struct {
+		IsWater          bool `json:"is_water,omitempty"`
+		RequiresAgeCheck bool `json:"requires_age_check,omitempty"`
+	} `json:"badges,omitempty"`
+	Status     any    `json:"status,omitempty"`
+	Packaging  string `json:"packaging,omitempty"`
+	Published  bool   `json:"published,omitempty"`
+	ShareURL   string `json:"share_url,omitempty"`
+	Thumbnail  string `json:"thumbnail,omitempty"`
+	Categories []struct {
+		ID    int    `json:"id,omitempty"`
+		Name  string `json:"name,omitempty"`
+		Level int    `json:"level,omitempty"`
+		Order int    `json:"order,omitempty"`
+	} `json:"categories,omitempty"`
+	DisplayName       string `json:"display_name,omitempty"`
+	UnavailableFrom   any    `json:"unavailable_from,omitempty"`
+	PriceInstructions struct {
+		Iva                  int    `json:"iva,omitempty"`
+		IsNew                bool   `json:"is_new,omitempty"`
+		IsPack               bool   `json:"is_pack,omitempty"`
+		PackSize             any    `json:"pack_size,omitempty"`
+		UnitName             any    `json:"unit_name,omitempty"`
+		UnitSize             int    `json:"unit_size,omitempty"`
+		BulkPrice            string `json:"bulk_price,omitempty"`
+		UnitPrice            string `json:"unit_price,omitempty"`
+		ApproxSize           bool   `json:"approx_size,omitempty"`
+		SizeFormat           string `json:"size_format,omitempty"`
+		TotalUnits           any    `json:"total_units,omitempty"`
+		UnitSelector         bool   `json:"unit_selector,omitempty"`
+		BunchSelector        bool   `json:"bunch_selector,omitempty"`
+		DrainedWeight        any    `json:"drained_weight,omitempty"`
+		SellingMethod        int    `json:"selling_method,omitempty"`
+		TaxPercentage        string `json:"tax_percentage,omitempty"`
+		PriceDecreased       bool   `json:"price_decreased,omitempty"`
+		ReferencePrice       string `json:"reference_price,omitempty"`
+		MinBunchAmount       int    `json:"min_bunch_amount,omitempty"`
+		ReferenceFormat      string `json:"reference_format,omitempty"`
+		PreviousUnitPrice    string `json:"previous_unit_price,omitempty"`
+		IncrementBunchAmount int    `json:"increment_bunch_amount,omitempty"`
+	} `json:"price_instructions,omitempty"`
+	UnavailableWeekdays []any `json:"unavailable_weekdays,omitempty"`
+}