package com.ruoyi.ss.user.service;

import com.ruoyi.common.core.domain.ValidateResult;
import com.ruoyi.common.core.domain.entity.SmUser;
import com.ruoyi.ss.user.domain.SmUserVO;

import java.util.Collections;
import java.util.List;

/**
 * @author wjh
 * 2024/4/29
 */
public interface UserValidator {

    /**
     * 判断用户是否存在
     * @param userIds 用户id列表
     */
    boolean isExist(List<Long> userIds);

    /**
     * 判断用户是否是商家
     * @param userId
     * @return
     */
    boolean isMch(Long userId);

    /**
     * 判断用户是否可用
     */
    boolean isUsage(Long userId);

    /**
     * 逻辑删除前校验
     */
    ValidateResult preLogicDel(List<Long> userIds);

    /**
     * 校验手机号
     *
     * @param userId
     * @param mobile
     */
    void checkMobile(Long userId, String mobile);

    /**
     * 后校验
     */
    void afterCheck(SmUserVO vo);

    /**
     * 插入前校验
     */
    void checkBeforeInsert(SmUser smUser);

    /**
     * 判断用户是否代理商
     * @param userId
     * @return
     */
    boolean isAgent(Long userId);

    default boolean isExist(Long userId) {
        return isExist(Collections.singletonList(userId));
    };
}
