package com.ruoyi.web.modules.merchant.service;

import java.util.List;
import java.util.Map;
import com.ruoyi.web.modules.merchant.domain.BizMerchant;
import com.ruoyi.web.modules.merchant.dto.MerchantCertStatusDTO;
import com.ruoyi.web.modules.merchant.dto.MerchantCreateDTO;
import com.ruoyi.web.modules.merchant.vo.MerchantAdminUserOptionVO;
import com.ruoyi.web.modules.merchant.vo.MerchantMemberOptionVO;
import com.ruoyi.web.modules.merchant.vo.MerchantDeleteCheckVO;
import com.ruoyi.web.modules.merchant.vo.MerchantDetailVO;
import com.ruoyi.web.modules.merchant.vo.MerchantListVO;
import com.ruoyi.web.modules.merchant.vo.MerchantShopBriefVO;
import com.ruoyi.web.modules.merchant.vo.OpenShopCheckVO;

/**
 * 商户 Service
 */
public interface IMerchantService
{
    List<MerchantListVO> selectMerchantList(BizMerchant query);

    MerchantDetailVO selectMerchantDetail(Long merchantId);

    Map<String, Object> insertMerchant(MerchantCreateDTO merchant, String operator);

    List<MerchantAdminUserOptionVO> searchAdminUserOptions(String keyword);

    List<MerchantMemberOptionVO> searchMemberOptions(String keyword);

    Map<String, Object> updateMerchant(BizMerchant merchant, String operator);

    Map<String, Object> updateCertStatus(Long merchantId, MerchantCertStatusDTO dto, String operator);

    MerchantDeleteCheckVO deleteCheck(Long merchantId);

    void deleteMerchantByIds(Long[] merchantIds, String operator);

    List<MerchantListVO> selectSelectableList();

    OpenShopCheckVO openShopCheck(Long merchantId);

    List<MerchantShopBriefVO> listShops(Long merchantId);
}
