package com.ruoyi.wgz.service;

import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.wgz.bo.WgzUserQueryBo;
import com.ruoyi.wgz.bo.req.WgzAppModifyingUserProfilePictureReq;
import com.ruoyi.wgz.bo.req.WgzAppPersonalBasicInformationReq;
import com.ruoyi.wgz.bo.req.WgzAppRegisterReq;
import com.ruoyi.wgz.bo.req.WgzAppRealNameAuthenticationReq;
import com.ruoyi.wgz.bo.res.WgzAppPersonalBasicInformationRes;
import com.ruoyi.wgz.domain.WgzUser;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.Collection;
import java.util.List;

/**
 * APP务工者Service接口
 *
 * @author ruoyi
 * @date 2025-02-14
 */
public interface IWgzUserService extends IServicePlus<WgzUser> {
    /**
     * 查询单个
     * @return
     */
    WgzUser queryById(String id);

    /**
     * 查询列表
     */
    TableDataInfo<WgzUser> queryPageList(WgzUserQueryBo bo);

    /**
     * 查询列表
     */
    List<WgzUser> queryList(WgzUserQueryBo bo);

    /**
     * 根据新增业务对象插入APP务工者
     * @param bo APP务工者新增业务对象
     * @return
     */
    Boolean insert(WgzUser bo);

    /**
     * 根据编辑业务对象修改APP务工者
     * @param bo APP务工者编辑业务对象
     * @return
     */
    Boolean update(WgzUser bo);

    /**
     * 校验并删除数据
     * @param ids 主键集合
     * @param isValid 是否校验,true-删除前校验,false-不校验
     * @return
     */
    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);


	/**
	 * 务工者APP相关
	 * =================================================================================================================
	 * =================================================================================================================
	 * =================================================================================================================
	 */

	/**
	 * 务工者APP注册账号
	 */
	Boolean userRegister(WgzAppRegisterReq bo);

	/**
	 * 修改用户头像修改用户头像
	 */
	Boolean userModifyingUserProfilePicture(@Validated @RequestBody WgzAppModifyingUserProfilePictureReq req);

    /**
     * 务工者APP登录账号
     */
	WgzUser userLongIn(String phone);

    /**
     * 务工者APP个人基本信息
     */
    WgzAppPersonalBasicInformationRes  userPersonalBasicInformation(WgzAppPersonalBasicInformationReq req);

	/**
	 * 务工者APP实名认证
	 */
	Boolean userRealNameAuthentication(@Validated @RequestBody WgzAppRealNameAuthenticationReq req);
}
