package com.zioinfo.signage.mapper;

import com.zioinfo.signage.domain.UpdateQueueVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@Mapper
public interface UpdateQueueMapper {
    List<UpdateQueueVo> findAll(@Param("tenantCode") String tenantCode,
                                @Param("storeId") Long storeId,
                                @Param("status") String status);
    List<UpdateQueueVo> findPending(@Param("tenantCode") String tenantCode,
                                    @Param("limit") int limit);
    UpdateQueueVo findById(@Param("id") Long id);
    int insert(UpdateQueueVo vo);
    int updateStatus(@Param("id") Long id, @Param("status") String status,
                     @Param("errorMessage") String errorMessage);
    int confirmByDeviceId(@Param("deviceId") String deviceId);
    int incrementRetry(@Param("id") Long id);
    long countPending(@Param("tenantCode") String tenantCode);
    long countFailed(@Param("tenantCode") String tenantCode);
    long countByStatus(@Param("tenantCode") String tenantCode, @Param("status") String status);
}
