You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

chatService.ts 7.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. import type { Chat } from '@/types/chat';
  2. const dummyChatData: Chat[] = [
  3. {
  4. id: 1,
  5. name: 'Sarah Badlishah',
  6. persona: {
  7. id: 1,
  8. name: "Bella",
  9. styles: [
  10. {
  11. id: 1,
  12. name: "funny"
  13. },
  14. {
  15. id: 2,
  16. name: "energetic"
  17. }
  18. ],
  19. role: "Sales Assistant",
  20. active: true
  21. },
  22. chatList: [
  23. {
  24. self: true,
  25. text: "saya nak buat payment",
  26. time: "12:30",
  27. date: "07/07/2025",
  28. read: true
  29. },
  30. {
  31. self: false,
  32. text: "Selamat Datang !",
  33. time: "12:30",
  34. date: "07/07/2025",
  35. read: true
  36. },
  37. {
  38. self: false,
  39. text: "Terima Kasih atas makluman! anda boleh buat bayaran melalui kaedah berikut:\n1. Online Transfer / FPX\n2. E-Wallet / QR Pay",
  40. time: "12:30",
  41. date: "07/07/2025",
  42. read: true
  43. },
  44. {
  45. self: true,
  46. text: "Hello, boleh ke saya beli guna kad kredit ?",
  47. time: "12:33",
  48. date: "07/07/2025",
  49. read: false
  50. },
  51. {
  52. self: true,
  53. text: "saya nak buat payment",
  54. time: "12:30",
  55. date: "07/07/2025",
  56. read: true
  57. },
  58. {
  59. self: false,
  60. text: "Selamat Datang !",
  61. time: "12:30",
  62. date: "07/07/2025",
  63. read: true
  64. },
  65. {
  66. self: false,
  67. text: "Terima Kasih atas makluman! anda boleh buat bayaran melalui kaedah berikut:\n1. Online Transfer / FPX\n2. E-Wallet / QR Pay",
  68. time: "12:30",
  69. date: "07/07/2025",
  70. read: true
  71. },
  72. {
  73. self: true,
  74. text: "Hello, boleh ke saya beli guna kad kredit ?",
  75. time: "12:33",
  76. date: "07/07/2025",
  77. read: false
  78. }
  79. ]
  80. },
  81. {
  82. id: 2,
  83. name: 'Haziq Imran',
  84. persona: {
  85. id: 2,
  86. name: "Rafiq",
  87. styles: [
  88. {
  89. id: 2,
  90. name: "energetic"
  91. },
  92. {
  93. id: 3,
  94. name: "serious"
  95. }
  96. ],
  97. role: "Sales Assistant",
  98. active: false
  99. },
  100. chatList: [
  101. {
  102. self: true,
  103. text: "saya dah buat bayaran, tolong semak ya",
  104. time: "16:39",
  105. date: "07/07/2025",
  106. read: true
  107. },
  108. {
  109. self: false,
  110. text: "Baik, saya semak dahulu ya",
  111. time: "16:40",
  112. date: "07/07/2025",
  113. read: true
  114. },
  115. {
  116. self: false,
  117. text: "Okay, bayaran anda telah diterima.",
  118. time: "16:41",
  119. date: "07/07/2025",
  120. read: true
  121. },
  122. {
  123. self: true,
  124. text: "okay terima kasih",
  125. time: "16:41",
  126. date: "07/07/2025",
  127. read: true
  128. }
  129. ]
  130. },
  131. {
  132. id: 3,
  133. name: 'Jimmy Tan',
  134. persona: {
  135. id: 3,
  136. name: "Lina",
  137. styles: [
  138. {
  139. id: 3,
  140. name: "serious"
  141. },
  142. {
  143. id: 4,
  144. name: "professional"
  145. }
  146. ],
  147. role: "HR Assistant",
  148. active: true
  149. },
  150. chatList: [
  151. {
  152. self: true,
  153. text: "how to refund this order?",
  154. time: "08:35",
  155. date: "07/07/2025",
  156. read: true
  157. },
  158. {
  159. self: false,
  160. text: "Hi Jimmy! You can request a refund via our portal or contact our support. May I know your order ID?",
  161. time: "08:36",
  162. date: "07/07/2025",
  163. read: true
  164. },
  165. {
  166. self: true,
  167. text: "Order ID is #54321",
  168. time: "08:38",
  169. date: "07/07/2025",
  170. read: true
  171. },
  172. {
  173. self: false,
  174. text: "Noted, refund will be processed within 3 working days.",
  175. time: "08:39",
  176. date: "07/07/2025",
  177. read: false
  178. }
  179. ]
  180. },
  181. {
  182. id: 4,
  183. name: 'Devaraj Elamko',
  184. persona: {
  185. id: 1,
  186. name: "Bella",
  187. styles: [
  188. {
  189. id: 1,
  190. name: "funny"
  191. },
  192. {
  193. id: 2,
  194. name: "energetic"
  195. }
  196. ],
  197. role: "Sales Assistant",
  198. active: true
  199. },
  200. chatList: [
  201. {
  202. self: true,
  203. text: "boleh ke jadikan order ni as a gift?",
  204. time: "18:55",
  205. date: "06/07/2025",
  206. read: true
  207. },
  208. {
  209. self: false,
  210. text: "Ya boleh, cik boleh pilih 'Gift Option' semasa checkout.",
  211. time: "18:56",
  212. date: "06/07/2025",
  213. read: true
  214. }
  215. ]
  216. },
  217. {
  218. id: 5,
  219. name: 'Nur Nadia',
  220. persona: {
  221. id: 3,
  222. name: "Lina",
  223. styles: [
  224. {
  225. id: 3,
  226. name: "serious"
  227. },
  228. {
  229. id: 4,
  230. name: "professional"
  231. }
  232. ],
  233. role: "HR Assistant",
  234. active: true
  235. },
  236. chatList: [
  237. {
  238. self: true,
  239. text: "saya nak order ni sampai hari jumaat ni",
  240. time: "09:15",
  241. date: "04/07/2025",
  242. read: true
  243. },
  244. {
  245. self: false,
  246. text: "Noted! Kami akan usahakan penghantaran sebelum hari Jumaat.",
  247. time: "09:16",
  248. date: "04/07/2025",
  249. read: true
  250. },
  251. {
  252. self: true,
  253. text: "Thank you!",
  254. time: "09:17",
  255. date: "04/07/2025",
  256. read: true
  257. }
  258. ]
  259. }
  260. ];
  261. export const getAllChat = async (): Promise<Chat[]> => {
  262. return dummyChatData
  263. }
  264. export const getChat = async (id: number): Promise<Chat | undefined> => {
  265. return dummyChatData.find( chat => chat.id === id)
  266. }