using FreeSql.DataAnnotations;
using F9WebAiTest.Domain.Enums.SYS.Gongyingshangs;
using F9WebAiTest.Domain.Events.SYS.Gongyingshangs;
namespace F9WebAiTest.Domain.Entities.SYS.Gongyingshangs;
///
/// 往来单位(供应商 / 客户):按业务类型(干茧/配件/副产品/生丝)与分组(供应商/客户)维护。
///
[Table(Name = "sys_gongyingshang")]
public class Gongyingshang : AggregateRoot
{
/// 业务类型
[Column(Name = "businesstype")]
public Gys_Type_Enum Type { get; private set; }
/// 往来单位名称
[Column(Name = "name")]
public string Name { get; private set; }
/// 电话
[Column(Name = "phone")]
public string Phone { get; private set; }
/// 联系人
[Column(Name = "lianxiren")]
public string Lianxiren { get; private set; }
/// 地址
[Column(Name = "address")]
public string Address { get; private set; }
/// 拼音简码
[Column(Name = "pinyin")]
public string Pinyin { get; private set; }
/// 分组(供应商/客户)
[Column(Name = "businessgroup")]
public Gys_Group_Enum BusinessGroup { get; private set; }
/// 销售类型(内销/外销;历史数据中的 0 表示未设置)
[Column(Name = "saletype")]
public Gys_SaleType_Enum SaleType { get; private set; }
public Gongyingshang() { }
public Gongyingshang(long id, Gys_Type_Enum type, string name, string phone, string lianxiren, string address,
string pinyin, Gys_Group_Enum businessGroup, Gys_SaleType_Enum saleType)
{
Id = id;
Type = type;
Name = name;
Phone = phone;
Lianxiren = lianxiren;
Address = address;
Pinyin = pinyin;
BusinessGroup = businessGroup;
SaleType = saleType;
AddDomainEvent(new Gongyingshang_ChangedDomainEvent(Id));
}
public void Update(Gys_Type_Enum type, string name, string phone, string lianxiren, string address,
string pinyin, Gys_Group_Enum businessGroup, Gys_SaleType_Enum saleType)
{
Type = type;
Name = name;
Phone = phone;
Lianxiren = lianxiren;
Address = address;
Pinyin = pinyin;
BusinessGroup = businessGroup;
SaleType = saleType;
AddDomainEvent(new Gongyingshang_ChangedDomainEvent(Id));
}
public void Deleted() => AddDomainEvent(new Gongyingshang_ChangedDomainEvent(Id));
}