import { apiService } from "./api"; import { ApiResponse, User, CreateUserRequest, UpdateUserRequest, PaginationParams, } from "./types"; export const userService = { getUsers: async (params?: PaginationParams): Promise> => { try { return await apiService.get>("/users", params); } catch (error) { return { success: false, data: [], message: "خطا در دریافت کاربران", }; } }, getUser: async (id: string): Promise> => { try { return await apiService.get>(`/users/${id}`); } catch (error) { return { success: false, data: {} as User, message: "خطا در دریافت کاربر", }; } }, createUser: async ( userData: CreateUserRequest ): Promise> => { try { return await apiService.post>("/users", userData); } catch (error) { return { success: false, data: {} as User, message: "خطا در ایجاد کاربر", }; } }, updateUser: async ( id: string, userData: UpdateUserRequest ): Promise> => { try { return await apiService.put>(`/users/${id}`, userData); } catch (error) { return { success: false, data: {} as User, message: "خطا در ویرایش کاربر", }; } }, deleteUser: async (id: string): Promise> => { try { return await apiService.delete>(`/users/${id}`); } catch (error) { return { success: false, data: undefined, message: "خطا در حذف کاربر", }; } }, getMockUsers: (): User[] => [ { id: "1", name: "علی احمدی", email: "ali@example.com", phone: "09123456789", role: "user", status: "active", permissions: [10, 15], createdAt: "2024-01-15T10:30:00Z", updatedAt: "2024-01-15T10:30:00Z", }, { id: "2", name: "فاطمه حسینی", email: "fateme@example.com", phone: "09123456789", role: "admin", status: "active", permissions: [10, 15, 20, 22, 25, 30], createdAt: "2024-01-14T10:30:00Z", updatedAt: "2024-01-14T10:30:00Z", }, { id: "3", name: "محمد رضایی", email: "mohammad@example.com", phone: "09123456789", role: "user", status: "inactive", permissions: [10], createdAt: "2024-01-13T10:30:00Z", updatedAt: "2024-01-13T10:30:00Z", }, { id: "4", name: "زهرا کریمی", email: "zahra@example.com", phone: "09123456789", role: "user", status: "active", permissions: [10, 15], createdAt: "2024-01-12T10:30:00Z", updatedAt: "2024-01-12T10:30:00Z", }, { id: "5", name: "حسن نوری", email: "hassan@example.com", phone: "09123456789", role: "admin", status: "active", permissions: [10, 15, 20, 22, 25, 30], createdAt: "2024-01-11T10:30:00Z", updatedAt: "2024-01-11T10:30:00Z", }, ], };