feat: 扩展领域模型与配置
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
using TakeoutSaaS.Domain.Inventory.Enums;
|
||||
using TakeoutSaaS.Shared.Abstractions.Entities;
|
||||
|
||||
namespace TakeoutSaaS.Domain.Inventory.Entities;
|
||||
|
||||
/// <summary>
|
||||
/// 库存调整记录。
|
||||
/// </summary>
|
||||
public sealed class InventoryAdjustment : MultiTenantEntityBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 对应的库存记录标识。
|
||||
/// </summary>
|
||||
public Guid InventoryItemId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 调整类型。
|
||||
/// </summary>
|
||||
public InventoryAdjustmentType AdjustmentType { get; set; } = InventoryAdjustmentType.Manual;
|
||||
|
||||
/// <summary>
|
||||
/// 调整数量,正数增加,负数减少。
|
||||
/// </summary>
|
||||
public int Quantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 原因说明。
|
||||
/// </summary>
|
||||
public string? Reason { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作人标识。
|
||||
/// </summary>
|
||||
public Guid? OperatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发生时间。
|
||||
/// </summary>
|
||||
public DateTime OccurredAt { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
using TakeoutSaaS.Shared.Abstractions.Entities;
|
||||
|
||||
namespace TakeoutSaaS.Domain.Inventory.Entities;
|
||||
|
||||
/// <summary>
|
||||
/// SKU 批次信息。
|
||||
/// </summary>
|
||||
public sealed class InventoryBatch : MultiTenantEntityBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 门店标识。
|
||||
/// </summary>
|
||||
public Guid StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// SKU 标识。
|
||||
/// </summary>
|
||||
public Guid ProductSkuId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 批次编号。
|
||||
/// </summary>
|
||||
public string BatchNumber { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 生产日期。
|
||||
/// </summary>
|
||||
public DateTime? ProductionDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 过期日期。
|
||||
/// </summary>
|
||||
public DateTime? ExpireDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 入库数量。
|
||||
/// </summary>
|
||||
public int Quantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 剩余数量。
|
||||
/// </summary>
|
||||
public int RemainingQuantity { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
using TakeoutSaaS.Shared.Abstractions.Entities;
|
||||
|
||||
namespace TakeoutSaaS.Domain.Inventory.Entities;
|
||||
|
||||
/// <summary>
|
||||
/// SKU 在门店的库存信息。
|
||||
/// </summary>
|
||||
public sealed class InventoryItem : MultiTenantEntityBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 门店标识。
|
||||
/// </summary>
|
||||
public Guid StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// SKU 标识。
|
||||
/// </summary>
|
||||
public Guid ProductSkuId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 批次编号,可为空表示混批。
|
||||
/// </summary>
|
||||
public string? BatchNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 可用库存。
|
||||
/// </summary>
|
||||
public int QuantityOnHand { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 已锁定库存(订单占用)。
|
||||
/// </summary>
|
||||
public int QuantityReserved { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 安全库存阈值。
|
||||
/// </summary>
|
||||
public int? SafetyStock { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 储位或仓位信息。
|
||||
/// </summary>
|
||||
public string? Location { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 过期日期。
|
||||
/// </summary>
|
||||
public DateTime? ExpireDate { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
namespace TakeoutSaaS.Domain.Inventory.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// 库存调整类型。
|
||||
/// </summary>
|
||||
public enum InventoryAdjustmentType
|
||||
{
|
||||
/// <summary>
|
||||
/// 手动盘点调整。
|
||||
/// </summary>
|
||||
Manual = 0,
|
||||
|
||||
/// <summary>
|
||||
/// 采购入库。
|
||||
/// </summary>
|
||||
Purchase = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 退货回库。
|
||||
/// </summary>
|
||||
Return = 2,
|
||||
|
||||
/// <summary>
|
||||
/// 报损。
|
||||
/// </summary>
|
||||
Damage = 3,
|
||||
|
||||
/// <summary>
|
||||
/// 过期销毁。
|
||||
/// </summary>
|
||||
Expiration = 4
|
||||
}
|
||||
Reference in New Issue
Block a user