package shop.alien.store.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import shop.alien.entity.store.StoreActivity;
import shop.alien.entity.store.dto.StoreActivityDto;
import shop.alien.entity.store.vo.LifeUserVo;
import shop.alien.entity.store.vo.StoreActivityVo;
import shop.alien.entity.store.vo.StoreInfoVo;

import java.io.IOException;
import java.util.List;

/**
 * <p>
 * 活动主表 服务类
 * </p>
 *
 * @author ssk
 * @since 2025-05-14
 */
public interface StoreActivityService extends IService<StoreActivity> {

    /**
     * web端查询活动
     *
     * @return ResponseEntity
     */
    IPage<StoreActivityVo> getActiveList(int page, int size, String status, String createdTime);

    /**
     * web端新增活动及活动规则
     *
     * @return ResponseEntity
     */
    StoreActivityVo saveActive(StoreActivityDto storeActivityDto) throws Exception;

    /**
     * web端修改活动及活动规则
     *
     * @return ResponseEntity
     */
    StoreActivityVo editActive(StoreActivityDto storeActivityDto) throws Exception;

    /**
     * web端新增活动及活动规则
     *
     * @return ResponseEntity
     */
    StoreActivityVo approvalActivities(StoreActivityDto storeActivityDto) throws Exception;

    /**
     * web端根据关键字获取店铺信息
     *
     * @return ResponseEntity
     */
    List<StoreInfoVo> getStoreInfoByKeyword(String keyword) throws Exception;

    /**
     * web端根据关键字获取用户端用户信息
     *
     * @return ResponseEntity
     */
    List<LifeUserVo> getUserInfoByKeyword(String keyword) throws Exception;

    /**
     * web端根据店铺id获取店铺信息
     *
     * @return ResponseEntity
     */
    StoreActivityVo getActivityDetail(Integer activityId) throws Exception;

    /**
     * web端导出活动信息结果
     */
    String exportExcel(String status, String createdTime) throws IOException;
}
