package com.sqx.modules.goods.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.common.utils.Result;
import com.sqx.modules.datacentre.query.DataCenterQuery;
import com.sqx.modules.goods.entity.GoodsShop;
import com.sqx.modules.goods.entity.GoodsShopRelevancy;
import com.sqx.modules.goods.vo.GoodsShopVo;

import java.util.List;

public interface GoodsShopService extends IService<GoodsShop> {

    Result insertGoodsShop(GoodsShop goodsShop);

    Result updateGoodsShop(GoodsShop goodsShop);

    Result deleteGoodsShop(Long id);

    Result selectGoodsByShopId(Long shopId, Integer page, Integer limit, String goodsName, Integer classifyId, Integer status);

    Result selectGoodsByNotShopId(Long shopId, Integer page, Integer limit, String goodsName);

    Result addGoodsByShopId(List<GoodsShopRelevancy> goodsShopRelevancyList);

    Result deleteGoodsByShopId(Long shopId, Long goodsId);

    Result soldOutOrPutaway(Long shopId, Long goodsId, Integer status);

    Result updateGoodsByShopId(GoodsShopRelevancy goodsShopRelevancy);

    Result selectStoreData(DataCenterQuery query);

    Result selectStoreMessage(DataCenterQuery query);

    Result quickGoodsShop(GoodsShopVo goodsShopVo);

    Result selectGoodsShop(String phone,String msg);

    Integer cancelActivityShop(Long activityId, Long shopId);

    // ActivityManage getShopActivity(Long shopId);

    GoodsShop selectGoodDatas(Long shopId);

    /**
     * 商户缴纳保证金
     * @param money 缴纳金额
     * @param shopId 店铺id
     * @param remark 备注
     */
    void updateCashDeposit(Double money, Long shopId, String remark);

    /**
     * 根据管理员id查询店铺
     * @param adminUserId 管理员id
     * @return 店铺信息
     */
    GoodsShop getByAdminUserId(Long adminUserId);

    /**
     * 查询所有正常状态下的店铺
     * @return 店铺列表
     */
    List<GoodsShop> getAllShops();
}
