package com.dora.service;

import com.dora.dto.*;
import com.dora.entity.Banner;

import java.util.List;

/**
 * Banner图服务接口
 */
public interface BannerService {
    
    /**
     * 获取所有启用的Banner列表（用户端）
     */
    List<Banner> getAllEnabledBanners();
    
    /**
     * 分页获取Banner列表（管理员）
     */
    PageResultDto<BannerListDto> getBannersByPage(int page, int size);
    
    /**
     * 根据ID获取Banner详情
     */
    Banner getBannerById(Long id);
    
    /**
     * 根据ID获取Banner详情（管理员）
     */
    BannerDto getBannerDtoById(Long id);
    
    /**
     * 创建Banner（管理员）
     */
    Banner createBanner(Banner banner);
    
    /**
     * 创建Banner（管理员）
     */
    BannerDto createBanner(BannerCreateDto createDto);
    
    /**
     * 更新Banner（管理员）
     */
    Banner updateBanner(Banner banner);
    
    /**
     * 更新Banner（管理员）
     */
    BannerDto updateBanner(BannerUpdateDto updateDto);
    
    /**
     * 删除Banner（管理员）
     */
    void deleteBanner(Long id);
    
    /**
     * 批量更新排序（管理员）
     */
    void batchUpdateSortOrder(List<BannerSortDto> sortDtos);
    
    /**
     * 更新Banner状态（管理员）
     */
    void updateBannerStatus(Long id, Boolean isEnabled);
}
