package com.gic.haoban.manage.api.service;

import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.OpenStaffDTO;
import com.gic.haoban.manage.api.dto.OpenStaffLicenseDTO;
import com.gic.haoban.manage.api.qdto.OpenStaffInitQDTO;
import com.gic.haoban.manage.api.qdto.OpenStaffPageQDTO;

public interface OpenStaffApiService {

    /**
     * 授权绑定
     * @param qdto
     * @return
     */
    public ServiceResponse<Long> init(OpenStaffInitQDTO qdto) ;

    /**
     * id查询
     * @param openStaffId
     * @return
     */
    public ServiceResponse<OpenStaffDTO> getById(Long openStaffId) ;

    public ServiceResponse<OpenStaffDTO> getByQwUserId(Long qwUserId) ;


    /**
     * 删除
     * @param id
     * @return
     */
    public ServiceResponse<Void> delete(Long id) ;


    /**
     * 设置需要输入验证码
     * @param uuid
     * @return
     */
    public ServiceResponse<Void> updateValiFlag(String uuid) ;

    /**
     * 设置需要二次验证扫码
     * @param uuid
     * @return
     */
    public ServiceResponse<Void> update2QrcodeFlag(String uuid) ;

    /**
     * 获取二次验证码
     * @param id
     * @return
     */
    public ServiceResponse<OpenStaffDTO> get2Qrcode(long id) ;

    /**
     * 登录成功
     */
    public ServiceResponse<Void> login(String uuid , Long qwCorpid ,String corpNam , Long qwUserId) ;

    /**
     * 退出登录
     */
    public ServiceResponse<Void> logout(String uuid) ;

    /**
     * 校验验证码
     * @param openStaffId
     * @param validCode
     * @return
     */
    public ServiceResponse<Void> checkCode(Long openStaffId, String validCode) ;

    /**
     *
     * @param uuid
     * @param step
     * @return
     */
    public ServiceResponse<Void> updateLoginStep(String uuid , int step) ;

    ServiceResponse<OpenStaffLicenseDTO> getLicenseInfo(String wxEnterpriseId, String enterpriseId);

    ServiceResponse<Page<OpenStaffDTO>> page(OpenStaffPageQDTO qdto, BasePageInfo basePageInfo);
}
