package com.zioinfo.mall.inventory.mapper;

import com.zioinfo.mall.inventory.MallStoreInventory;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface StoreInventoryMapper {
    /** 매장별 마스터 상품 리스트(ON/OFF 토글용). */
    List<MallStoreInventory> findByStore(@Param("storeId") Long storeId);
    MallStoreInventory findOne(@Param("storeId") Long storeId, @Param("productId") Long productId);
    /** 특정 ZIP의 매장들에서 가용한 상품 ID 집합(스토어프론트 필터). */
    List<Long> availableProductIds(@Param("storeId") Long storeId);
    int upsert(MallStoreInventory si);
    int setAvailable(@Param("storeId") Long storeId, @Param("productId") Long productId,
                     @Param("available") boolean available, @Param("updatedBy") String updatedBy);
    int adjustOnHand(@Param("storeId") Long storeId, @Param("productId") Long productId, @Param("delta") int delta);
}
