package shop.alien.storeplatform.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;
import shop.alien.entity.result.R;
import shop.alien.storeplatform.entity.StorePlatformBathFacility;

import java.util.List;

/**
 * 商户平台-洗浴设施及服务服务类
 *
 * @author system
 * @since 2025-01-XX
 */
public interface StorePlatformBathFacilityService extends IService<StorePlatformBathFacility> {

    /**
     * 根据ID查询设施
     *
     * @param id 设施ID
     * @return 设施信息
     */
    StorePlatformBathFacility getById(Integer id);

    /**
     * 根据门店ID查询设施列表
     *
     * @param storeId 门店ID
     * @return 设施列表
     */
    List<StorePlatformBathFacility> getListByStoreId(Integer storeId);

    /**
     * 根据门店ID和区域分类查询设施列表
     *
     * @param storeId         门店ID
     * @param facilityCategory 区域分类(1:洗浴区, 2:汗蒸区, 3:休闲区, 4:餐饮区)
     * @return 设施列表
     */
    List<StorePlatformBathFacility> getListByStoreIdAndCategory(Integer storeId, Integer facilityCategory);

    /**
     * 新增设施
     *
     * @param facility 设施信息
     * @return 操作结果
     */
    R<StorePlatformBathFacility> saveFacility(StorePlatformBathFacility facility);

    /**
     * 修改设施
     *
     * @param facility 设施信息
     * @return 操作结果
     */
    R<StorePlatformBathFacility> updateFacility(StorePlatformBathFacility facility);

    /**
     * 新增或修改设施
     *
     * @param facility 设施信息
     * @return 操作结果
     */
    R<StorePlatformBathFacility> saveOrUpdateFacility(StorePlatformBathFacility facility);

    /**
     * 删除设施（逻辑删除）
     *
     * @param id 设施ID
     * @return 操作结果
     */
    R<String> deleteFacility(Integer id);

    /**
     * 批量删除设施（逻辑删除）
     *
     * @param ids 设施ID列表
     * @return 操作结果
     */
    R<String> deleteFacilityBatch(List<Integer> ids);

    R<String> importFacilityFromExcel(MultipartFile file, Integer storeId);

}
