using Model;
using Model.Entity.Asset;
using SqlSugar;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Service.Interface
{
///
/// 设备台账服务接口(资产管理)
///
public interface IEquipmentService : IBaseService
{
///
/// 分页查询设备台账(支持按关键字、分类、状态筛选)
///
/// 页码(从1开始)
/// 每页数量
/// 总页数(输出参数)
/// 关键字(模糊匹配设备编号/名称)
/// 设备分类Id(0表示不过滤)
/// 设备状态(null表示不过滤)
/// 返回包含分页数据的 Result
Task>> GetPagedAsync(int pageIndex, int pageSize, RefAsync total,
string? keyword, long categoryId = 0, EquipmentStatusEnum? status = null);
///
/// 根据 Id 获取设备台账详情
///
/// 主键 Id
/// 返回包含设备详情的 Result
Task> GetByIdAsync(long id);
///
/// 更新设备台账
///
/// 设备实体(必须包含 Id)
/// 返回操作是否成功的 Result
Task> UpdateAsync(EquipmentEntity entity);
///
/// 软删除设备台账(置 IsDel = 1)
///
/// 主键 Id
/// 返回操作是否成功的 Result
Task> DeleteEquipmentAsync(long id);
///
/// 变更设备状态,并记录状态变更历史(事务保证一致性)
///
/// 设备 Id
/// 目标状态
/// 操作人
/// 变更原因/备注
/// 返回操作是否成功的 Result
Task> ChangeStatusAsync(long equipmentId, EquipmentStatusEnum toStatus, string? operatorName, string? remark);
///
/// 查询指定设备的状态变更历史记录(按变更时间倒序)
///
/// 设备 Id
/// 返回包含状态记录列表的 Result
Task>> GetStatusRecordsAsync(long equipmentId);
}
}