feat(product): complete combo and detail editing data model
All checks were successful
Build and Deploy TenantApi / build-and-deploy (push) Successful in 47s

This commit is contained in:
2026-02-22 09:35:57 +08:00
parent f7c2ae4bac
commit d66879f5cf
22 changed files with 19099 additions and 75 deletions

View File

@@ -129,6 +129,21 @@ public sealed class CreateProductCommand : IRequest<ProductDto>
/// </summary>
public string? Description { get; set; }
/// <summary>
/// 排序权重。
/// </summary>
public int SortWeight { get; set; }
/// <summary>
/// 库存预警值。
/// </summary>
public int? WarningStock { get; set; }
/// <summary>
/// 打包费。
/// </summary>
public decimal? PackingFee { get; set; }
/// <summary>
/// 支持堂食。
/// </summary>

View File

@@ -134,6 +134,21 @@ public sealed record UpdateProductCommand : IRequest<ProductDto?>
/// </summary>
public string? Description { get; init; }
/// <summary>
/// 排序权重。
/// </summary>
public int SortWeight { get; init; }
/// <summary>
/// 库存预警值。
/// </summary>
public int? WarningStock { get; init; }
/// <summary>
/// 打包费。
/// </summary>
public decimal? PackingFee { get; init; }
/// <summary>
/// 支持堂食。
/// </summary>

View File

@@ -143,6 +143,21 @@ public sealed class ProductDto
/// </summary>
public string? Description { get; init; }
/// <summary>
/// 排序权重。
/// </summary>
public int SortWeight { get; init; }
/// <summary>
/// 库存预警值。
/// </summary>
public int? WarningStock { get; init; }
/// <summary>
/// 打包费。
/// </summary>
public decimal? PackingFee { get; init; }
/// <summary>
/// 支持堂食。
/// </summary>

View File

@@ -59,4 +59,9 @@ public sealed record ProductSkuDto
/// 排序。
/// </summary>
public int SortOrder { get; init; }
/// <summary>
/// 是否启用。
/// </summary>
public bool IsEnabled { get; init; }
}

View File

@@ -46,6 +46,9 @@ public sealed class CreateProductCommandHandler(IProductRepository productReposi
CoverImage = request.CoverImage?.Trim(),
GalleryImages = request.GalleryImages?.Trim(),
Description = request.Description?.Trim(),
SortWeight = request.SortWeight,
WarningStock = request.WarningStock,
PackingFee = request.PackingFee,
EnableDineIn = request.EnableDineIn,
EnablePickup = request.EnablePickup,
EnableDelivery = request.EnableDelivery,
@@ -89,6 +92,9 @@ public sealed class CreateProductCommandHandler(IProductRepository productReposi
CoverImage = product.CoverImage,
GalleryImages = product.GalleryImages,
Description = product.Description,
SortWeight = product.SortWeight,
WarningStock = product.WarningStock,
PackingFee = product.PackingFee,
EnableDineIn = product.EnableDineIn,
EnablePickup = product.EnablePickup,
EnableDelivery = product.EnableDelivery,

View File

@@ -109,6 +109,9 @@ public sealed class SearchProductsQueryHandler(
CoverImage = product.CoverImage,
GalleryImages = product.GalleryImages,
Description = product.Description,
SortWeight = product.SortWeight,
WarningStock = product.WarningStock,
PackingFee = product.PackingFee,
EnableDineIn = product.EnableDineIn,
EnablePickup = product.EnablePickup,
EnableDelivery = product.EnableDelivery,

View File

@@ -57,6 +57,9 @@ public sealed class UpdateProductCommandHandler(
existing.CoverImage = request.CoverImage?.Trim();
existing.GalleryImages = request.GalleryImages?.Trim();
existing.Description = request.Description?.Trim();
existing.SortWeight = request.SortWeight;
existing.WarningStock = request.WarningStock;
existing.PackingFee = request.PackingFee;
existing.EnableDineIn = request.EnableDineIn;
existing.EnablePickup = request.EnablePickup;
existing.EnableDelivery = request.EnableDelivery;
@@ -99,6 +102,9 @@ public sealed class UpdateProductCommandHandler(
CoverImage = product.CoverImage,
GalleryImages = product.GalleryImages,
Description = product.Description,
SortWeight = product.SortWeight,
WarningStock = product.WarningStock,
PackingFee = product.PackingFee,
EnableDineIn = product.EnableDineIn,
EnablePickup = product.EnablePickup,
EnableDelivery = product.EnableDelivery,

View File

@@ -41,6 +41,9 @@ public static class ProductMapping
CoverImage = product.CoverImage,
GalleryImages = product.GalleryImages,
Description = product.Description,
SortWeight = product.SortWeight,
WarningStock = product.WarningStock,
PackingFee = product.PackingFee,
EnableDineIn = product.EnableDineIn,
EnablePickup = product.EnablePickup,
EnableDelivery = product.EnableDelivery,
@@ -62,7 +65,8 @@ public static class ProductMapping
StockQuantity = sku.StockQuantity,
Weight = sku.Weight,
AttributesJson = sku.AttributesJson,
SortOrder = sku.SortOrder
SortOrder = sku.SortOrder,
IsEnabled = sku.IsEnabled
};
/// <summary>