package com.test.musichouduan.service;

import com.test.musichouduan.dto.BannerDTO;
import com.test.musichouduan.dto.PageResult;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 轮播图服务接口
 */
public interface BannerService {

    /**
     * 根据ID获取轮播图
     *
     * @param id 轮播图ID
     * @return 轮播图DTO
     */
    BannerDTO getBannerById(Long id);

    /**
     * 获取轮播图列表
     *
     * @return 轮播图列表
     */
    List<BannerDTO> getBannerList();

    /**
     * 分页获取轮播图列表
     *
     * @param page 页码
     * @param size 每页大小
     * @return 分页结果
     */
    PageResult<BannerDTO> getBannerPage(Integer page, Integer size);

    /**
     * 添加轮播图
     *
     * @param bannerDTO 轮播图DTO
     * @param image 图片文件
     * @return 轮播图DTO
     */
    BannerDTO addBanner(BannerDTO bannerDTO, MultipartFile image);

    /**
     * 更新轮播图
     *
     * @param id 轮播图ID
     * @param bannerDTO 轮播图DTO
     * @param image 图片文件
     * @return 轮播图DTO
     */
    BannerDTO updateBanner(Long id, BannerDTO bannerDTO, MultipartFile image);

    /**
     * 删除轮播图
     *
     * @param id 轮播图ID
     * @return 是否成功
     */
    boolean deleteBanner(Long id);

    /**
     * 更新轮播图状态
     *
     * @param id 轮播图ID
     * @param status 状态
     * @return 是否成功
     */
    boolean updateBannerStatus(Long id, Integer status);

    /**
     * 更新轮播图排序
     *
     * @param id 轮播图ID
     * @param orderNum 排序号
     * @return 是否成功
     */
    boolean updateBannerOrder(Long id, Integer orderNum);
}
