From ad7b1bd98371d43290621ce7b45f38106b2fb194 Mon Sep 17 00:00:00 2001 From: Ignacio Gomez Date: Sun, 22 Jun 2025 01:58:31 -0600 Subject: [PATCH] re-factor in adapters --- .../{FurnitureModel.cs => FurnitureBase.cs} | 6 +++- Inventory/FurnitureVariant.cs | 26 ++++++++++++++++ Inventory/InventoryItem.cs | 30 ++++--------------- 3 files changed, 37 insertions(+), 25 deletions(-) rename Inventory/{FurnitureModel.cs => FurnitureBase.cs} (89%) create mode 100644 Inventory/FurnitureVariant.cs diff --git a/Inventory/FurnitureModel.cs b/Inventory/FurnitureBase.cs similarity index 89% rename from Inventory/FurnitureModel.cs rename to Inventory/FurnitureBase.cs index 8da7253..cc692b2 100644 --- a/Inventory/FurnitureModel.cs +++ b/Inventory/FurnitureBase.cs @@ -5,7 +5,7 @@ using System.Text.Json.Serialization; namespace Core.Adapters.Lib { [CollectionAttributeName("Furniture")] - public class FurnitureModel : Document + public class FurnitureBase : Document { [BsonElement("modelName")] [JsonPropertyName("modelName")] @@ -34,6 +34,10 @@ namespace Core.Adapters.Lib [BsonElement("maintenanceNotes")] [JsonPropertyName("maintenanceNotes")] public string MaintenanceNotes { get; set; } = null!; + + [BsonElement("variantIds")] + [JsonPropertyName("variantIds")] + public List VariantIds { get; set; } = new(); } public class Dimensions diff --git a/Inventory/FurnitureVariant.cs b/Inventory/FurnitureVariant.cs new file mode 100644 index 0000000..a3bbf57 --- /dev/null +++ b/Inventory/FurnitureVariant.cs @@ -0,0 +1,26 @@ +using Core.Blueprint.Mongo; +using MongoDB.Bson.Serialization.Attributes; +using System.Text.Json.Serialization; + +namespace Core.Adapters.Lib +{ + [CollectionAttributeName("FurnitureVariants")] + public class FurnitureVariant : Document + { + [BsonElement("modelId")] + [JsonPropertyName("modelId")] + public string ModelId { get; set; } = null!; + + [BsonElement("name")] + [JsonPropertyName("name")] + public string Name { get; set; } = null!; + + [BsonElement("color")] + [JsonPropertyName("color")] + public string Color { get; set; } = null!; + + [BsonElement("line")] + [JsonPropertyName("line")] + public string Line { get; set; } = null!; + } +} diff --git a/Inventory/InventoryItem.cs b/Inventory/InventoryItem.cs index 20b5968..f5039ca 100644 --- a/Inventory/InventoryItem.cs +++ b/Inventory/InventoryItem.cs @@ -1,27 +1,13 @@ -using Core.Blueprint.Mongo; -using MongoDB.Bson.Serialization.Attributes; +using MongoDB.Bson.Serialization.Attributes; using System.Text.Json.Serialization; -namespace Core.Adapters.Lib +namespace Core.Adapters.Lib.Inventory { - [CollectionAttributeName("Inventory")] - public class InventoryItem : FurnitureModel + public abstract class InventoryItem : Document { - [BsonElement("modelId")] - [JsonPropertyName("modelId")] - public string ModelId { get; set; } = null!; // FK to FurnitureModel._id - - [BsonElement("name")] - [JsonPropertyName("name")] - public string Name { get; set; } = null!; - - [BsonElement("color")] - [JsonPropertyName("color")] - public string Color { get; set; } = null!; - - [BsonElement("line")] - [JsonPropertyName("line")] - public string Line { get; set; } = null!; + [BsonElement("stock")] + [JsonPropertyName("stock")] + public int Stock { get; set; } [BsonElement("price")] [JsonPropertyName("price")] @@ -31,10 +17,6 @@ namespace Core.Adapters.Lib [JsonPropertyName("currency")] public string Currency { get; set; } = null!; - [BsonElement("stock")] - [JsonPropertyName("stock")] - public int Stock { get; set; } - [BsonElement("categoryId")] [JsonPropertyName("categoryId")] public Guid CategoryId { get; set; }