Compare commits

...

8 Commits

Author SHA1 Message Date
Loretta 1a9e0dcf0b Merge branch '4.80' into FruitBank_v0.0.8.0 2026-03-28 16:22:34 +01:00
Loretta 1898f4d517 Update DLL HintPaths to use $(Configuration); prod DB switch
Replaced hardcoded Debug paths in all .csproj files with $(Configuration) for AyCode and FruitBank DLL references, enabling correct DLL resolution for any build configuration. Switched appsettings.json connection string to use the FruitBank_PROD database. Added a null check for StockTaking in StockSignalREndpointServer.cs to prevent possible null reference exceptions. Noted some encoding issues in .csproj comments and copyright fields. No other functional changes.
2026-03-24 18:30:43 +01:00
Loretta ced4b98908 Add serialization attributes and update to PROD config
Annotated core entities with AcBinarySerializable and ToonDescription for improved serialization and documentation. Updated appsettings.json to use the production database. Changed solution file to target Visual Studio 17. Added necessary using statements and metadata for entity classes.
2026-03-20 17:06:49 +01:00
Loretta e47c7c8f74 Remove IDE-specific workspace and layout files
Deleted .wsuo, DocumentLayout.json, and VSWorkspaceState.json files that store user-specific IDE state and metadata. This cleanup prevents sharing of personal or machine-specific settings in version control.
2026-02-03 18:24:17 +01:00
Loretta ca1ac2a2d1 Restore Product class and enums; add Toon metadata
Re-enable Product class and related enums in Nop.Core.Domain.Catalog, moving them from commented to active code. Add [ToonDescription] attributes to Product properties for enhanced documentation and serialization. Mark sensitive Customer fields with [ToonIgnore] to exclude them from Toon processing.
2026-01-17 09:19:46 +01:00
Loretta c0073815ae Add ToonDescription attributes to core entities and DTOs
Introduced ToonDescription annotations across DTO and entity classes to provide metadata, business rules, and documentation for classes and properties. Updated usings to include AyCode.Core.Serializers.Toons where needed. These changes improve code clarity and support tooling for documentation and code generation.
2026-01-15 11:34:06 +01:00
Loretta 954b99fcbc Add OrderStatus enum property to Order class
Introduced the OrderStatus property as an enum wrapper for OrderStatusId in the Order class. This enhances type safety and code readability by allowing direct use of the OrderStatus enum. The property is annotated with ToonDescription to clarify its purpose and business rule.
2026-01-15 11:33:51 +01:00
Loretta 7bcd601035 Add ToonDescription attributes for enhanced metadata support
Introduced Toon serialization/description attributes to CustomerDto, GenericAttribute, and OrderNote classes. Added table mapping and foreign key metadata, as well as necessary using statements, to improve serialization, documentation, and tooling capabilities.
2026-01-14 21:05:20 +01:00
32 changed files with 897 additions and 682 deletions

Binary file not shown.

View File

@ -1,47 +0,0 @@
{
"Version": 1,
"WorkspaceRootPath": "H:\\Applications\\Mango\\Source\\NopCommerce.Common\\4.70\\Libraries\\",
"Documents": [],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": -1,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:129:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
},
{
"$type": "Bookmark",
"Name": "ST:129:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
},
{
"$type": "Bookmark",
"Name": "ST:128:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
},
{
"$type": "Bookmark",
"Name": "ST:130:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
},
{
"$type": "Bookmark",
"Name": "ST:131:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
},
{
"$type": "Bookmark",
"Name": "ST:132:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
},
{
"$type": "Bookmark",
"Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
}
]
}
]
}
]
}

View File

@ -1,7 +0,0 @@
{
"ExpandedNodes": [
""
],
"SelectedNode": "\\H:\\Applications\\Mango\\Source\\NopCommerce.Common\\4.70\\Libraries",
"PreviewInSolutionExplorer": false
}

View File

