using F9WebAiTest.Application.Common;
using F9WebAiTest.Application.Dtos.SYS.Employees;
using F9WebAiTest.Domain.Enums.SYS.Employees;
using F9WebAiTest.Domain.Interfaces;
namespace F9WebAiTest.Application.Interfaces.Repositories.SYS.Employees;
/// 职工读仓储(返回读模型 DTO)
public interface IEmployeeReadRepository : IDInterface
{
/// 分页查询(部门含子部门;workStatus/banci 为 null 表示全部)
Task> GetPagedAsync(long depId, long worktypeId,
Employee_WorkStatus_Enum? workStatus, Prod_Banci_Enum? banci, string keyword, int pageIndex, int pageSize);
Task GetByIdForEditAsync(long id);
/// 变更记录(按日期倒序)
Task> GetChangeRecordsAsync(long employeeId);
/// 调岗记录(按日期倒序)
Task> GetTiaogangRecordsAsync(long employeeId);
/// 写变更记录
Task AddChangeRecordAsync(EmployeeChangeRecordDto record);
/// 写调岗记录
Task AddTiaogangRecordAsync(long employeeId, long oldDepId, long oldWorktypeId, long newDepId,
long newWorktypeId, DateTime date);
/// 部门名称(用于变更记录说明)
Task GetDepNameAsync(long depId);
/// 工种名称(用于变更记录说明)
Task GetWorktypeNameAsync(long worktypeId);
}