using FreeSql.DataAnnotations; using F9WebAiTest.Domain.Events.SYS.Zq; namespace F9WebAiTest.Domain.Entities.SYS.Zq; /// /// 账期(基础数据):一段统计区间(默认按每月 28 日划分),可"扎帐"锁定该期间业务数据。 /// [Table(Name = "sys_zhangqi")] public class Zhangqi : AggregateRoot { /// 年度 [Column(Name = "year")] public int Year { get; private set; } /// 月份 [Column(Name = "month")] public int Month { get; private set; } /// 开始日期 [Column(Name = "start_date")] public DateTime StartDate { get; private set; } /// 截止日期 [Column(Name = "end_date")] public DateTime EndDate { get; private set; } /// 是否已扎帐(扎帐后期间内业务数据禁止修改) [Column(Name = "is_zha_zhang")] public bool IsZhaZhang { get; private set; } public Zhangqi() { } public Zhangqi(long id, int year, int month, DateTime startDate, DateTime endDate) { Id = id; Year = year; Month = month; StartDate = startDate; EndDate = endDate; IsZhaZhang = false; AddDomainEvent(new Zhangqi_ChangedDomainEvent(Id)); } public void Update(int year, int month, DateTime startDate, DateTime endDate) { Year = year; Month = month; StartDate = startDate; EndDate = endDate; AddDomainEvent(new Zhangqi_ChangedDomainEvent(Id)); } /// 扎帐 / 取消扎帐 public void SetZhaZhang(bool isZhaZhang) { IsZhaZhang = isZhaZhang; AddDomainEvent(new Zhangqi_ChangedDomainEvent(Id)); } public void Deleted() => AddDomainEvent(new Zhangqi_ChangedDomainEvent(Id)); }