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; }