using SqlSugar;
namespace Admin.NET.Plugin.AiDOP.MaterialWarehouse.InventoryPosting.Entity;
///
/// DOP-owned L3 影子库存账实体公共基类(路线 B)。
/// 显式 snake_case 审计列;不继承 Admin.NET EntityBase(其 CreateUserId=long 与本账 create_user 语义不符),
/// 不挂 ITenantIdFilter —— L3 为 Shadow-only、无现有业务消费者,Repository 显式带 tenant_id + domain_code 过滤。
/// 主键 Id 由应用层用雪花(YitIdHelper)赋值,非数据库自增。
///
public abstract class AdoInvEntityBase
{
[SugarColumn(ColumnName = "id", ColumnDescription = "主键Id(雪花,应用赋值)", IsPrimaryKey = true, IsIdentity = false)]
public long Id { get; set; }
[SugarColumn(ColumnName = "tenant_id", ColumnDescription = "租户Id")]
public long TenantId { get; set; }
/// 域编码(工厂 / 旧 Domain 的 DOP 侧等价)。禁止硬编码 8010;由 DomainResolver 解析后写入。
[SugarColumn(ColumnName = "domain_code", ColumnDescription = "域编码(工厂/Domain)", Length = 20, IsNullable = false, DefaultValue = "")]
public string DomainCode { get; set; }
[SugarColumn(ColumnName = "create_time", ColumnDescription = "创建时间")]
public DateTime CreateTime { get; set; }
[SugarColumn(ColumnName = "create_user", ColumnDescription = "创建人", Length = 50, IsNullable = true)]
public string CreateUser { get; set; }
[SugarColumn(ColumnName = "update_time", ColumnDescription = "更新时间", IsNullable = true)]
public DateTime? UpdateTime { get; set; }
[SugarColumn(ColumnName = "update_user", ColumnDescription = "更新人", Length = 50, IsNullable = true)]
public string UpdateUser { get; set; }
}