package com.qunzhixinxi.hnqz.admin.service.gig;

import com.qunzhixinxi.hnqz.admin.entity.SysUserSub;
import com.qunzhixinxi.hnqz.admin.entity.dto.UserSignCertDTO;
import com.qunzhixinxi.hnqz.admin.entity.vo.SysUserSubVO;
import com.qunzhixinxi.hnqz.admin.enums.GigTypeEnum;

import java.util.List;

/**
 * 用户签约认证服务
 *
 * @author lixuesong
 * @date 2022年03月03日 14:38
 */
public interface SysUserSignCertService {

	/**
	 * 查询用户签约认证信息
	 *
	 * @param userId
	 * @return
	 */
	List<SysUserSub> listUserSignCert(Integer userId);

	/**
	 * 查询用户签约认证信息
	 *
	 * @param userId
	 * @param gigTypeList
	 * @return
	 */
	List<SysUserSub> listUserSignCert(Integer userId, List<GigTypeEnum> gigTypeList);

	/**
	 * 查询用户签约认证信息
	 *
	 * @param userId
	 * @return
	 */
	List<SysUserSubVO> listUserSignCertForApi(Integer userId);

	/**
	 * 保存用户基础信息
	 *
	 * @param userSignCertDTO
	 */
	void saveBaseInfo(UserSignCertDTO userSignCertDTO);

	/**
	 * 签协议
	 *
	 * @param userSignCertDTO
	 */
	void signAgreement(UserSignCertDTO userSignCertDTO);

	/**
	 * 人身验证
	 *
	 * @param userSignCertDTO
	 */
	void personalIdentityVerification(UserSignCertDTO userSignCertDTO);

	/**
	 * 批量发起用户签约认证
	 *
	 * @param userSignCertDTO
	 * @return
	 */
	boolean batchChannelCert(UserSignCertDTO userSignCertDTO);


	/**
	 * 税邦云发送绑卡验证码
	 *
	 * @param userSignCertDTO
	 */
    void bindCardVerification(UserSignCertDTO userSignCertDTO);

	/**
	 * 绑卡确认
	 *
	 * @param userSignCertDTO
	 */
	void bindCardConfirm(UserSignCertDTO userSignCertDTO);
}
