package com.haha.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.haha.entity.SyncRecord;
import com.haha.entity.SyncLog;

import java.util.List;
import java.util.Map;

/**
 * 数据同步服务接口
 */
public interface DataSyncService extends IService<SyncRecord> {

    /**
     * 同步设备列表（异步后台执行）
     */
    void syncDevices(Long operatorId, String operatorName);

    /**
     * 同步商品列表（异步后台执行）
     */
    void syncProducts(Long operatorId, String operatorName);

    /**
     * 获取同步记录列表
     * 
     * @param syncType 同步类型（可选）
     * @param status 同步状态（可选）
     * @param page 页码
     * @param pageSize 每页数量
     * @return 分页结果
     */
    Map<String, Object> getSyncRecordList(String syncType, Integer status, Integer page, Integer pageSize);

    /**
     * 获取同步日志列表
     * 
     * @param recordId 同步记录ID
     * @param page 页码
     * @param pageSize 每页数量
     * @return 分页结果
     */
    Map<String, Object> getSyncLogList(Long recordId, Integer page, Integer pageSize);

    /**
     * 获取同步统计信息
     *
     * @return 统计信息
     */
    Map<String, Object> getSyncStatistics();

    /**
     * 按设备编号同步单个设备
     * 从哈哈平台拉取设备列表并搜索指定设备，若存在则同步到本地数据库
     *
     * @param deviceId 设备编号
     * @return true 同步成功，false 跳过（防抖拦截或设备未找到）
     */
    boolean syncDeviceBySn(String deviceId);
}
