import { http } from "@/utils/http"; // 登录参数 interface LoginParams { type: 'phone' | 'email'; account: string; password: string; areaCode?: string; } // 注册参数 interface RegisterParams { type: 'phone' | 'email'; account: string; password: string; code: string; inviteCode?: string; areaCode?: string; } // 发送验证码参数 interface SendCodeParams { type: 'phone' | 'email'; account: string; areaCode?: string; scene: 'register' | 'login' | 'reset' | 'bind'; } // 重置密码参数 interface ResetPasswordParams { type: 'phone' | 'email'; account: string; code: string; newPassword: string; areaCode?: string; } // 密码登录 export function requestLogin(data: LoginParams): Promise> { return http.request({ url: "/api/v1/dt/auth/login/password", method: "post", data }); } // 短信登录 export function requestLoginBySms(data: { phone: string; code: string; areaCode?: string }): Promise> { return http.request({ url: "/api/v1/dt/auth/login/sms", method: "post", data }); } // 注册 export function requestRegister(data: RegisterParams): Promise { return http.request({ url: "/api/v1/dt/auth/register", method: "post", data }); } // 发送验证码 export function requestSendCode(data: SendCodeParams): Promise { return http.request({ url: "/api/v1/dt/auth/sms/send", method: "post", data }); } // 重置密码 export function requestResetPassword(data: ResetPasswordParams): Promise { return http.request({ url: "/api/v1/dt/auth/password/reset", method: "post", data }); } // 退出登录 export function requestLogout(): Promise { return http.request({ url: "/api/v1/dt/user/logout", method: "post" }); } // 获取授权URL export function requestGetAuthUrl(redirectUri: string): Promise> { return http.request({ url: "/api/v1/dt/auth/url", method: "get", params: { redirectUri } }); } // OAuth登录参数 interface OAuthLoginParams { provider: 'google' | 'zalo' | 'telegram'; openId: string; nickname?: string; avatar?: string; email?: string; inviteCode?: string; extra?: string; // Zalo: code_verifier } // OAuth登录 export function requestOAuthLogin(data: OAuthLoginParams): Promise> { return http.request({ url: "/api/v1/dt/auth/oauth/login", method: "post", data }); } // 获取OAuth配置 export function requestOAuthConfig(): Promise> { return http.request({ url: "/api/v1/dt/config/oauth", method: "get" }); }