package com.czg.account.service;

import com.czg.account.dto.shopuser.ShopUserMoneyEditDTO;
import com.czg.account.entity.ShopUser;
import com.czg.market.vo.InviteUserVO;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

/**
 * 商户储值会员 服务层。
 *
 * @author Administrator
 * @since 2025-02-08
 */
public interface ShopUserService extends IService<ShopUser> {

    /**
     * 返回流水Id
     */
    Long updateMoney(ShopUserMoneyEditDTO shopUserEditDTO);


    ShopUser getShopUserInfo(Long shopId, long userId);

    /**
     * 获取邀请用户列表
     */
    Page<InviteUserVO> getInviteUser(Long getDistributionUserId, Long shopId, Long shopUserId, Long distributionLevelId, Integer page, Integer size);


    boolean updateInfo(ShopUser shopUser);

    List<ShopUser> selectBirthdayUser(LocalDate current, Long mainShopId, String userType);

    void updateOneOrTwoAmount(Long shopUserId, Long shopId, BigDecimal bigDecimal, Integer isOne);
}
