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>
This commit is contained in:
		
							
								
								
									
										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("status")] | ||||
|         [JsonPropertyName("status")] | ||||
|         [BsonRepresentation(BsonType.String)] | ||||
|         public ProductStatus Status { 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>(); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user