21 Commits

Author SHA1 Message Date
Oscar Morales
051ce0c89e Add Icon propertie in FurnitureBase and FurnitureVariant 2025-09-03 10:42:42 -06:00
d66a0241df feat: nuget 2025-09-02 13:57:12 -06:00
f8fbcfe26d feat: updated product status property name 2025-08-05 18:06:29 -06:00
e81551e5d1 Merge pull request 'feat: added ProductAdapter class' (#3) from feature/create-Product-and-ProductTag-CRUD-(adapters) into development
Reviewed-on: #3
Reviewed-by: Sergio Matías <sergio.matias@agilewebs.com>
2025-08-03 21:31:29 +00:00
0fcf1146f8 feat: added ProductAdapter class
- included relationship with TagAdapter
2025-08-03 14:53:06 -06:00
d713359512 Merge pull request 'Change ParentTagId type from string to string[] in TagAdapter' (#2) from feature/change-parenttagid-type into development
Reviewed-on: #2
Reviewed-by: efrain_marin <efrain.marin@agilewebs.com>
Reviewed-by: Sergio Matías <sergio.matias@agilewebs.com>
2025-08-01 22:11:47 +00:00
Oscar Morales
163eb0e5aa Change ParentTagId type from string to string[] in TagAdapter 2025-08-01 09:07:58 -06:00
7866ef07d5 Merge pull request 'Add tags adapters' (#1) from feature/add-tags-adapters into development
Reviewed-on: #1
Reviewed-by: Sergio Matías <sergio.matias@agilewebs.com>
2025-08-01 01:05:52 +00:00
Oscar Morales
df50e72359 Add tags adapters 2025-07-31 16:39:38 -06:00
Sergio Matias Urquin
a266aa5001 Merge branch 'feature/inventory' into development 2025-07-30 19:08:04 -06:00
4358891b24 Change type in dictionary 2025-06-27 20:51:57 -06:00
feee4ebdfa Fix type 2025-06-27 20:41:09 -06:00
6c11246733 fix Ids type 2025-06-27 20:21:47 -06:00
20776516fd Added bsontype 2025-06-27 20:15:51 -06:00
08cca3a9c0 Fix in inheritance 2025-06-27 19:34:39 -06:00
fcfb3e47e8 Fix in InventoryItem NameSpace 2025-06-22 02:23:35 -06:00
ad7b1bd983 re-factor in adapters 2025-06-22 01:58:31 -06:00
f6a80ba2ec Fix in namespace 2025-06-22 01:03:23 -06:00
e7b25ba91a Fixes in code 2025-06-22 01:00:28 -06:00
e33301f6af Fix in structure 2025-06-22 00:56:21 -06:00
18cb238b40 first version of inventory adapters 2025-06-22 00:47:44 -06:00
8 changed files with 280 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
using Core.Blueprint.Mongo;
using MongoDB.Bson.Serialization.Attributes;
using System.Text.Json.Serialization;
namespace Core.Adapters.Lib
{
[CollectionAttributeName("Furniture")]
public class FurnitureBase : Document
{
[BsonElement("modelName")]
[JsonPropertyName("modelName")]
public string ModelName { get; set; } = null!;
[BsonElement("material")]
[JsonPropertyName("material")]
public string Material { get; set; } = null!;
[BsonElement("condition")]
[JsonPropertyName("condition")]
public string Condition { get; set; } = null!;
[BsonElement("dimensions")]
[JsonPropertyName("dimensions")]
public Dimensions Dimensions { get; set; } = null!;
[BsonElement("baseDescription")]
[JsonPropertyName("baseDescription")]
public string BaseDescription { get; set; } = null!;
[BsonElement("representation")]
[JsonPropertyName("representation")]
public string Representation { get; set; } = null!;
[BsonElement("maintenanceNotes")]
[JsonPropertyName("maintenanceNotes")]
public string MaintenanceNotes { get; set; } = null!;
[BsonElement("variantIds")]
[JsonPropertyName("variantIds")]
public List<string> VariantIds { get; set; } = new();
[BsonElement("icon")]
[JsonPropertyName("icon")]
public string Icon { get; set; } = null!;
}
public class Dimensions
{
[BsonElement("width")]
[JsonPropertyName("width")]
public float Width { get; set; }
[BsonElement("height")]
[JsonPropertyName("height")]
public float Height { get; set; }
[BsonElement("depth")]
[JsonPropertyName("depth")]
public float Depth { get; set; }
}
}

View File

@@ -0,0 +1,30 @@
using Core.Blueprint.Mongo;
using MongoDB.Bson.Serialization.Attributes;
using System.Text.Json.Serialization;
namespace Core.Adapters.Lib
{
[CollectionAttributeName("FurnitureVariants")]
public class FurnitureVariant : InventoryItem
{
[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!;
[BsonElement("icon")]
[JsonPropertyName("icon")]
public string Icon { get; set; } = null!;
}
}

View File

@@ -0,0 +1,35 @@
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using System.Text.Json.Serialization;
namespace Core.Adapters.Lib
{
public abstract class InventoryItem : Document
{
[BsonElement("stock")]
[JsonPropertyName("stock")]
public int Stock { get; set; }
[BsonElement("price")]
[JsonPropertyName("price")]
public decimal Price { get; set; }
[BsonElement("currency")]
[JsonPropertyName("currency")]
public string Currency { get; set; } = null!;
[BsonElement("categoryId")]
[BsonRepresentation(BsonType.String)]
[JsonPropertyName("categoryId")]
public string CategoryId { get; set; }
[BsonElement("providerId")]
[BsonRepresentation(BsonType.String)]
[JsonPropertyName("providerId")]
public string ProviderId { get; set; }
[BsonElement("attributes")]
[JsonPropertyName("attributes")]
public Dictionary<string, string> Attributes { get; set; } = [];
}
}

View File

@@ -0,0 +1,59 @@
using Core.Blueprint.Mongo;
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using System.Text.Json.Serialization;
namespace Core.Adapters.Lib.Inventory
{
/// <summary>
/// Represents the possible statuses of a product.
/// </summary>
public enum ProductStatus
{
Active,
Inactive,
Discontinued
}
[CollectionAttributeName("Product")]
public class ProductAdapter : Document
{
/// <summary>
/// Gets or sets the foreign key to the owning Tenant.
/// </summary>
[BsonElement("tenantId")]
[JsonPropertyName("tenantId")]
public string TenantId { get; set; } = null!;
/// <summary>
/// Gets or sets the name of the product.
/// </summary>
[BsonElement("productName")]
[JsonPropertyName("productName")]
public string ProductName { get; set; } = null!;
/// <summary>
/// Gets or sets the description of the product.
/// </summary>
[BsonElement("description")]
[JsonPropertyName("description")]
public string Description { get; set; } = null!;
/// <summary>
/// Gets or sets the status of the product. Stored as a string in MongoDB.
/// </summary>
[BsonElement("productStatus")]
[JsonPropertyName("productStatus")]
[BsonRepresentation(BsonType.String)]
public ProductStatus ProductStatus { get; set; }
/// <summary>
/// Gets or sets the list of Tag Ids associated with this product.
/// This follows the standard MongoDB practice for many-to-many relationships
/// by embedding an array of references.
/// </summary>
[BsonElement("tagIds")]
[JsonPropertyName("tagIds")]
public List<ObjectId> TagIds { get; set; } = new List<ObjectId>();
}
}

38
Inventory/TagAdapter.cs Normal file
View File

@@ -0,0 +1,38 @@
using Core.Blueprint.Mongo;
using MongoDB.Bson.Serialization.Attributes;
using System.Text.Json.Serialization;
namespace Core.Adapters.Lib
{
[CollectionAttributeName("Tag")]
public class TagAdapter : Document
{
[BsonElement("tenantId")]
[JsonPropertyName("tenantId")]
public string TenantId { get; set; } = null!;
[BsonElement("tagName")]
[JsonPropertyName("tagName")]
public string TagName { get; set; } = null!;
[BsonElement("typeId")]
[JsonPropertyName("typeId")]
public string TypeId { get; set; } = null!;
[BsonElement("parentTagId")]
[JsonPropertyName("parentTagId")]
public string[] ParentTagId { get; set; } = null!;
[BsonElement("slug")]
[JsonPropertyName("slug")]
public string Slug { get; set; } = null!;
[BsonElement("displayOrder")]
[JsonPropertyName("displayOrder")]
public int DisplayOrder { get; set; }
[BsonElement("icon")]
[JsonPropertyName("icon")]
public string Icon { get; set; } = null!;
}
}

View File

@@ -0,0 +1,22 @@
using Core.Blueprint.Mongo;
using MongoDB.Bson.Serialization.Attributes;
using System.Text.Json.Serialization;
namespace Core.Adapters.Lib
{
[CollectionAttributeName("TagOverride")]
public class TagOverrideAdapter : Document
{
[BsonElement("tenantId")]
[JsonPropertyName("tenantId")]
public string TenantId { get; set; } = null!;
[BsonElement("baseTagId")]
[JsonPropertyName("baseTagId")]
public string BaseTagId { get; set; } = null!;
[BsonElement("overrideTagId")]
[JsonPropertyName("overrideTagId")]
public string OverrideTagId { get; set; } = null!;
}
}

View File

@@ -0,0 +1,26 @@
using Core.Blueprint.Mongo;
using MongoDB.Bson.Serialization.Attributes;
using System.Text.Json.Serialization;
namespace Core.Adapters.Lib
{
[CollectionAttributeName("TagType")]
public class TagTypeAdapter : Document
{
[BsonElement("tenantId")]
[JsonPropertyName("tenantId")]
public string TenantId { get; set; } = null!;
[BsonElement("typeName")]
[JsonPropertyName("typeName")]
public string TypeName { get; set; } = null!;
[BsonElement("level")]
[JsonPropertyName("level")]
public int Level { get; set; }
[BsonElement("parentTypeId")]
[JsonPropertyName("parentTypeId")]
public string ParentTypeId { get; set; } = null!;
}
}

9
nuget.config Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<!-- Tu BaGet primero -->
<add key="BaGet" value="https://nuget.dream-views.com/v3/index.json" protocolVersion="3" />
<!-- NuGet oficial como fallback (si quieres) -->
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
</configuration>