package com.ruoyi.web.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.web.domain.dto.mediaPropaganda.MediaPropagandaAddRequest;
import com.ruoyi.web.domain.dto.mediaPropaganda.MediaPropagandaEditRequest;
import com.ruoyi.web.domain.dto.mediaPropaganda.MediaPropagandaQueryRequest;
import com.ruoyi.web.domain.entity.MediaPropaganda;
import com.ruoyi.web.domain.vo.MediaPropagandaVO;

/**
 * 媒体宣传内容收集服务接口
 */
public interface MediaPropagandaService extends IService<MediaPropaganda> {

    /**
     * 添加媒体宣传内容
     *
     * @param mediaPropagandaAddRequest 添加请求
     * @return 添加后的ID
     */
    Integer addMediaPropaganda(MediaPropagandaAddRequest mediaPropagandaAddRequest);

    /**
     * 删除媒体宣传内容
     *
     * @param ids 记录ID，多个以逗号分隔
     * @return 是否删除成功
     */
    boolean deleteMediaPropaganda(String ids);

    /**
     * 修改媒体宣传内容
     *
     * @param mediaPropagandaEditRequest 编辑请求
     */
    void editMediaPropaganda(MediaPropagandaEditRequest mediaPropagandaEditRequest);

    /**
     * 根据ID获取媒体宣传内容详情
     *
     * @param id 记录ID
     * @return 媒体宣传内容详情VO
     */
    MediaPropagandaVO getMediaPropagandaById(int id);

    /**
     * 通过实体获取媒体宣传内容VO
     *
     * @param mediaPropaganda 媒体宣传内容实体
     * @return 媒体宣传内容VO
     */
    MediaPropagandaVO getMediaPropagandaVO(MediaPropaganda mediaPropaganda);

    /**
     * 分页获取媒体宣传内容列表
     *
     * @param mediaPropagandaQueryRequest 查询请求
     * @return 分页结果
     */
    Page<MediaPropagandaVO> getListMediaPropagandaByPage(MediaPropagandaQueryRequest mediaPropagandaQueryRequest);

    /**
     * 获取查询条件
     *
     * @param mediaPropagandaQueryRequest 查询请求
     * @return 查询条件包装器
     */
    QueryWrapper<MediaPropaganda> getQueryWrapper(MediaPropagandaQueryRequest mediaPropagandaQueryRequest);
}
