
package com.tmerclub.cloud.multishop.service;

import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.multishop.model.ShopRenovation;

/**
 * 店铺装修信息
 *
 * @author Orange
 * @date 2022-08-12 11:27:18
 */
public interface ShopRenovationService {

    /**
     * 分页获取店铺装修信息列表
     * @param pageDTO 分页参数
     * @param shopRenovation
     * @return 店铺装修信息列表分页数据
     */
    PageVO<ShopRenovation> page(PageDTO pageDTO, ShopRenovation shopRenovation);

    /**
     * 根据店铺装修信息id获取店铺装修信息
     *
     * @param renovationId 店铺装修信息id
     * @return 店铺装修信息
     */
    ShopRenovation getByRenovationId(Long renovationId);

    /**
     * 根据店铺id和装修类型获取当前设置为主页的装修信息
     * @param shopId
     * @param renovationType
     * @return
     */
    ShopRenovation getShopHomeRenovation(Long shopId, Integer renovationType);

    /**
     * 保存店铺装修信息
     * @param shopRenovation 店铺装修信息
     */
    void save(ShopRenovation shopRenovation);

    /**
     * 更新店铺装修信息
     * @param shopRenovation 店铺装修信息
     */
    void update(ShopRenovation shopRenovation);

    /**
     * 根据店铺装修信息id删除店铺装修信息
     * @param renovationId 店铺装修信息id
     * @param renovationType
     * @param shopId
     */
    void deleteById(Long renovationId, Integer renovationType, Long shopId);

    /**
     * 移除缓存
     * @param shopId
     * @param renovationType
     * @param renovationId
     */
    void removeCache(Long shopId, Integer renovationType, Long renovationId);

    /**
     * 修改店铺装修信息
     * @param shopRenovation 装修
     */
    void updateToHomePage(ShopRenovation shopRenovation);
}
