using Model;
using Model.Dto.Asset;
using SqlSugar;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Service.Interface
{
///
/// 设备二维码 服务接口
/// 编码内容为扫码直达 URL:{baseUrl}/asset/ledger/equipment?id={equipmentId}
/// baseUrl 由 Controller 从 HTTP 请求构造(scheme://host)后传入,保持 Service 层框架无关
/// 生成时把 URL 写入 EquipmentEntity.QrCodeUrl;打印返回 HTML 页面(含 base64 二维码图)
///
public interface IQrCodeService
{
/// 生成二维码 URL 并写入设备(baseUrl 形如 http://host:port)
Task> GenerateAsync(long equipmentId, string baseUrl);
/// 生成二维码 PNG 图片字节(同时确保 URL 已写库)
Task> GenerateImageAsync(long equipmentId, string baseUrl);
/// 批量生成二维码 URL(逐个写库,单条失败不影响其它)
Task>> BatchGenerateAsync(long[] equipmentIds, string baseUrl);
/// 设备二维码列表(分页,关键字匹配 Code/Name;qrOnly=1 仅看已生成)
Task>> GetListPagedAsync(int pageIndex, int pageSize, RefAsync total, string? keyword = null, bool qrOnly = false);
/// 获取打印用 HTML 页面(含二维码 base64 图 + 设备信息,浏览器 Ctrl+P 打印)
Task> GetPrintHtmlAsync(long equipmentId, string baseUrl);
/// 绑定 RFID 编号到设备(覆盖式写入 RfidCode)
Task BindRfidAsync(long equipmentId, string rfidCode);
}
}