package shop.alien.store.service;

import com.baomidou.mybatisplus.extension.service.IService;
import shop.alien.entity.store.StoreOfficialAlbum;
import shop.alien.entity.store.vo.StoreAlbumNameVo;
import shop.alien.entity.store.vo.StoreOfficialAlbumImgVo;
import shop.alien.entity.store.vo.StoreOfficialAlbumVo;

import java.util.List;

/**
 * 官方相册服务
 */
public interface StoreOfficialAlbumService extends IService<StoreOfficialAlbum> {
    StoreOfficialAlbum createOrUpdateOfficialAlbum(StoreOfficialAlbum storeOfficialAlbum);
    List<StoreOfficialAlbumVo> getOfficialAlbumList(String storeId);
    int deleteOfficialAlbum(List<StoreOfficialAlbum> storeOfficialAlbumList);

    /**
     * 获取官方相册图片列表（客户端）
     * <p>
     * 根据门店ID和相册名称查询官方相册中的图片列表
     * 查询条件：imgType = 2（官方相册），通过 business_id 关联到 store_official_album 表，按 albumName 筛选
     * </p>
     *
     * @param storeId   门店ID，必填，必须大于0
     * @param albumName 相册名称，可选。例如：酒水、餐食、环境、全部等。当为null或空字符串时，查询全部
     * @param type      类型，必填。1：视频，2：相册，3：环境
     * @param pageNum   页码，可选，默认1
     * @param pageSize  每页数量，可选，默认10
     * @return 图片列表和总数
     */
    StoreOfficialAlbumImgVo getOfficialAlbumImgList(Integer storeId, String albumName, Integer type, Integer pageNum, Integer pageSize);

    /**
     * 获取官方相册名称列表（客户端）
     * <p>
     * 根据门店ID查询所有可用的相册名称列表，用于前端展示筛选选项
     * </p>
     *
     * @param storeId 门店ID，必填
     * @return 相册名称列表，包含相册名称和图片数量
     */
    List<StoreAlbumNameVo> getAlbumNameList(Integer storeId);
}