using TakeoutSaaS.Domain.Tenants.Entities; namespace TakeoutSaaS.Domain.Tenants.Repositories; /// /// 公告已读仓储。 /// public interface ITenantAnnouncementReadRepository { /// /// 按公告查询已读记录。 /// /// 租户 ID。 /// 公告 ID。 /// 取消标记。 /// 指定公告的已读列表。 Task> GetByAnnouncementAsync(long tenantId, long announcementId, CancellationToken cancellationToken = default); /// /// 批量按公告查询已读记录,可选按用户过滤。 /// /// 租户 ID。 /// 公告 ID 集合。 /// 用户 ID,空则不按用户筛选。 /// 取消标记。 /// 匹配条件的已读列表。 Task> GetByAnnouncementAsync(long tenantId, IEnumerable announcementIds, long? userId, CancellationToken cancellationToken = default); /// /// 查询指定用户对某公告的已读记录。 /// /// 租户 ID。 /// 公告 ID。 /// 用户 ID。 /// 取消标记。 /// 已读记录,未读返回 null。 Task FindAsync(long tenantId, long announcementId, long? userId, CancellationToken cancellationToken = default); /// /// 新增已读记录。 /// /// 已读实体。 /// 取消标记。 /// 异步任务。 Task AddAsync(TenantAnnouncementRead record, CancellationToken cancellationToken = default); /// /// 保存变更。 /// /// 取消标记。 /// 异步任务。 Task SaveChangesAsync(CancellationToken cancellationToken = default); }