import { User } from './types';

// Base de données mock des utilisateurs
export const mockUsers: User[] = [
  {
    id: 1,
    name: "Vous",
    avatar: "👤",
    email: "vous@owahub.com",
    status: 'online'
  },
  {
    id: 2,
    name: "Marie Dubois",
    avatar: null, // Pas d'avatar, utilisera "MD"
    email: "marie.dubois@owahub.com",
    status: 'online'
  },
  {
    id: 3,
    name: "Jean Martin",
    avatar: "👨",
    email: "jean.martin@owahub.com",
    status: 'offline',
    lastSeen: "Il y a 2 heures"
  },
  {
    id: 4,
    name: "Sophie Laurent",
    avatar: null, // Pas d'avatar, utilisera "SL"
    email: "sophie.laurent@owahub.com",
    status: 'online'
  },
  {
    id: 5,
    name: "Pierre Durand",
    avatar: "👨‍💻",
    email: "pierre.durand@owahub.com",
    status: 'away',
    lastSeen: "Il y a 5 minutes"
  },
  {
    id: 6,
    name: "Emma Bernard",
    avatar: null, // Pas d'avatar, utilisera "EB"
    email: "emma.bernard@owahub.com",
    status: 'online'
  },
  {
    id: 7,
    name: "Lucas Petit",
    avatar: "👨‍🔬",
    email: "lucas.petit@owahub.com",
    status: 'offline',
    lastSeen: "Il y a 1 jour"
  }
];

// Fonction API mock pour récupérer un utilisateur
export const getUserById = async (userId: number): Promise<User | undefined> => {
  // Simule un délai d'API
  await new Promise(resolve => setTimeout(resolve, 300));
  return mockUsers.find(user => user.id === userId);
};

// Fonction API mock pour récupérer plusieurs utilisateurs
export const getUsersByIds = async (userIds: number[]): Promise<User[]> => {
  await new Promise(resolve => setTimeout(resolve, 300));
  return mockUsers.filter(user => userIds.includes(user.id));
};

// Fonction API mock pour rechercher des utilisateurs
export const searchUsers = async (query: string): Promise<User[]> => {
  await new Promise(resolve => setTimeout(resolve, 300));
  const lowerQuery = query.toLowerCase();
  return mockUsers.filter(user => 
    user.name.toLowerCase().includes(lowerQuery) ||
    user.email?.toLowerCase().includes(lowerQuery)
  );
};

