package com.greenorange.promotion.service.userInfo;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.greenorange.promotion.model.dto.userInfo.*;
import com.greenorange.promotion.model.entity.UserInfo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author 35880
* @description 针对表【user_info(用户基本信息表)】的数据库操作Service
* @createDate 2025-04-24 11:47:37
*/
public interface UserInfoService extends IService<UserInfo> {


    /**
     * 获取查询条件
     */
    QueryWrapper<UserInfo> getQueryWrapper(UserInfoQueryRequest userInfoQueryRequest);


    /**
     * web端用户登录
     */
    String userInfoLogin(UserInfoLoginRequest userInfoLoginRequest);


    /**
     * 小程序用户注册
     */
    void userInfoMiniRegister(UserInfoRegisterRequest userInfoRegisterRequest);


    /**
     * 小程序端用户密码登录
     */
    String userInfoMiniLoginByPwd(UserInfoMiniPasswordLoginRequest userInfoMiniPasswordLoginRequest);


    /**
     * 小程序用户验证码登录
     */
    String userInfoMiniLoginByVcd(UserInfoMiniVerifyCodeLoginRequest userInfoMiniVerifyCodeLoginRequest);


    /**
     * 小程序用户重置密码
     */
    void userInfoMiniResetPwd(UserInfoResetRequest userInfoResetRequest);


    /**
     * 小程序用户获取验证码
     */
    String getVerificationCode(String phoneNumber);


    /**
     * 查询从 userId 一路到根节点的所有 id，按 depth 倒序（根先出）
     */
    List<Long> findPathToRoot(Long userId);
}
