feat: 新增加料管理接口与模板能力
All checks were successful
Build and Deploy TenantApi / build-and-deploy (push) Successful in 43s
All checks were successful
Build and Deploy TenantApi / build-and-deploy (push) Successful in 43s
This commit is contained in:
@@ -18,6 +18,11 @@ public sealed class ProductSpecTemplate : MultiTenantEntityBase
|
||||
/// </summary>
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 模板描述。
|
||||
/// </summary>
|
||||
public string Description { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 模板类型。
|
||||
/// </summary>
|
||||
@@ -33,6 +38,16 @@ public sealed class ProductSpecTemplate : MultiTenantEntityBase
|
||||
/// </summary>
|
||||
public bool IsRequired { get; set; } = true;
|
||||
|
||||
/// <summary>
|
||||
/// 最小可选数。
|
||||
/// </summary>
|
||||
public int MinSelect { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最大可选数。
|
||||
/// </summary>
|
||||
public int MaxSelect { get; set; } = 1;
|
||||
|
||||
/// <summary>
|
||||
/// 排序值。
|
||||
/// </summary>
|
||||
|
||||
@@ -22,6 +22,16 @@ public sealed class ProductSpecTemplateOption : MultiTenantEntityBase
|
||||
/// </summary>
|
||||
public decimal ExtraPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 库存数量。
|
||||
/// </summary>
|
||||
public int Stock { get; set; } = 999;
|
||||
|
||||
/// <summary>
|
||||
/// 是否启用。
|
||||
/// </summary>
|
||||
public bool IsEnabled { get; set; } = true;
|
||||
|
||||
/// <summary>
|
||||
/// 排序值。
|
||||
/// </summary>
|
||||
|
||||
@@ -13,5 +13,10 @@ public enum ProductSpecTemplateType
|
||||
/// <summary>
|
||||
/// 做法模板。
|
||||
/// </summary>
|
||||
Method = 1
|
||||
Method = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 加料模板。
|
||||
/// </summary>
|
||||
Addon = 2
|
||||
}
|
||||
|
||||
@@ -48,16 +48,31 @@ public interface IProductRepository
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<ProductSpecTemplate>> GetSpecTemplatesByStoreAsync(long tenantId, long storeId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 按门店读取加料模板。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<ProductSpecTemplate>> GetAddonTemplatesByStoreAsync(long tenantId, long storeId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 依据标识读取规格做法模板。
|
||||
/// </summary>
|
||||
Task<ProductSpecTemplate?> FindSpecTemplateByIdAsync(long templateId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 依据标识读取加料模板。
|
||||
/// </summary>
|
||||
Task<ProductSpecTemplate?> FindAddonTemplateByIdAsync(long templateId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 判断门店内模板名称是否已存在。
|
||||
/// </summary>
|
||||
Task<bool> ExistsSpecTemplateNameAsync(long tenantId, long storeId, string name, long? excludeTemplateId = null, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 判断门店内加料模板名称是否已存在。
|
||||
/// </summary>
|
||||
Task<bool> ExistsAddonTemplateNameAsync(long tenantId, long storeId, string name, long? excludeTemplateId = null, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 按模板读取规格做法选项。
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user