
package com.tmerclub.cloud.delivery.mapper;

import com.tmerclub.cloud.delivery.dto.OutletConfigDTO;
import com.tmerclub.cloud.delivery.model.OutletConfig;
import com.tmerclub.cloud.delivery.vo.OutletConfigInfoVO;
import com.tmerclub.cloud.delivery.vo.OutletConfigVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 网点配置
 *
 * @author TRACK
 * @date 2023-08-23 14:48:23
 */
public interface OutletConfigMapper {

    /**
     * 获取网点配置列表
     * @param outletConfigDTO
     * @return 网点配置列表
     */
    List<OutletConfigVO> list(@Param("outletConfig") OutletConfigDTO outletConfigDTO);

    /**
     * 根据网点配置id获取网点配置
     *
     * @param outletConfigId 网点配置id
     * @return 网点配置
     */
    OutletConfig getByOutletConfigId(@Param("outletConfigId") Long outletConfigId);

    /**
     * 保存网点配置
     * @param outletConfig 网点配置
     */
    void save(@Param("outletConfig") OutletConfig outletConfig);

    /**
     * 更新网点配置
     * @param outletConfig 网点配置
     */
    void update(@Param("outletConfig") OutletConfig outletConfig);

    /**
     * 根据网点配置id删除网点配置
     * @param outletConfigId
     */
    void deleteById(@Param("outletConfigId") Long outletConfigId);

    /**
     * 检查网点配置是否重复
     * @param outletConfig
     * @return
     */
    int checkIsExist(@Param("outletConfig") OutletConfig outletConfig);

    /**
     * 取消默认
     * @param shopId
     * @param supplierId
     */
    void cancelDefault(@Param("shopId") Long shopId, @Param("supplierId") Long supplierId);

    /**
     * 设为/取消默认
     * @param outletConfigId
     */
    void setDefault(@Param("outletConfigId") Long outletConfigId);

    /**
     * 获取店铺网点配置列表
     * @param shopId
     * @param sysType
     * @return
     */
    List<OutletConfigInfoVO> listByShopId(@Param("shopId") Long shopId, @Param("sysType") Integer sysType);
}
