package shop.alien.lawyer.service;

import com.baomidou.mybatisplus.extension.service.IService;
import shop.alien.entity.result.R;
import shop.alien.entity.store.StoreImg;
import shop.alien.entity.store.vo.StoreImgTypeVo;

import java.util.List;

/**
 * 二期-门店图片 服务类
 *
 * @author ssk
 * @since 2024-12-05
 */
public interface StoreImgService extends IService<StoreImg> {

    /**
     * 获取门店图片
     *
     * @param storeId 门店id
     * @param imgType 图片类型, 0:其他, 1:入口图, 2:相册, 3:菜品, 4:环境, 5:价目表, 6:推荐菜, 7:菜单, 8:用户评论, 9:商家申诉, 10:商家头像, 11:店铺轮播图
     * @return list
     */
    List<StoreImg> getStoreImg(Integer storeId, Integer imgType);

    /**
     * 获取所有图片类型和数量
     *
     * @param storeId 门店id
     * @return StoreImgTypeVo
     */
    List<StoreImgTypeVo> getStoreImgTypeCount(Integer storeId);

    /**
     * 获取轮播图
     *
     * @return List<StoreImg>
     */
    List<StoreImg> getCarouselImage();

    /**
     * @param id
     * @param imgType
     * @return
     */
    List<String> getUrl(String id, Integer imgType);

    /**
     * 获取用户打卡广场小人图片
     *
     * @param userId 用户ID，用于标识和获取特定用户的信息
     * @return
     */
    R<String> getUserClockImg(Integer userId);

    /**
     * 通过businessId获取图片
     *
     * @param storeId 门店id
     * @param imgType 图片类型, 0:其他, 1:入口图, 2:相册, 3:菜品, 4:环境, 5:价目表, 6:推荐菜, 7:菜单, 8:用户评论, 9:商家申诉, 10:商家头像, 11:店铺轮播图
     * @return list
     */
    List<StoreImg> getByBusinessId(Integer storeId, Integer imgType, Integer businessId);

    /**
     * 删除图片
     *
     * @param storeId 门店id
     * @param imgType 图片类型, 0:其他, 1:入口图, 2:相册, 3:菜品, 4:环境, 5:价目表, 6:推荐菜, 7:菜单, 8:用户评论, 9:商家申诉, 10:商家头像, 11:店铺轮播图
     */
    int saveOrUpdateImg(Integer storeId, Integer imgType);
}
