import { get, post, put } from '@/api/request' export interface UserInfo { id: number nickname: string avatar_url: string } export interface LevelInfo { level_key: string name: string modules: string[] } export interface LoginResult { token: string user: UserInfo level: LevelInfo } export interface ModuleOut { module_key: string name: string icon: string locked: boolean enabled_tools_count: number } export interface ToolOut { tool_key: string module_key: string name: string icon: string description: string is_hot: boolean locked: boolean } export interface ToolsListResult { modules: ModuleOut[] list: ToolOut[] } export function apiWxLogin(code: string) { return post('/user/wx-login', { code }) } export function apiDevLogin() { return post('/user/dev-login') } /** H5 账号注册(注册即登录) */ export function apiRegister(username: string, password: string, nickname = '') { return post('/user/register', { username, password, nickname }) } /** H5 账号密码登录 */ export function apiAccountLogin(username: string, password: string) { return post('/user/login', { username, password }) } /** 把 H5 独立账号合并进当前登录账号(工作台随迁) */ export function apiBindAccount(username: string, password: string) { return post<{ username: string }>('/user/bind-account', { username, password }) } /** 更新个人信息(昵称 / 头像) */ export function apiUpdateProfile(nickname: string, avatarUrl: string) { return put<{ nickname: string, avatar_url: string }>('/user/profile', { nickname, avatar_url: avatarUrl }) } export function apiGetLevel() { return get('/user/level') } /** 当前登录用户信息(token 校验后恢复 user) */ export function apiGetUserInfo() { return get('/user/info') } export function apiToolsList() { return get('/tools/list') } export function apiToolsUsed(toolKey: string) { return post('/tools/used', { tool_key: toolKey }) } export function apiWorkbenchGet() { return get<{ tool_keys: string[] }>('/workbench/get') } export function apiWorkbenchSave(toolKeys: string[]) { return post('/workbench/save', { tool_keys: toolKeys }) } export function apiFeedbackSubmit(content: string, contact = '') { return post('/feedback/submit', { content, contact }) }