using Furion.ConfigurableOptions;
namespace Admin.NET.Plugin.AiDOP;
///
/// 齐套检查的库存读取来源。配置节 AiDOP:Stock。
///
/// Source = Mes(默认,直读 165 InvMaster 实时值)| Local(本库 InvMaster 快照,降级用)。
/// 本库 InvMaster 是 165 的一次性拷贝、不随交易更新(实测 max UpdateTime 停在 2025-12-31),
/// 故齐套判定默认必须走 Mes;出问题时改配置回落,不需回滚代码。
///
[OptionsSettings("AiDOP:Stock")]
public sealed class AidopStockOptions : IConfigurableOptions
{
/// Mes | Local。
public string Source { get; set; } = "Mes";
/// 165 账套(InvMaster.Domain)。实测 165 仅有 8010 一个账套。
public string MesDomain { get; set; } = "8010";
///
/// 允许走 165 的租户。仅该租户在本库与 165 一一对应(实测同为 16022 行);
/// 其他租户(如 824585161322565)的库存与 165 无关,必须回落本库,否则会读到别人的库存。
///
public long MesTenantId { get; set; } = 797403760988229L;
/// 单次 IN 查询的物料数上限(防止 SQL 过长 / 参数过多)。
public int BatchSize { get; set; } = 500;
public bool IsMes =>
string.Equals(Source?.Trim(), "Mes", StringComparison.OrdinalIgnoreCase);
}