Compare commits
11 Commits
6c11246733
...
f8fbcfe26d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f8fbcfe26d | ||
|
|
e81551e5d1 | ||
|
|
0fcf1146f8 | ||
|
|
d713359512 | ||
|
|
163eb0e5aa | ||
|
|
7866ef07d5 | ||
|
|
df50e72359 | ||
|
|
a266aa5001 | ||
|
|
4358891b24 | ||
|
|
feee4ebdfa | ||
|
|
4a241e401e |
@ -30,6 +30,6 @@ namespace Core.Adapters.Lib
|
||||
|
||||
[BsonElement("attributes")]
|
||||
[JsonPropertyName("attributes")]
|
||||
public Dictionary<string, object> Attributes { get; set; } = [];
|
||||
public Dictionary<string, string> Attributes { get; set; } = [];
|
||||
}
|
||||
}
|
||||
|
||||
59
Inventory/ProductAdapter.cs
Normal file
59
Inventory/ProductAdapter.cs
Normal 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
38
Inventory/TagAdapter.cs
Normal 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!;
|
||||
}
|
||||
}
|
||||
22
Inventory/TagOverrideAdapter.cs
Normal file
22
Inventory/TagOverrideAdapter.cs
Normal 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!;
|
||||
}
|
||||
}
|
||||
26
Inventory/TagTypeAdapter.cs
Normal file
26
Inventory/TagTypeAdapter.cs
Normal 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!;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user