@ -1,8 +1,15 @@
using Nop.Core.Domain.Common; using AyCode.Core.Serializers.Attributes;
using AyCode.Core.Serializers.Toons;
using Nop.Core.Domain.Catalog;
using Nop.Core.Domain.Common;
using Nop.Core.Domain.Customers; using Nop.Core.Domain.Customers;
namespace Mango.Nop.Core.Dtos; namespace Mango.Nop.Core.Dtos;
[AcBinarySerializable(false, true, false, true)]
[LinqToDB.Mapping.Table(Name = nameof(Customer))]
[System.ComponentModel.DataAnnotations.Schema.Table(nameof(Customer))]
[ToonDescription($"Data transfer object for {nameof(Customer)}", TypeRelation = ToonTypeRelation.DtoOf, RelatedTypes = [typeof(Customer)])]
public class CustomerDto : ModelDtoBase<Customer>, ISoftDeletedEntity public class CustomerDto : ModelDtoBase<Customer>, ISoftDeletedEntity
{ {
public string Username { get; set; } public string Username { get; set; }
@ -10,6 +17,7 @@ public class CustomerDto : ModelDtoBase<Customer>, ISoftDeletedEntity
public string FirstName { get; set; } public string FirstName { get; set; }
public string LastName { get; set; } public string LastName { get; set; }
[ToonDescription(BusinessRule = "get => $\"{LastName} {FirstName}\"")]
public string FullName => $"{LastName} {FirstName}"; public string FullName => $"{LastName} {FirstName}";
public int RegisteredInStoreId { get; set; } public int RegisteredInStoreId { get; set; }

View File

@ -1,4 +1,5 @@
using AyCode.Core.Extensions; using AyCode.Core.Extensions;
using AyCode.Core.Serializers.Toons;
using AyCode.Core.Helpers; using AyCode.Core.Helpers;
using LinqToDB.Mapping; using LinqToDB.Mapping;
using Mango.Nop.Core.Entities; using Mango.Nop.Core.Entities;
@ -14,6 +15,7 @@ using System.Linq.Expressions;
namespace Mango.Nop.Core.Dtos; namespace Mango.Nop.Core.Dtos;
[ToonDescription("Base DTO for orders with items, customer and status tracking")]
public abstract class MgOrderDto<TOrderItemDto, TProductDto> : MgEntityBase, IModelDtoBase<Order>, IMgOrderDto<TOrderItemDto, TProductDto> where TOrderItemDto : IMgOrderItemDto<TProductDto> where TProductDto : IMgProductDto public abstract class MgOrderDto<TOrderItemDto, TProductDto> : MgEntityBase, IModelDtoBase<Order>, IMgOrderDto<TOrderItemDto, TProductDto> where TOrderItemDto : IMgOrderItemDto<TProductDto> where TProductDto : IMgProductDto
{ {
public Guid OrderGuid { get; set; } public Guid OrderGuid { get; set; }
@ -40,16 +42,19 @@ public abstract class MgOrderDto<TOrderItemDto, TProductDto> : MgEntityBase, IMo
[Association(ThisKey = nameof(Id), OtherKey = nameof(OrderNote.OrderId), CanBeNull = true)] [Association(ThisKey = nameof(Id), OtherKey = nameof(OrderNote.OrderId), CanBeNull = true)]
public List<OrderNote> OrderNotes { get; set; } public List<OrderNote> OrderNotes { get; set; }
[ToonDescription(Purpose = "Enum wrapper", BusinessRule = "get, set => OrderStatusId")]
public OrderStatus OrderStatus public OrderStatus OrderStatus
{ {
get => (OrderStatus)OrderStatusId; get => (OrderStatus)OrderStatusId;
set => OrderStatusId = (int)value; set => OrderStatusId = (int)value;
} }
[ToonDescription(Purpose = "Enum wrapper", BusinessRule = "get, set => ShippingStatusId")]
public ShippingStatus ShippingStatus public ShippingStatus ShippingStatus
{ {
get => (ShippingStatus)ShippingStatusId; get => (ShippingStatus)ShippingStatusId;
set => ShippingStatusId = (int)value; set => ShippingStatusId = (int)value;
} }
[ToonDescription(Purpose = "Enum wrapper", BusinessRule = "get, set => PaymentStatusId")]
public PaymentStatus PaymentStatus public PaymentStatus PaymentStatus
{ {
get => (PaymentStatus)PaymentStatusId; get => (PaymentStatus)PaymentStatusId;

View File

@ -1,4 +1,5 @@
using AyCode.Core.Extensions; using AyCode.Core.Extensions;
using AyCode.Core.Serializers.Toons;
using AyCode.Core.Helpers; using AyCode.Core.Helpers;
using LinqToDB.Mapping; using LinqToDB.Mapping;
using Mango.Nop.Core.Entities; using Mango.Nop.Core.Entities;
@ -8,6 +9,7 @@ using Nop.Core.Domain.Orders;
namespace Mango.Nop.Core.Dtos; namespace Mango.Nop.Core.Dtos;
[ToonDescription("Base DTO for order items with product association")]
public abstract class MgOrderItemDto<TProductDto> : MgEntityBase, IModelDtoBase<OrderItem>, IMgOrderItemDto<TProductDto> where TProductDto : IMgProductDto public abstract class MgOrderItemDto<TProductDto> : MgEntityBase, IModelDtoBase<OrderItem>, IMgOrderItemDto<TProductDto> where TProductDto : IMgProductDto
{ {
public Guid OrderItemGuid { get; set; } public Guid OrderItemGuid { get; set; }
@ -24,6 +26,7 @@ public abstract class MgOrderItemDto<TProductDto> : MgEntityBase, IModelDtoBase<
public string AttributesXml { get; set; } public string AttributesXml { get; set; }
public decimal? ItemWeight { get; set; } public decimal? ItemWeight { get; set; }
[ToonDescription(BusinessRule = "get => ProductDto?.Name ?? 'ProductDto is null!!!'")]
public string ProductName => ProductDto?.Name ?? "ProductDto is null!!!"; public string ProductName => ProductDto?.Name ?? "ProductDto is null!!!";
[Association(ThisKey = nameof(ProductId), OtherKey = nameof(BaseEntity.Id), CanBeNull = true)] [Association(ThisKey = nameof(ProductId), OtherKey = nameof(BaseEntity.Id), CanBeNull = true)]

View File

@ -1,10 +1,12 @@
using AyCode.Interfaces.Entities; using AyCode.Interfaces.Entities;
using AyCode.Core.Serializers.Toons;
using Mango.Nop.Core.Entities; using Mango.Nop.Core.Entities;
using Mango.Nop.Core.Interfaces; using Mango.Nop.Core.Interfaces;
//using Nop.Core.Domain.Catalog; //using Nop.Core.Domain.Catalog;
namespace Mango.Nop.Core.Dtos; namespace Mango.Nop.Core.Dtos;
[ToonDescription("Base DTO for products with warehouse and pricing")]
public abstract class MgProductDto : MgEntityBase, /*Product,*/ IMgProductDto//IModelDtoBase<Product>//, IDiscountSupported<DiscountProductMapping> public abstract class MgProductDto : MgEntityBase, /*Product,*/ IMgProductDto//IModelDtoBase<Product>//, IDiscountSupported<DiscountProductMapping>
{ {
//public int Id { get; set; } //public int Id { get; set; }

View File

@ -1,4 +1,5 @@
using AyCode.Interfaces.Entities; using AyCode.Interfaces.Entities;
using AyCode.Core.Serializers.Toons;
using LinqToDB.Mapping; using LinqToDB.Mapping;
using Mango.Nop.Core.Entities; using Mango.Nop.Core.Entities;
using Mango.Nop.Core.Interfaces; using Mango.Nop.Core.Interfaces;
@ -18,6 +19,7 @@ namespace Mango.Nop.Core.Dtos
public TProductDto ProductDto { get; set; } public TProductDto ProductDto { get; set; }
} }
[ToonDescription("Base DTO for stock quantity history with product")]
public abstract class MgStockQuantityHistoryDto<TProductDto> : MgEntityBase, IModelDtoBase<StockQuantityHistory>, public abstract class MgStockQuantityHistoryDto<TProductDto> : MgEntityBase, IModelDtoBase<StockQuantityHistory>,
IMgTStockQuantityHistoryDto<TProductDto> where TProductDto : IMgProductDto IMgTStockQuantityHistoryDto<TProductDto> where TProductDto : IMgProductDto
{ {

View File

@ -1,8 +1,10 @@
using AyCode.Interfaces.Entities; using AyCode.Interfaces.Entities;
using AyCode.Core.Serializers.Toons;
using Nop.Core; using Nop.Core;
namespace Mango.Nop.Core.Entities; namespace Mango.Nop.Core.Entities;
[ToonDescription("Base entity class with Id property and ToString override")]
public abstract class MgEntityBase : BaseEntity, IEntityInt public abstract class MgEntityBase : BaseEntity, IEntityInt
{ {
public override string ToString() public override string ToString()

View File

@ -1,4 +1,5 @@
using System.ComponentModel.Design; using System.ComponentModel.Design;
using AyCode.Core.Serializers.Toons;
using AyCode.Interfaces.Entities; using AyCode.Interfaces.Entities;
using AyCode.Interfaces.TimeStampInfo; using AyCode.Interfaces.TimeStampInfo;
using LinqToDB.Mapping; using LinqToDB.Mapping;
@ -13,6 +14,7 @@ public interface IMgStockTaking : IEntityInt, ITimeStampInfo
public bool IsReadyForClose(); public bool IsReadyForClose();
} }
[ToonDescription("Base entity for stock taking sessions with items")]
public abstract class MgStockTaking<TStockTakingItem> : MgEntityBase, IMgStockTaking where TStockTakingItem : class, IMgStockTakingItem public abstract class MgStockTaking<TStockTakingItem> : MgEntityBase, IMgStockTaking where TStockTakingItem : class, IMgStockTakingItem
{ {
public DateTime StartDateTime { get; set; } public DateTime StartDateTime { get; set; }

View File

@ -1,4 +1,5 @@
using AyCode.Interfaces.Entities; using AyCode.Interfaces.Entities;
using AyCode.Core.Serializers.Toons;
using AyCode.Interfaces.TimeStampInfo; using AyCode.Interfaces.TimeStampInfo;
using LinqToDB; using LinqToDB;
using LinqToDB.Mapping; using LinqToDB.Mapping;
@ -18,6 +19,7 @@ public interface IMgStockTakingItem : IEntityInt, ITimeStampInfo
public int MeasuredStockQuantity { get; set; } public int MeasuredStockQuantity { get; set; }
} }
[ToonDescription("Base entity for stock taking items with product association")]
public abstract class MgStockTakingItem<TStockTaking, TProduct> : MgEntityBase, IMgStockTakingItem public abstract class MgStockTakingItem<TStockTaking, TProduct> : MgEntityBase, IMgStockTakingItem
where TStockTaking : class, IMgStockTaking where TProduct : class, IMgProductDto where TStockTaking : class, IMgStockTaking where TProduct : class, IMgProductDto
{ {

View File

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net9.0</TargetFramework>
@ -18,25 +18,25 @@
<ItemGroup> <ItemGroup>
<Reference Include="AyCode.Core"> <Reference Include="AyCode.Core">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Core.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Core.dll</HintPath>
</Reference> </Reference>
<Reference Include="AyCode.Core.Server"> <Reference Include="AyCode.Core.Server">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Core.Server.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Core.Server.dll</HintPath>
</Reference> </Reference>
<Reference Include="AyCode.Entities"> <Reference Include="AyCode.Entities">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Entities.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Entities.dll</HintPath>
</Reference> </Reference>
<Reference Include="AyCode.Entities.Server"> <Reference Include="AyCode.Entities.Server">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Entities.Server.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Entities.Server.dll</HintPath>
</Reference> </Reference>
<Reference Include="AyCode.Interfaces"> <Reference Include="AyCode.Interfaces">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Interfaces.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Interfaces.dll</HintPath>
</Reference> </Reference>
<Reference Include="AyCode.Interfaces.Server"> <Reference Include="AyCode.Interfaces.Server">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Interfaces.Server.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Interfaces.Server.dll</HintPath>
</Reference> </Reference>
<Reference Include="AyCode.Utils"> <Reference Include="AyCode.Utils">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Utils.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Utils.dll</HintPath>
</Reference> </Reference>
</ItemGroup> </ItemGroup>

View File

@ -0,0 +1,22 @@
namespace Nop.Core.Domain.Catalog;
/// <summary>
/// Represents a backorder mode
/// </summary>
public enum BackorderMode
{
/// <summary>
/// No backorders
/// </summary>
NoBackorders = 0,
/// <summary>
/// Allow qty below 0
/// </summary>
AllowQtyBelow0 = 1,
/// <summary>
/// Allow qty below 0 and notify customer
/// </summary>
AllowQtyBelow0AndNotifyCustomer = 2,
}

View File

@ -1,4 +1,6 @@
//namespace Nop.Core.Domain.Common; //namespace Nop.Core.Domain.Common;
using AyCode.Core.Serializers.Toons;
using AyCode.Interfaces.Entities; using AyCode.Interfaces.Entities;

View File

@ -1,4 +1,6 @@
using Nop.Core.Domain.Common; using AyCode.Core.Serializers.Attributes;
using AyCode.Core.Serializers.Toons;
using Nop.Core.Domain.Common;
using Nop.Core.Domain.Tax; using Nop.Core.Domain.Tax;
namespace Nop.Core.Domain.Customers; namespace Nop.Core.Domain.Customers;
@ -6,6 +8,8 @@ namespace Nop.Core.Domain.Customers;
/// <summary> /// <summary>
/// Represents a customer /// Represents a customer
/// </summary> /// </summary>
[AcBinarySerializable(false, true, false, true)]
[ToonDescription("NopCommerce customer entity")]
public partial class Customer : BaseEntity, ISoftDeletedEntity public partial class Customer : BaseEntity, ISoftDeletedEntity
{ {
public Customer() public Customer()
@ -21,21 +25,25 @@ public partial class Customer : BaseEntity, ISoftDeletedEntity
/// <summary> /// <summary>
/// Gets or sets the username /// Gets or sets the username
/// </summary> /// </summary>
//[ToonIgnore]
public string Username { get; set; } public string Username { get; set; }
/// <summary> /// <summary>
/// Gets or sets the email /// Gets or sets the email
/// </summary> /// </summary>
//[ToonIgnore]
public string Email { get; set; } public string Email { get; set; }
/// <summary> /// <summary>
/// Gets or sets the first name /// Gets or sets the first name
/// </summary> /// </summary>
//[ToonIgnore]
public string FirstName { get; set; } public string FirstName { get; set; }
/// <summary> /// <summary>
/// Gets or sets the last name /// Gets or sets the last name
/// </summary> /// </summary>
//[ToonIgnore]
public string LastName { get; set; } public string LastName { get; set; }
/// <summary> /// <summary>

View File

@ -1,8 +1,11 @@
namespace Nop.Core.Domain.Customers; using AyCode.Core.Serializers.Attributes;
namespace Nop.Core.Domain.Customers;
/// <summary> /// <summary>
/// Represents a customer role /// Represents a customer role
/// </summary> /// </summary>
[AcBinarySerializable(false, true, false, true)]
public partial class CustomerRole : BaseEntity public partial class CustomerRole : BaseEntity
{ {
/// <summary> /// <summary>

View File

@ -1,8 +1,11 @@
namespace Nop.Core.Domain.Discounts; using AyCode.Core.Serializers.Attributes;
namespace Nop.Core.Domain.Discounts;
/// <summary> /// <summary>
/// Represents a discount-product mapping class /// Represents a discount-product mapping class
/// </summary> /// </summary>
[AcBinarySerializable(false, true, false, true)]
public partial class DiscountProductMapping : DiscountMapping public partial class DiscountProductMapping : DiscountMapping
{ {
/// <summary> /// <summary>

View File

@ -1,13 +1,20 @@
namespace Nop.Core.Domain.Common; using AyCode.Core.Serializers.Attributes;
using AyCode.Core.Serializers.Toons;
namespace Nop.Core.Domain.Common;
/// <summary> /// <summary>
/// Represents a generic attribute /// Represents a generic attribute
/// </summary> /// </summary>
[AcBinarySerializable(false, true, false, true)]
[ToonDescription("NopCommerce generic attribute for key-value storage", Purpose = "A flexible key-value store used to extend entities with custom business logic data without changing the database schema")]
public partial class GenericAttribute : BaseEntity public partial class GenericAttribute : BaseEntity
{ {
/// <summary> /// <summary>
/// Gets or sets the entity identifier /// Gets or sets the entity identifier
/// </summary> /// </summary>
///
[ToonDescription(Constraints = "polymorphic-fk(KeyGroup)")]
public int EntityId { get; set; } public int EntityId { get; set; }
/// <summary> /// <summary>
@ -23,6 +30,7 @@ public partial class GenericAttribute : BaseEntity
/// <summary> /// <summary>
/// Gets or sets the value /// Gets or sets the value
/// </summary> /// </summary>
[ToonDescription(Purpose = "Raw string representation of the Key's value")]
public string Value { get; set; } public string Value { get; set; }
/// <summary> /// <summary>

View File

@ -1,4 +1,6 @@
using Nop.Core.Domain.Common; using AyCode.Core.Serializers.Attributes;
using AyCode.Core.Serializers.Toons;
using Nop.Core.Domain.Common;
using Nop.Core.Domain.Payments; using Nop.Core.Domain.Payments;
using Nop.Core.Domain.Shipping; using Nop.Core.Domain.Shipping;
using Nop.Core.Domain.Tax; using Nop.Core.Domain.Tax;
@ -8,6 +10,8 @@ namespace Nop.Core.Domain.Orders;
/// <summary> /// <summary>
/// Represents an order /// Represents an order
/// </summary> /// </summary>
[AcBinarySerializable(false, true, false, true)]
[ToonDescription("NopCommerce order entity with payment and shipping")]
public partial class Order : BaseEntity, ISoftDeletedEntity public partial class Order : BaseEntity, ISoftDeletedEntity
{ {
#region Properties #region Properties
@ -299,6 +303,7 @@ public partial class Order : BaseEntity, ISoftDeletedEntity
/// <summary> /// <summary>
/// Gets or sets the order status /// Gets or sets the order status
/// </summary> /// </summary>
[ToonDescription(Purpose = "Enum wrapper", BusinessRule = "get, set => OrderStatusId")]
public OrderStatus OrderStatus public OrderStatus OrderStatus
{ {
get => (OrderStatus)OrderStatusId; get => (OrderStatus)OrderStatusId;
@ -308,6 +313,7 @@ public partial class Order : BaseEntity, ISoftDeletedEntity
/// <summary> /// <summary>
/// Gets or sets the payment status /// Gets or sets the payment status
/// </summary> /// </summary>
[ToonDescription(Purpose = "Enum wrapper", BusinessRule = "get, set => PaymentStatusId")]
public PaymentStatus PaymentStatus public PaymentStatus PaymentStatus
{ {
get => (PaymentStatus)PaymentStatusId; get => (PaymentStatus)PaymentStatusId;
@ -317,6 +323,7 @@ public partial class Order : BaseEntity, ISoftDeletedEntity
/// <summary> /// <summary>
/// Gets or sets the shipping status /// Gets or sets the shipping status
/// </summary> /// </summary>
[ToonDescription(Purpose = "Enum wrapper", BusinessRule = "get, set => ShippingStatusId")]
public ShippingStatus ShippingStatus public ShippingStatus ShippingStatus
{ {
get => (ShippingStatus)ShippingStatusId; get => (ShippingStatus)ShippingStatusId;
@ -326,6 +333,7 @@ public partial class Order : BaseEntity, ISoftDeletedEntity
/// <summary> /// <summary>
/// Gets or sets the customer tax display type /// Gets or sets the customer tax display type
/// </summary> /// </summary>
[ToonDescription(Purpose = "Enum wrapper", BusinessRule = "get, set => CustomerTaxDisplayTypeId")]
public TaxDisplayType CustomerTaxDisplayType public TaxDisplayType CustomerTaxDisplayType
{ {
get => (TaxDisplayType)CustomerTaxDisplayTypeId; get => (TaxDisplayType)CustomerTaxDisplayTypeId;

View File

@ -1,8 +1,14 @@
namespace Nop.Core.Domain.Orders; namespace Nop.Core.Domain.Orders;
using AyCode.Core.Serializers.Attributes;
using AyCode.Core.Serializers.Toons;
/// <summary> /// <summary>
/// Represents an order item /// Represents an order item
/// </summary> /// </summary>
[AcBinarySerializable(false, true, false, true)]
[ToonDescription("NopCommerce order item entity")]
public partial class OrderItem : BaseEntity public partial class OrderItem : BaseEntity
{ {
/// <summary> /// <summary>

View File

@ -1,13 +1,19 @@
namespace Nop.Core.Domain.Orders; using AyCode.Core.Serializers.Attributes;
using AyCode.Core.Serializers.Toons;
namespace Nop.Core.Domain.Orders;
/// <summary> /// <summary>
/// Represents an order note /// Represents an order note
/// </summary> /// </summary>
[AcBinarySerializable(false, true, false, true)]
[ToonDescription("NopCommerce order note entity")]
public partial class OrderNote : BaseEntity public partial class OrderNote : BaseEntity
{ {
/// <summary> /// <summary>
/// Gets or sets the order identifier /// Gets or sets the order identifier
/// </summary> /// </summary>
[ToonDescription($"Foreign key to parent {nameof(Order)}", ForeignKey = nameof(Order))]
public int OrderId { get; set; } public int OrderId { get; set; }
/// <summary> /// <summary>

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,7 @@
using AyCode.Interfaces.Entities; using AyCode.Core.Serializers.Attributes;
using AyCode.Core.Serializers.Toons;
using AyCode.Interfaces.Entities;
using LinqToDB.Mapping;
using Mango.Nop.Core.Interfaces; using Mango.Nop.Core.Interfaces;
namespace Nop.Core.Domain.Catalog; namespace Nop.Core.Domain.Catalog;
@ -17,6 +20,9 @@ public interface IMgStockQuantityHistory
/// <summary> /// <summary>
/// Represents a stock quantity change entry /// Represents a stock quantity change entry
/// </summary> /// </summary>
[AcBinarySerializable(false, true, false, true)]
[Table(Name = nameof(StockQuantityHistory))]
[ToonDescription("NopCommerce stock movement log", Purpose = "Audit trail for physical and logical stock movements")]
public partial class StockQuantityHistory : BaseEntity, IMgStockQuantityHistory public partial class StockQuantityHistory : BaseEntity, IMgStockQuantityHistory
{ {
/// <summary> /// <summary>

View File

@ -0,0 +1,17 @@
namespace Nop.Core.Domain.Catalog;
/// <summary>
/// Represents a download activation type
/// </summary>
public enum DownloadActivationType
{
/// <summary>
/// When order is paid
/// </summary>
WhenOrderIsPaid = 0,
/// <summary>
/// Manually
/// </summary>
Manually = 10,
}

View File

@ -0,0 +1,17 @@
namespace Nop.Core.Domain.Catalog;
/// <summary>
/// Represents a gift card type
/// </summary>
public enum GiftCardType
{
/// <summary>
/// Virtual
/// </summary>
Virtual = 0,
/// <summary>
/// Physical
/// </summary>
Physical = 1,
}

View File

@ -0,0 +1,22 @@
namespace Nop.Core.Domain.Catalog;
/// <summary>
/// Represents a low stock activity
/// </summary>
public enum LowStockActivity
{
/// <summary>
/// Nothing
/// </summary>
Nothing = 0,
/// <summary>
/// Disable buy button
/// </summary>
DisableBuyButton = 1,
/// <summary>
/// Unpublish
/// </summary>
Unpublish = 2,
}

View File

@ -0,0 +1,22 @@
namespace Nop.Core.Domain.Catalog;
/// <summary>
/// Represents a method of inventory management
/// </summary>
public enum ManageInventoryMethod
{
/// <summary>
/// Don't track inventory for product
/// </summary>
DontManageStock = 0,
/// <summary>
/// Track inventory for product
/// </summary>
ManageStock = 1,
/// <summary>
/// Track inventory for product by product attributes
/// </summary>
ManageStockByAttributes = 2,
}

View File

@ -0,0 +1,17 @@
namespace Nop.Core.Domain.Catalog;
/// <summary>
/// Represents a product type
/// </summary>
public enum ProductType
{
/// <summary>
/// Simple
/// </summary>
SimpleProduct = 5,
/// <summary>
/// Grouped (product with variants)
/// </summary>
GroupedProduct = 10,
}

View File

@ -0,0 +1,27 @@
namespace Nop.Core.Domain.Catalog;
/// <summary>
/// Represents a recurring product cycle period
/// </summary>
public enum RecurringProductCyclePeriod
{
/// <summary>
/// Days
/// </summary>
Days = 0,
/// <summary>
/// Weeks
/// </summary>
Weeks = 10,
/// <summary>
/// Months
/// </summary>
Months = 20,
/// <summary>
/// Years
/// </summary>
Years = 30,
}

View File

@ -0,0 +1,27 @@
namespace Nop.Core.Domain.Catalog;
/// <summary>
/// Represents a rental product period (for prices)
/// </summary>
public enum RentalPricePeriod
{
/// <summary>
/// Days
/// </summary>
Days = 0,
/// <summary>
/// Weeks
/// </summary>
Weeks = 10,
/// <summary>
/// Months
/// </summary>
Months = 20,
/// <summary>
/// Years
/// </summary>
Years = 30,
}

View File

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net9.0</TargetFramework>
@ -23,25 +23,25 @@
<ItemGroup> <ItemGroup>
<Reference Include="AyCode.Core"> <Reference Include="AyCode.Core">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Core.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Core.dll</HintPath>
</Reference> </Reference>
<Reference Include="AyCode.Core.Server"> <Reference Include="AyCode.Core.Server">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Core.Server.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Core.Server.dll</HintPath>
</Reference> </Reference>
<Reference Include="AyCode.Entities"> <Reference Include="AyCode.Entities">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Entities.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Entities.dll</HintPath>
</Reference> </Reference>
<Reference Include="AyCode.Entities.Server"> <Reference Include="AyCode.Entities.Server">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Entities.Server.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Entities.Server.dll</HintPath>
</Reference> </Reference>
<Reference Include="AyCode.Interfaces"> <Reference Include="AyCode.Interfaces">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Interfaces.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Interfaces.dll</HintPath>
</Reference> </Reference>
<Reference Include="AyCode.Interfaces.Server"> <Reference Include="AyCode.Interfaces.Server">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Interfaces.Server.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Interfaces.Server.dll</HintPath>
</Reference> </Reference>
<Reference Include="AyCode.Utils"> <Reference Include="AyCode.Utils">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Utils.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Utils.dll</HintPath>
</Reference> </Reference>
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net9.0</TargetFramework>
@ -25,25 +25,25 @@
<ItemGroup> <ItemGroup>
<Reference Include="AyCode.Core"> <Reference Include="AyCode.Core">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Core.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Core.dll</HintPath>
</Reference> </Reference>
<Reference Include="AyCode.Core.Server"> <Reference Include="AyCode.Core.Server">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Core.Server.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Core.Server.dll</HintPath>
</Reference> </Reference>
<Reference Include="AyCode.Entities"> <Reference Include="AyCode.Entities">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Entities.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Entities.dll</HintPath>
</Reference> </Reference>
<Reference Include="AyCode.Entities.Server"> <Reference Include="AyCode.Entities.Server">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Entities.Server.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Entities.Server.dll</HintPath>
</Reference> </Reference>
<Reference Include="AyCode.Interfaces"> <Reference Include="AyCode.Interfaces">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Interfaces.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Interfaces.dll</HintPath>
</Reference> </Reference>
<Reference Include="AyCode.Interfaces.Server"> <Reference Include="AyCode.Interfaces.Server">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Interfaces.Server.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Interfaces.Server.dll</HintPath>
</Reference> </Reference>
<Reference Include="AyCode.Utils"> <Reference Include="AyCode.Utils">
<HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Utils.dll</HintPath> <HintPath>..\..\..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Utils.dll</HintPath>
</Reference> </Reference>
</ItemGroup> </ItemGroup>