package com.ichangzuo.module.auth.service;

import com.ichangzuo.common.enums.ContactType;
import com.ichangzuo.common.result.Result;
import com.ichangzuo.system.model.dto.CaptchaResult;
import com.ichangzuo.system.model.dto.LoginResult;

/**
 * 认证服务接口
 *
 * @author haoxr
 * @since 2.4.0
 */
public interface AuthService {

    /**
     * 登录
     *
     * @param username 用户名
     * @param password 密码
     * @return 登录结果
     */
    LoginResult login(String username, String password);

    /**
     * 登出
     */
    void logout();

    /**
     * 获取验证码
     *
     * @return 验证码
     */
    CaptchaResult getCaptcha();

    Result<?> register(String username, String password, String verifyCode);

    Result<?> sendRegCode(String contact);

    Result<?> verifyRegCode(String username, String verifyCode);

    Result<?> autoLogin(String username, String password);
}
