feat: 扩展领域模型与配置

This commit is contained in:
贺爱泽
2025-12-01 13:26:05 +08:00
parent a08804658b
commit 5ddad07658
148 changed files with 8519 additions and 2 deletions

View File

@@ -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;
}

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

@@ -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
}