package com.seer.teach.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.seer.teach.user.api.dto.UserInfoDTO;
import com.seer.teach.user.entity.UserEntity;

import jakarta.validation.constraints.NotBlank;
import java.util.Collection;
import java.util.List;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author Wang
 * @since 2025-07-16 16:56:07
 */
public interface IUserService extends IService<UserEntity> {

    /**
     * 根据unionid查询用户
     *
     * @param unionid 微信平台的用户唯一标识
     * @return UserEntity 用户信息
     */
    UserEntity getOneByUnionId(String unionid);

    /**
     * 根据手机号查询用户
     *
     * @param mobile 手机号
     * @return UserEntity 用户信息
     */
    UserEntity getOneByMobile(String mobile);

    /**
     * 根据用户名查询用户
     *
     * @param userName 用户名
     * @return UserEntity 用户信息
     */
    UserEntity getOneByUserName(String userName);

    /**
     * 根据用户id查询孩子信息
     *
     * @param userId 用户id
     * @param childId 孩子id
     * @return UserEntity 用户信息
     */
    UserEntity getChildrenByUserId(Integer userId,Integer childId);

    /**
     * 根据用户id查询用户信息
     *
     * @param ids 用户id
     * @return UserEntity 用户信息
     */
    List<UserEntity> getListByUserIds(Collection<Integer> ids);

    /**
     * 根据家长id查询默认孩子信息
     *
     * @param ids 用户id
     * @return UserEntity 用户信息
     */
    List<UserEntity> getDefaultChildrenByUserIds(Collection<Integer> ids);

    /**
     * 检查用户是否存在
     *
     * @param userId 用户id
     * @return UserEntity 用户信息
     */
    UserEntity checkUserExistsByUserId(Integer userId);
}
