diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EShopProductsDomainSharedModule.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EShopProductsDomainSharedModule.cs index f3ac1c3a..6fee279c 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EShopProductsDomainSharedModule.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EShopProductsDomainSharedModule.cs @@ -1,7 +1,6 @@ using Volo.Abp.Modularity; using Volo.Abp.Localization; using EasyAbp.EShop.Products.Localization; -using EasyAbp.EShop.Stores; using Volo.Abp.Localization.ExceptionHandling; using Volo.Abp.Validation; using Volo.Abp.Validation.Localization; @@ -10,8 +9,7 @@ using Volo.Abp.VirtualFileSystem; namespace EasyAbp.EShop.Products { [DependsOn( - typeof(AbpValidationModule), - typeof(EShopStoresDomainSharedModule) + typeof(AbpValidationModule) )] public class EShopProductsDomainSharedModule : AbpModule { diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp.EShop.Products.Domain.Shared.csproj b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp.EShop.Products.Domain.Shared.csproj index 0cbe7f96..b1c1022e 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp.EShop.Products.Domain.Shared.csproj +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp.EShop.Products.Domain.Shared.csproj @@ -16,8 +16,4 @@ - - - - diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Products/InventoryStrategy.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Products/InventoryStrategy.cs new file mode 100644 index 00000000..950e8eac --- /dev/null +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Products/InventoryStrategy.cs @@ -0,0 +1,9 @@ +namespace EasyAbp.EShop.Products.Products +{ + public enum InventoryStrategy + { + NoNeed = 1, + ReduceAfterPlacing = 2, + ReduceAfterPayment = 4 + } +} \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Products/ProductInventoryReductionFailedEto.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Products/ProductInventoryReductionFailedEto.cs new file mode 100644 index 00000000..8325894d --- /dev/null +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Products/ProductInventoryReductionFailedEto.cs @@ -0,0 +1,10 @@ +using System; + +namespace EasyAbp.EShop.Products.Products +{ + [Serializable] + public class ProductInventoryReductionFailedEto + { + + } +} \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Categories/Category.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Categories/Category.cs index c648a5e3..6d1638dc 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Categories/Category.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Categories/Category.cs @@ -1,4 +1,5 @@ using System; +using JetBrains.Annotations; using Volo.Abp.Domain.Entities.Auditing; using Volo.Abp.MultiTenancy; @@ -7,5 +8,16 @@ namespace EasyAbp.EShop.Products.Categories public class Category : FullAuditedAggregateRoot, IMultiTenant { public virtual Guid? TenantId { get; protected set; } + + public virtual Guid? ParentCategoryId { get; protected set; } + + [NotNull] + public virtual string DisplayName { get; protected set; } + + [CanBeNull] + public virtual string Description { get; protected set; } + + [CanBeNull] + public virtual string MediaResources { get; protected set; } } } \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EShopProductsDomainModule.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EShopProductsDomainModule.cs index 54ed3948..154bc1de 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EShopProductsDomainModule.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EShopProductsDomainModule.cs @@ -1,10 +1,12 @@ -using Volo.Abp.Modularity; +using EasyAbp.EShop.Stores; +using Volo.Abp.Modularity; namespace EasyAbp.EShop.Products { [DependsOn( - typeof(EShopProductsDomainSharedModule) - )] + typeof(EShopProductsDomainSharedModule), + typeof(EShopStoresDomainSharedModule) + )] public class EShopProductsDomainModule : AbpModule { diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp.EShop.Products.Domain.csproj b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp.EShop.Products.Domain.csproj index ade16798..8a3b578d 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp.EShop.Products.Domain.csproj +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp.EShop.Products.Domain.csproj @@ -12,4 +12,8 @@ + + + + diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/ProductCategories/ProductCategory.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/ProductCategories/ProductCategory.cs index 32c0c697..40495aaa 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/ProductCategories/ProductCategory.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/ProductCategories/ProductCategory.cs @@ -10,5 +10,11 @@ namespace EasyAbp.EShop.Products.ProductCategories public virtual Guid? TenantId { get; protected set; } public virtual Guid? StoreId { get; protected set; } + + public virtual Guid CategoryId { get; protected set; } + + public virtual Guid ProductId { get; protected set; } + + public virtual int DisplayOrder { get; protected set; } } } \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/ProductTypes/ProductType.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/ProductTypes/ProductType.cs index 71f8dc7b..f905eb7c 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/ProductTypes/ProductType.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/ProductTypes/ProductType.cs @@ -1,10 +1,20 @@ using System; +using JetBrains.Annotations; using Volo.Abp.Domain.Entities.Auditing; +using Volo.Abp.MultiTenancy; namespace EasyAbp.EShop.Products.ProductTypes { public class ProductType : FullAuditedAggregateRoot { + public virtual string Name { get; protected set; } + + [NotNull] + public virtual string DisplayName { get; protected set; } + + [CanBeNull] + public virtual string Description { get; protected set; } + public virtual MultiTenancySides MultiTenancySide { get; protected set; } } } \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/IProductInventoryManager.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/IProductInventoryManager.cs new file mode 100644 index 00000000..d450a82e --- /dev/null +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/IProductInventoryManager.cs @@ -0,0 +1,7 @@ +namespace EasyAbp.EShop.Products.Products +{ + public interface IProductInventoryManager + { + + } +} \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/IProductPriceProvider.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/IProductPriceProvider.cs new file mode 100644 index 00000000..58c519b4 --- /dev/null +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/IProductPriceProvider.cs @@ -0,0 +1,7 @@ +namespace EasyAbp.EShop.Products.Products +{ + public interface IProductPriceProvider + { + + } +} \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/Product.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/Product.cs index 67ae1d68..72699549 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/Product.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/Product.cs @@ -1,5 +1,6 @@ using System; using EasyAbp.EShop.Stores.Stores; +using JetBrains.Annotations; using Volo.Abp.Domain.Entities.Auditing; using Volo.Abp.MultiTenancy; @@ -10,5 +11,17 @@ namespace EasyAbp.EShop.Products.Products public virtual Guid? TenantId { get; protected set; } public virtual Guid? StoreId { get; protected set; } + + public virtual Guid ProductTypeId { get; protected set; } + + [NotNull] + public virtual string DisplayName { get; protected set; } + + public virtual InventoryStrategy InventoryStrategy { get; protected set; } + + public virtual bool IsPublished { get; protected set; } + + [CanBeNull] + public virtual string MediaResources { get; protected set; } } } \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/ProductAttribute.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/ProductAttribute.cs index 27c1f1df..140177b4 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/ProductAttribute.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/ProductAttribute.cs @@ -1,10 +1,15 @@ using System; +using JetBrains.Annotations; using Volo.Abp.Domain.Entities.Auditing; namespace EasyAbp.EShop.Products.Products { public class ProductAttribute : FullAuditedEntity { + [NotNull] + public virtual string DisplayName { get; protected set; } + [CanBeNull] + public virtual string Description { get; protected set; } } } \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/ProductAttributeOption.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/ProductAttributeOption.cs index 11a66efa..17d3c387 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/ProductAttributeOption.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/ProductAttributeOption.cs @@ -1,10 +1,15 @@ using System; +using JetBrains.Annotations; using Volo.Abp.Domain.Entities.Auditing; namespace EasyAbp.EShop.Products.Products { public class ProductAttributeOption : FullAuditedEntity { + [NotNull] + public virtual string DisplayName { get; protected set; } + [CanBeNull] + public virtual string Description { get; protected set; } } } \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/ProductDetail.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/ProductDetail.cs new file mode 100644 index 00000000..132cc6b6 --- /dev/null +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/ProductDetail.cs @@ -0,0 +1,19 @@ +using System; +using JetBrains.Annotations; +using Volo.Abp.Domain.Entities; + +namespace EasyAbp.EShop.Products.Products +{ + public class ProductDetail : Entity + { + public virtual Guid ProductId { get; protected set; } + + [CanBeNull] + public virtual string Description { get; protected set; } + + public override object[] GetKeys() + { + return new object[] {ProductId}; + } + } +} \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/ProductSku.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/ProductSku.cs new file mode 100644 index 00000000..6b6815e1 --- /dev/null +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/ProductSku.cs @@ -0,0 +1,18 @@ +using System; +using Volo.Abp.Domain.Entities.Auditing; + +namespace EasyAbp.EShop.Products.Products +{ + public class ProductSku : FullAuditedEntity + { + public virtual string SerializedAttributeOptionIds { get; protected set; } + + public virtual decimal OriginalPrice { get; protected set; } + + public virtual decimal Price { get; protected set; } + + public virtual int Inventory { get; protected set; } + + public virtual int OrderMinQuantity { get; protected set; } + } +} \ No newline at end of file