package cn.novalon.gym.manage.member.service;

import cn.novalon.gym.manage.member.dto.WechatLoginDto;
import cn.novalon.gym.manage.member.vo.WechatLoginVO;
import reactor.core.publisher.Mono;

/**
 * 微信授权服务接口
 * 
 * @author 付嘉
 * @date 2026-05-01
 */
public interface WechatAuthService {

    /**
     * 小程序
     *
     * @param request 小程序登录请求
     * @return 小程序登录响应
     */
    Mono<WechatLoginVO> miniappLogin(WechatLoginDto request);

    /**
     * 手机号
     *
     * @param memberId 会员ID
     * @param code     微信手机号code
     * @return 是否绑定成功
     */
    Mono<Boolean> bindPhone(Long memberId, String code);
}
