package com.cf.imes.module.system.service.funds.advertisement;


import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.module.system.controller.admin.funds.advertisement.vo.AdvertisementPageReqVO;
import com.cf.imes.module.system.controller.admin.funds.advertisement.vo.AdvertisementRePublishReqVO;
import com.cf.imes.module.system.controller.admin.funds.advertisement.vo.AdvertisementRespVO;
import com.cf.imes.module.system.controller.admin.funds.advertisement.vo.AdvertisementSaveReqVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface AdvertisementService {

    /**
     * 创建广告
     *
     * @param createReqVO 产品名称
     * @return 编号
     */
    Long create(AdvertisementSaveReqVO createReqVO);

    /**
     * 更新广告
     *
     * @param reqVO 更新信息
     */
    void update(AdvertisementSaveReqVO reqVO);

    /**
     * 删除广告
     *
     * @param id 编号
     */
    void delete(Long id);

    /**
     * 获取广告
     *
     * @param id 编号
     */
    AdvertisementRespVO get(Long id);

    /**
     * 获取广告 分页
     *
     * @param pageReqVO 分页查询
     */
    PageResult<AdvertisementRespVO> getPage(AdvertisementPageReqVO pageReqVO);

    /**
     * 发布广告
     *
     * @param id
     */
    void publish(Long id);

    /**
     * 结束发布
     */
    void endPublish(Long id);

    /**
     * 重新发布
     *
     * @param reqVO
     */
    void republish(AdvertisementRePublishReqVO reqVO);

    /**
     * 通过广告位置查询广告列表
     *
     * @param adPosition
     * @return
     */
    List<AdvertisementRespVO> getAdvertisementByPosition(Integer adPosition);

    /**
     * 上传广告图片
     *
     * @param adImageFile
     * @return
     */
    String uploadAdImage(MultipartFile adImageFile);
}
