package shop.alien.store.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.bind.annotation.RequestBody;
import shop.alien.entity.store.LifeReverseGroupBidding;
import shop.alien.entity.store.LifeReverseGroupBuying;
import shop.alien.entity.store.vo.LifeReverseGroupBuyingStoreVo;
import shop.alien.entity.store.vo.LifeReverseGroupBuyingUserVo;

/**
 * 用户反向团购表 服务类
 *
 * @author ssk
 * @since 2025-03-05
 */
public interface LifeReverseGroupBuyingService extends IService<LifeReverseGroupBuying> {

    /**
     * 用户-反向团购列表
     *
     * @param pageNum  页数
     * @param pageSize 页容
     * @param userId   用户id
     * @param status   状态, 0:待审核, 1:未通过, 2:已通过, 3:待接单, 4,已完成
     * @return IPage
     */
    IPage<LifeReverseGroupBuyingUserVo> getUserList(Integer pageNum, Integer pageSize, Integer userId, Integer status);

    /**
     * 反向团购详情
     *
     * @param id 反向团购主键id
     * @return LifeReverseGroupBuyingVo
     */
    LifeReverseGroupBuyingUserVo getDetail(Integer id);

    /**
     * 商家-反向团购列表
     *
     * @param pageNum  页数
     * @param pageSize 页容
     * @param distance 距离, 多少米以内
     * @param dateSort 时间排序, 0:倒序, 1:正序
     * @param price    价格, 多少钱以内
     * @param storeId  门店id
     * @return IPage
     */
    IPage<LifeReverseGroupBuyingStoreVo> getStoreList(Integer pageNum, Integer pageSize, Integer distance, Integer dateSort, String price, Integer storeId);

    /**
     * 用户-接受或拒绝商家
     *
     * @param id      反向团购主键id
     * @param userId  用户id
     * @param storeId 门店id
     * @param status  状态, 0:拒绝, 1:接收
     * @return boolean
     */
    boolean receiveOrRefuse(Integer id, Integer userId, Integer storeId, Integer status);

    /**
     * 商家-参与竞价
     *
     * @param lifeReverseGroupBidding 反向团购竞价表
     * @return boolean
     */
    boolean joinBidding(@RequestBody LifeReverseGroupBidding lifeReverseGroupBidding);
}
