1import { FetchEntityReturn } from "../hooks";
2
3interface Entity {
4 id: number;
5 name: string;
6 createdAt: string;
7}
8
9const massDataEntities = [
10 { id: 1, name: "Azad Ahmed", createdAt: "2023-01-01" },
11 { id: 2, name: "Bahman Karim", createdAt: "2024-02-05" },
12 { id: 3, name: "Chnar Zana", createdAt: "2022-03-08" },
13 { id: 4, name: "Dilshad Hassan", createdAt: "2024-04-11" },
14 { id: 5, name: "Evin Rojan", createdAt: "2023-05-06" },
15 { id: 6, name: "Farhad Hama", createdAt: "2025-06-08" },
16 { id: 7, name: "Goran Rebwar", createdAt: "2027-07-10" },
17 { id: 8, name: "Havin Ahmed", createdAt: "2025-08-09" },
18 { id: 9, name: "Jiyan Qasim", createdAt: "2025-06-08" },
19 { id: 10, name: "Kawa Sherwan", createdAt: "2027-07-10" },
20 { id: 11, name: "Lawan Barzan", createdAt: "2025-08-09" },
21 { id: 12, name: "Nazdar Rizgar", createdAt: "2025-08-09" },
22 { id: 13, name: "Rojan Shamal", createdAt: "2023-09-12" },
23 { id: 14, name: "Sherin Jalal", createdAt: "2024-10-23" },
24 { id: 15, name: "Tahir Walat", createdAt: "2022-11-29" },
25 { id: 16, name: "Viyan Bave", createdAt: "2023-12-17" },
26 { id: 17, name: "Yousif Farhad", createdAt: "2025-01-05" },
27 { id: 18, name: "Zahra Kamal", createdAt: "2026-02-14" },
28 { id: 19, name: "Bakhtiar Shwan", createdAt: "2025-03-21" },
29 { id: 20, name: "Diyar Latif", createdAt: "2026-04-13" },
30 { id: 21, name: "Azad Ahmed", createdAt: "2023-01-01" },
31 { id: 22, name: "Bahman Karim", createdAt: "2024-02-05" },
32 { id: 23, name: "Chnar Zana", createdAt: "2022-03-08" },
33 { id: 24, name: "Dilshad Hassan", createdAt: "2024-04-11" },
34 { id: 25, name: "Evin Rojan", createdAt: "2023-05-06" },
35 { id: 26, name: "Farhad Hama", createdAt: "2025-06-08" },
36 { id: 27, name: "Goran Rebwar", createdAt: "2027-07-10" },
37 { id: 28, name: "Havin Ahmed", createdAt: "2025-08-09" },
38 { id: 29, name: "Jiyan Qasim", createdAt: "2025-06-08" },
39 { id: 30, name: "Kawa Sherwan", createdAt: "2027-07-10" },
40 { id: 31, name: "Lawan Barzan", createdAt: "2025-08-09" },
41 { id: 32, name: "Nazdar Rizgar", createdAt: "2025-08-09" },
42 { id: 33, name: "Rojan Shamal", createdAt: "2023-09-12" },
43 { id: 34, name: "Sherin Jalal", createdAt: "2024-10-23" },
44 { id: 35, name: "Tahir Walat", createdAt: "2022-11-29" },
45 { id: 36, name: "Viyan Bave", createdAt: "2023-12-17" },
46 { id: 37, name: "Yousif Farhad", createdAt: "2025-01-05" },
47 { id: 38, name: "Zahra Kamal", createdAt: "2026-02-14" },
48 { id: 39, name: "Bakhtiar Shwan", createdAt: "2025-03-21" },
49 { id: 40, name: "Diyar Latif", createdAt: "2026-04-13" },
50];
51
52export const fetchEntity = async ({ queryKey }: { queryKey: any }) => {
53 const [, pageIndex, pageSize, search, ,] = queryKey;
54
55 const filteredEntities = search
56 ? massDataEntities.filter(entity =>
57 entity.name.toLowerCase().includes(search.toLowerCase())
58 )
59 : massDataEntities;
60
61 const startIndex = (pageIndex - 1) * pageSize;
62 const endIndex = startIndex + pageSize;
63
64 const paginatedEntities = filteredEntities.slice(startIndex, endIndex);
65
66 return {
67 entity: paginatedEntities,
68 pageCount: Math.ceil(filteredEntities.length / pageSize),
69 };
70}
71
72export const fetchEntityLoading = async (): FetchEntityReturn<Entity> => {
73 return new Promise((resolve) => {
74 setTimeout(() => {
75 resolve({
76 entity: [{ id: 40, name: "Diyar Latif", createdAt: "2026-04-13" }],
77 pageCount: 1,
78 });
79 }, 24 * 60 * 60 * 1000);
80 });
81}