import type { LoginParams, LoginResult, UserInfo } from '@/types/auth';

interface MockAccount {
  password: string;
  user: UserInfo;
}

/**
 * 演示环境下的本地账号。
 * 真实项目请替换为后端登录接口。
 */
const MOCK_ACCOUNTS: Record<string, MockAccount> = {
  admin: {
    password: 'admin123',
    user: {
      id: 1,
      username: 'admin',
      nickname: '超级管理员',
      role: 'admin',
    },
  },
  user: {
    password: 'user123',
    user: {
      id: 2,
      username: 'user',
      nickname: '普通运营',
      role: 'user',
    },
  },
};

const delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));

export const loginApi = async (params: LoginParams): Promise<LoginResult> => {
  await delay(500);

  const account = MOCK_ACCOUNTS[params.username];
  if (!account || account.password !== params.password) {
    throw new Error('用户名或密码错误');
  }

  return {
    token: `mock-token-${account.user.id}-${Date.now()}`,
    user: account.user,
  };
};
