package com.dora.service;

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

import java.util.List;

/**
 * 推广海报服务接口
 */
public interface PromotionPosterService {
    
    /**
     * 获取所有启用的推广海报列表（用户端）
     */
    List<PromotionPoster> getAllEnabledPromotionPosters();
    
    /**
     * 分页获取推广海报列表（管理员）
     */
    PageResultDto<PromotionPosterListDto> getPromotionPostersByPage(int page, int size);
    
    /**
     * 根据ID获取推广海报详情
     */
    PromotionPoster getPromotionPosterById(Long id);
    
    /**
     * 根据ID获取推广海报详情（管理员）
     */
    PromotionPosterDto getPromotionPosterDtoById(Long id);
    
    /**
     * 创建推广海报（管理员）
     */
    PromotionPoster createPromotionPoster(PromotionPoster promotionPoster);
    
    /**
     * 创建推广海报（管理员）
     */
    PromotionPosterDto createPromotionPoster(PromotionPosterCreateDto createDto);
    
    /**
     * 更新推广海报（管理员）
     */
    PromotionPoster updatePromotionPoster(PromotionPoster promotionPoster);
    
    /**
     * 更新推广海报（管理员）
     */
    PromotionPosterDto updatePromotionPoster(PromotionPosterUpdateDto updateDto);
    
    /**
     * 删除推广海报（管理员）
     */
    void deletePromotionPoster(Long id);
    
    /**
     * 批量更新排序（管理员）
     */
    void batchUpdateSortOrder(List<PromotionPosterSortDto> sortDtos);
    
    /**
     * 更新推广海报状态（管理员）
     */
    void updatePromotionPosterStatus(Long id, Boolean isEnabled);
}
