@myrjfa/state 2.2.0 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +20 -3
  3. package/dist/index.d.ts +8 -0
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +8 -0
  6. package/dist/lib/actions/actions.d.ts +13 -13
  7. package/dist/lib/actions/actions.d.ts.map +1 -1
  8. package/dist/lib/actions/actions.js +5 -4
  9. package/dist/lib/actions/adminDashboard.d.ts +4 -0
  10. package/dist/lib/actions/adminDashboard.d.ts.map +1 -0
  11. package/dist/lib/actions/adminDashboard.js +29 -0
  12. package/dist/lib/actions/adventure.d.ts +104 -0
  13. package/dist/lib/actions/adventure.d.ts.map +1 -0
  14. package/dist/lib/actions/adventure.js +203 -0
  15. package/dist/lib/actions/application.d.ts +35 -0
  16. package/dist/lib/actions/application.d.ts.map +1 -0
  17. package/dist/lib/actions/application.js +573 -0
  18. package/dist/lib/actions/auth.d.ts +108 -3
  19. package/dist/lib/actions/auth.d.ts.map +1 -1
  20. package/dist/lib/actions/auth.js +38 -8
  21. package/dist/lib/actions/blog.d.ts +61 -0
  22. package/dist/lib/actions/blog.d.ts.map +1 -0
  23. package/dist/lib/actions/blog.js +762 -0
  24. package/dist/lib/actions/brand.d.ts +83 -0
  25. package/dist/lib/actions/brand.d.ts.map +1 -0
  26. package/dist/lib/actions/brand.js +28 -0
  27. package/dist/lib/actions/chat.d.ts +261 -24
  28. package/dist/lib/actions/chat.d.ts.map +1 -1
  29. package/dist/lib/actions/chat.js +525 -41
  30. package/dist/lib/actions/companion.d.ts +174 -0
  31. package/dist/lib/actions/companion.d.ts.map +1 -0
  32. package/dist/lib/actions/companion.js +276 -0
  33. package/dist/lib/actions/event.d.ts +178 -0
  34. package/dist/lib/actions/event.d.ts.map +1 -0
  35. package/dist/lib/actions/event.js +214 -0
  36. package/dist/lib/actions/fetcher.d.ts.map +1 -1
  37. package/dist/lib/actions/fetcher.js +18 -8
  38. package/dist/lib/actions/guide.d.ts +55 -0
  39. package/dist/lib/actions/guide.d.ts.map +1 -0
  40. package/dist/lib/actions/guide.js +128 -0
  41. package/dist/lib/actions/hostDashboard.d.ts +122 -0
  42. package/dist/lib/actions/hostDashboard.d.ts.map +1 -0
  43. package/dist/lib/actions/hostDashboard.js +329 -0
  44. package/dist/lib/actions/location.d.ts +141 -0
  45. package/dist/lib/actions/location.d.ts.map +1 -0
  46. package/dist/lib/actions/location.js +113 -0
  47. package/dist/lib/actions/notifications.d.ts +91 -0
  48. package/dist/lib/actions/notifications.d.ts.map +1 -0
  49. package/dist/lib/actions/notifications.js +83 -0
  50. package/dist/lib/actions/opportunity.d.ts +44 -0
  51. package/dist/lib/actions/opportunity.d.ts.map +1 -0
  52. package/dist/lib/actions/opportunity.js +318 -0
  53. package/dist/lib/actions/package.d.ts +85 -0
  54. package/dist/lib/actions/package.d.ts.map +1 -0
  55. package/dist/lib/actions/package.js +167 -0
  56. package/dist/lib/actions/place.d.ts +191 -0
  57. package/dist/lib/actions/place.d.ts.map +1 -0
  58. package/dist/lib/actions/place.js +57 -0
  59. package/dist/lib/actions/portfolio.d.ts +65 -0
  60. package/dist/lib/actions/portfolio.d.ts.map +1 -0
  61. package/dist/lib/actions/portfolio.js +62 -0
  62. package/dist/lib/actions/property.d.ts +17 -0
  63. package/dist/lib/actions/property.d.ts.map +1 -0
  64. package/dist/lib/actions/property.js +16 -0
  65. package/dist/lib/actions/rental.d.ts +87 -0
  66. package/dist/lib/actions/rental.d.ts.map +1 -0
  67. package/dist/lib/actions/rental.js +205 -0
  68. package/dist/lib/actions/review.d.ts +8 -0
  69. package/dist/lib/actions/review.d.ts.map +1 -0
  70. package/dist/lib/actions/review.js +102 -0
  71. package/dist/lib/actions/room.d.ts +39 -0
  72. package/dist/lib/actions/room.d.ts.map +1 -0
  73. package/dist/lib/actions/room.js +74 -0
  74. package/dist/lib/actions/serverActions.d.ts +1 -0
  75. package/dist/lib/actions/serverActions.d.ts.map +1 -1
  76. package/dist/lib/actions/serverActions.js +15 -0
  77. package/dist/lib/actions/socket.d.ts.map +1 -1
  78. package/dist/lib/actions/socket.js +5 -1
  79. package/dist/lib/actions/stay.d.ts +97 -0
  80. package/dist/lib/actions/stay.d.ts.map +1 -0
  81. package/dist/lib/actions/stay.js +138 -0
  82. package/dist/lib/actions/travelPackage.d.ts +104 -0
  83. package/dist/lib/actions/travelPackage.d.ts.map +1 -0
  84. package/dist/lib/actions/travelPackage.js +487 -0
  85. package/dist/lib/actions.d.ts +24 -24
  86. package/dist/lib/actions.d.ts.map +1 -1
  87. package/dist/lib/actions.js +14 -11
  88. package/dist/lib/adminDashboardActions.d.ts +15 -3
  89. package/dist/lib/adminDashboardActions.d.ts.map +1 -1
  90. package/dist/lib/adminDashboardActions.js +16 -7
  91. package/dist/lib/authSessionManager.d.ts.map +1 -1
  92. package/dist/lib/authSessionManager.js +4 -3
  93. package/dist/lib/authSessionPolicy.d.ts +10 -0
  94. package/dist/lib/authSessionPolicy.d.ts.map +1 -0
  95. package/dist/lib/authSessionPolicy.js +9 -0
  96. package/dist/lib/authorizationActions.d.ts +77 -0
  97. package/dist/lib/authorizationActions.d.ts.map +1 -0
  98. package/dist/lib/authorizationActions.js +61 -0
  99. package/dist/lib/context/ChatContext.d.ts +25 -6
  100. package/dist/lib/context/ChatContext.d.ts.map +1 -1
  101. package/dist/lib/context/ChatContext.js +356 -245
  102. package/dist/lib/data/adventureDummyData.d.ts +3 -0
  103. package/dist/lib/data/adventureDummyData.d.ts.map +1 -0
  104. package/dist/lib/data/adventureDummyData.js +138 -0
  105. package/dist/lib/data/adventureFormPage.d.ts +28 -0
  106. package/dist/lib/data/adventureFormPage.d.ts.map +1 -0
  107. package/dist/lib/data/adventureFormPage.js +58 -0
  108. package/dist/lib/data/companionDummyData.d.ts +99 -0
  109. package/dist/lib/data/companionDummyData.d.ts.map +1 -0
  110. package/dist/lib/data/companionDummyData.js +203 -0
  111. package/dist/lib/data/destinations.d.ts +14 -0
  112. package/dist/lib/data/destinations.d.ts.map +1 -0
  113. package/dist/lib/data/destinations.js +203 -0
  114. package/dist/lib/data/eventFormPage.d.ts +38 -0
  115. package/dist/lib/data/eventFormPage.d.ts.map +1 -0
  116. package/dist/lib/data/eventFormPage.js +56 -0
  117. package/dist/lib/data/eventsDummyData.d.ts +54 -0
  118. package/dist/lib/data/eventsDummyData.d.ts.map +1 -0
  119. package/dist/lib/data/eventsDummyData.js +586 -0
  120. package/dist/lib/data/guideDummyData.d.ts +3 -0
  121. package/dist/lib/data/guideDummyData.d.ts.map +1 -0
  122. package/dist/lib/data/guideDummyData.js +66 -0
  123. package/dist/lib/data/opportunityFormData.d.ts +13 -0
  124. package/dist/lib/data/opportunityFormData.d.ts.map +1 -0
  125. package/dist/lib/data/opportunityFormData.js +62 -0
  126. package/dist/lib/data/opportunityFormPage.d.ts +12 -0
  127. package/dist/lib/data/opportunityFormPage.d.ts.map +1 -0
  128. package/dist/lib/data/opportunityFormPage.js +33 -0
  129. package/dist/lib/data/packageDummyData.d.ts +3 -0
  130. package/dist/lib/data/packageDummyData.d.ts.map +1 -0
  131. package/dist/lib/data/packageDummyData.js +56 -0
  132. package/dist/lib/data/rentalDummyData.d.ts +3 -0
  133. package/dist/lib/data/rentalDummyData.d.ts.map +1 -0
  134. package/dist/lib/data/rentalDummyData.js +382 -0
  135. package/dist/lib/data/rentalFormPage.d.ts +11 -0
  136. package/dist/lib/data/rentalFormPage.d.ts.map +1 -0
  137. package/dist/lib/data/rentalFormPage.js +86 -0
  138. package/dist/lib/data/staysDummyData.d.ts +72 -0
  139. package/dist/lib/data/staysDummyData.d.ts.map +1 -0
  140. package/dist/lib/data/staysDummyData.js +694 -0
  141. package/dist/lib/data/storeDummyData.d.ts +33 -0
  142. package/dist/lib/data/storeDummyData.d.ts.map +1 -0
  143. package/dist/lib/data/storeDummyData.js +336 -0
  144. package/dist/lib/data/travelPackageFormData.d.ts +19 -0
  145. package/dist/lib/data/travelPackageFormData.d.ts.map +1 -0
  146. package/dist/lib/data/travelPackageFormData.js +51 -0
  147. package/dist/lib/data/travelPackageFormPage.d.ts +22 -0
  148. package/dist/lib/data/travelPackageFormPage.d.ts.map +1 -0
  149. package/dist/lib/data/travelPackageFormPage.js +40 -0
  150. package/dist/lib/data/vehicleData.d.ts +2 -0
  151. package/dist/lib/data/vehicleData.d.ts.map +1 -0
  152. package/dist/lib/data/vehicleData.js +187 -0
  153. package/dist/lib/data/vehicleModels.d.ts +2 -0
  154. package/dist/lib/data/vehicleModels.d.ts.map +1 -0
  155. package/dist/lib/data/vehicleModels.js +128 -0
  156. package/dist/lib/discountActions.d.ts +43 -0
  157. package/dist/lib/discountActions.d.ts.map +1 -0
  158. package/dist/lib/discountActions.js +69 -0
  159. package/dist/lib/hooks/usePersistentDraftState.d.ts +20 -0
  160. package/dist/lib/hooks/usePersistentDraftState.d.ts.map +1 -0
  161. package/dist/lib/hooks/usePersistentDraftState.js +47 -0
  162. package/dist/lib/loyaltyActions.d.ts +32 -0
  163. package/dist/lib/loyaltyActions.d.ts.map +1 -0
  164. package/dist/lib/loyaltyActions.js +92 -0
  165. package/dist/lib/models/adventure.d.ts +0 -2
  166. package/dist/lib/models/adventure.d.ts.map +1 -1
  167. package/dist/lib/models/authorization.d.ts +107 -0
  168. package/dist/lib/models/authorization.d.ts.map +1 -0
  169. package/dist/lib/models/authorization.js +263 -0
  170. package/dist/lib/models/blog.d.ts +2 -2
  171. package/dist/lib/models/booking.d.ts +7 -2
  172. package/dist/lib/models/booking.d.ts.map +1 -1
  173. package/dist/lib/models/chat.d.ts +418 -32
  174. package/dist/lib/models/chat.d.ts.map +1 -1
  175. package/dist/lib/models/chat.js +5 -1
  176. package/dist/lib/models/discount.d.ts +587 -136
  177. package/dist/lib/models/discount.d.ts.map +1 -1
  178. package/dist/lib/models/discount.js +118 -96
  179. package/dist/lib/models/forms.d.ts +384 -0
  180. package/dist/lib/models/forms.d.ts.map +1 -0
  181. package/dist/lib/models/forms.js +121 -0
  182. package/dist/lib/models/guide.d.ts +0 -2
  183. package/dist/lib/models/guide.d.ts.map +1 -1
  184. package/dist/lib/models/loyalty.d.ts +88 -0
  185. package/dist/lib/models/loyalty.d.ts.map +1 -0
  186. package/dist/lib/models/loyalty.js +1 -0
  187. package/dist/lib/models/notifications.d.ts +4 -4
  188. package/dist/lib/models/opportunities/freelance.d.ts +66 -20
  189. package/dist/lib/models/opportunities/freelance.d.ts.map +1 -1
  190. package/dist/lib/models/opportunities/internship.d.ts +66 -20
  191. package/dist/lib/models/opportunities/internship.d.ts.map +1 -1
  192. package/dist/lib/models/opportunities/job.d.ts +66 -20
  193. package/dist/lib/models/opportunities/job.d.ts.map +1 -1
  194. package/dist/lib/models/opportunities/opportunity.d.ts +66 -20
  195. package/dist/lib/models/opportunities/opportunity.d.ts.map +1 -1
  196. package/dist/lib/models/opportunities/opportunity.js +2 -0
  197. package/dist/lib/models/opportunities/volunteerJob.d.ts +66 -20
  198. package/dist/lib/models/opportunities/volunteerJob.d.ts.map +1 -1
  199. package/dist/lib/models/package.d.ts +81 -220
  200. package/dist/lib/models/package.d.ts.map +1 -1
  201. package/dist/lib/models/package.js +0 -2
  202. package/dist/lib/models/props.d.ts +1 -1
  203. package/dist/lib/models/props.d.ts.map +1 -1
  204. package/dist/lib/models/rental.d.ts +0 -2
  205. package/dist/lib/models/rental.d.ts.map +1 -1
  206. package/dist/lib/models/stay.d.ts +4 -4
  207. package/dist/lib/models/store.d.ts +71 -0
  208. package/dist/lib/models/store.d.ts.map +1 -0
  209. package/dist/lib/models/store.js +1 -0
  210. package/dist/lib/models/tile.d.ts +0 -2
  211. package/dist/lib/models/tile.d.ts.map +1 -1
  212. package/dist/lib/models/travelPackage.d.ts +206 -305
  213. package/dist/lib/models/travelPackage.d.ts.map +1 -1
  214. package/dist/lib/models/travelPackage.js +0 -2
  215. package/dist/lib/models/user.d.ts +28 -4
  216. package/dist/lib/models/user.d.ts.map +1 -1
  217. package/dist/lib/models/user.js +10 -1
  218. package/dist/lib/opportunityFormPage.d.ts +1 -0
  219. package/dist/lib/opportunityFormPage.d.ts.map +1 -1
  220. package/dist/lib/opportunityFormPage.js +1 -0
  221. package/dist/lib/pricingActions.d.ts +13 -0
  222. package/dist/lib/pricingActions.d.ts.map +1 -0
  223. package/dist/lib/pricingActions.js +16 -0
  224. package/dist/lib/rentalActions.js +0 -1
  225. package/dist/lib/rentalDummyData.d.ts.map +1 -1
  226. package/dist/lib/rentalDummyData.js +0 -35
  227. package/dist/lib/rentalFormPage.d.ts +0 -2
  228. package/dist/lib/rentalFormPage.d.ts.map +1 -1
  229. package/dist/lib/rentalFormPage.js +0 -3
  230. package/dist/lib/storeActions.d.ts +25 -0
  231. package/dist/lib/storeActions.d.ts.map +1 -0
  232. package/dist/lib/storeActions.js +46 -0
  233. package/dist/lib/storeDummyData.d.ts +2 -26
  234. package/dist/lib/storeDummyData.d.ts.map +1 -1
  235. package/dist/lib/userAtom.d.ts +71 -36
  236. package/dist/lib/userAtom.d.ts.map +1 -1
  237. package/dist/lib/userAtom.js +11 -17
  238. package/dist/lib/utils/entitySubmission.d.ts +21 -0
  239. package/dist/lib/utils/entitySubmission.d.ts.map +1 -0
  240. package/dist/lib/utils/entitySubmission.js +10 -0
  241. package/dist/lib/utils/imageUpload.d.ts +4 -0
  242. package/dist/lib/utils/imageUpload.d.ts.map +1 -0
  243. package/dist/lib/utils/imageUpload.js +36 -0
  244. package/dist/lib/utils/tileConverters.d.ts +8 -0
  245. package/dist/lib/utils/tileConverters.d.ts.map +1 -0
  246. package/dist/lib/utils/tileConverters.js +59 -0
  247. package/dist/lib/utils.d.ts.map +1 -1
  248. package/dist/lib/utils.js +1 -1
  249. package/package.json +4 -2
@@ -0,0 +1,329 @@
1
+ import { del, get, patch, put } from "./fetcher";
2
+ function resolvePaymentStatus(record) {
3
+ if (record.paymentStatus === "paid" || record.paymentStatus === "refunded" || record.paymentStatus === "failed") {
4
+ return record.paymentStatus;
5
+ }
6
+ if (record.paymentId && record.paymentStatus !== "failed") {
7
+ return "paid";
8
+ }
9
+ if (["confirmed", "completed", "attended"].includes(record.status)) {
10
+ return "paid";
11
+ }
12
+ return "pending";
13
+ }
14
+ function normalizeGenericBooking(booking) {
15
+ return {
16
+ ...booking,
17
+ paymentStatus: resolvePaymentStatus(booking),
18
+ };
19
+ }
20
+ function normalizeStayBooking(booking) {
21
+ return {
22
+ ...booking,
23
+ entityId: booking.entityId || booking.stayId,
24
+ entityType: "Stay",
25
+ startDate: booking.startDate || booking.checkIn,
26
+ endDate: booking.endDate || booking.checkOut,
27
+ numberOfPeople: booking.numberOfPeople || booking.guests || 1,
28
+ totalPrice: booking.totalPrice || 0,
29
+ currency: booking.currency || "INR",
30
+ paymentStatus: resolvePaymentStatus(booking),
31
+ bookingCode: booking.bookingCode,
32
+ };
33
+ }
34
+ function normalizeEventBooking(booking) {
35
+ return {
36
+ ...booking,
37
+ entityId: booking.entityId || booking.eventId,
38
+ entityType: "Event",
39
+ startDate: booking.startDate || booking.eventDate,
40
+ numberOfPeople: booking.numberOfPeople || booking.numberOfSeats || 1,
41
+ totalPrice: booking.totalPrice || 0,
42
+ currency: booking.currency || "INR",
43
+ paymentStatus: resolvePaymentStatus(booking),
44
+ bookingCode: booking.bookingCode,
45
+ };
46
+ }
47
+ function normalizePackageEnquiry(enquiry) {
48
+ return {
49
+ ...enquiry,
50
+ entityId: {
51
+ _id: enquiry.packageId,
52
+ title: enquiry.packageTitle,
53
+ slug: enquiry.packageSlug,
54
+ },
55
+ entityType: "TravelPackage",
56
+ bookingKind: "package_enquiry",
57
+ entityLabel: "Package Enquiry",
58
+ startDate: enquiry.createdAt,
59
+ endDate: undefined,
60
+ numberOfPeople: (Number(enquiry.males) || 0) + (Number(enquiry.females) || 0) || 1,
61
+ totalPrice: enquiry.totalPrice || 0,
62
+ currency: "INR",
63
+ paymentStatus: "not_applicable",
64
+ bookingCode: enquiry.bookingCode,
65
+ status: enquiry.status === "denied" ? "cancelled" : enquiry.status,
66
+ };
67
+ }
68
+ function dedupeBookings(bookings) {
69
+ const seen = new Set();
70
+ return bookings.filter((booking) => {
71
+ const key = String(booking._id || "") || `${booking.entityType}:${booking.bookingCode || booking.startDate}`;
72
+ if (seen.has(key))
73
+ return false;
74
+ seen.add(key);
75
+ return true;
76
+ });
77
+ }
78
+ function hideSupersededPackageEnquiries(bookings) {
79
+ const bookedPackageIds = new Set(bookings
80
+ .filter((booking) => booking.entityType === "TravelPackage" &&
81
+ booking.bookingKind !== "package_enquiry")
82
+ .map((booking) => {
83
+ const packageId = booking.entityId?._id || booking.entityId;
84
+ return String(packageId || "");
85
+ })
86
+ .filter(Boolean));
87
+ return bookings.filter((booking) => {
88
+ if (booking.bookingKind !== "package_enquiry")
89
+ return true;
90
+ const packageId = booking.entityId?._id || booking.packageId || booking.entityId;
91
+ return !bookedPackageIds.has(String(packageId || ""));
92
+ });
93
+ }
94
+ // ── Overview ──────────────────────────────────────────────────────────────────
95
+ export async function getHostDashboardOverview() {
96
+ try {
97
+ const data = (await get("/host/dashboard/overview"));
98
+ console.log("getHostDashboardOverview [SUCCESS]:", data);
99
+ return { success: true, data: data.data };
100
+ }
101
+ catch (error) {
102
+ console.error("getHostDashboardOverview [ERROR]:", error);
103
+ return { success: false, data: null, error: error.message };
104
+ }
105
+ }
106
+ // ── Listings ──────────────────────────────────────────────────────────────────
107
+ export async function getHostDashboardListings(params) {
108
+ try {
109
+ const q = new URLSearchParams();
110
+ if (params?.page)
111
+ q.set("page", String(params.page));
112
+ if (params?.limit)
113
+ q.set("limit", String(params.limit));
114
+ if (params?.category)
115
+ q.set("category", params.category);
116
+ if (params?.status)
117
+ q.set("status", params.status);
118
+ const data = (await get(`/host/dashboard/listings?${q.toString()}`));
119
+ console.log("getHostDashboardListings [DATA]:", data);
120
+ return { success: true, ...data.data };
121
+ }
122
+ catch (error) {
123
+ return {
124
+ success: false,
125
+ listings: [],
126
+ pagination: null,
127
+ error: error.message,
128
+ };
129
+ }
130
+ }
131
+ export async function deleteHostDashboardListing(id, category) {
132
+ try {
133
+ const data = (await del(`/host/dashboard/listings/${id}?category=${category}`));
134
+ return { success: true, data: data.data };
135
+ }
136
+ catch (error) {
137
+ return { success: false, error: error.message };
138
+ }
139
+ }
140
+ export async function archiveHostDashboardListing(id, category) {
141
+ try {
142
+ const data = (await patch(`/host/dashboard/listings/${id}/archive?category=${category}`, {}));
143
+ return { success: true, data: data.data };
144
+ }
145
+ catch (error) {
146
+ return { success: false, error: error.message };
147
+ }
148
+ }
149
+ export async function restoreHostDashboardListing(id, category) {
150
+ try {
151
+ const data = (await patch(`/host/dashboard/listings/${id}/restore?category=${category}`, {}));
152
+ return { success: true, data: data.data };
153
+ }
154
+ catch (error) {
155
+ return { success: false, error: error.message };
156
+ }
157
+ }
158
+ // ── Bookings ──────────────────────────────────────────────────────────────────
159
+ export async function getHostDashboardBookings(params) {
160
+ try {
161
+ const q = new URLSearchParams();
162
+ if (params?.page)
163
+ q.set("page", String(params.page));
164
+ if (params?.limit)
165
+ q.set("limit", String(params.limit));
166
+ if (params?.status)
167
+ q.set("status", params.status);
168
+ const data = (await get(`/host/dashboard/bookings?${q.toString()}`));
169
+ return { success: true, ...data.data };
170
+ }
171
+ catch (error) {
172
+ return {
173
+ success: false,
174
+ bookings: [],
175
+ pagination: null,
176
+ error: error.message,
177
+ };
178
+ }
179
+ }
180
+ export async function updateHostBookingStatus(id, status, type) {
181
+ try {
182
+ const data = (await put(`/host/dashboard/bookings/${id}/status`, {
183
+ status,
184
+ type,
185
+ }));
186
+ return { success: true, booking: data.data.booking };
187
+ }
188
+ catch (error) {
189
+ return { success: false, error: error.message };
190
+ }
191
+ }
192
+ // ── Reviews ───────────────────────────────────────────────────────────────────
193
+ export async function getHostDashboardReviews(params) {
194
+ try {
195
+ const q = new URLSearchParams();
196
+ if (params?.page)
197
+ q.set("page", String(params.page));
198
+ if (params?.limit)
199
+ q.set("limit", String(params.limit));
200
+ const data = (await get(`/host/dashboard/reviews?${q.toString()}`));
201
+ return { success: true, ...data.data };
202
+ }
203
+ catch (error) {
204
+ return {
205
+ success: false,
206
+ reviews: [],
207
+ averageRating: 0,
208
+ pagination: null,
209
+ error: error.message,
210
+ };
211
+ }
212
+ }
213
+ // ── Earnings ──────────────────────────────────────────────────────────────────
214
+ export async function getHostDashboardEarnings() {
215
+ try {
216
+ const data = (await get("/host/dashboard/earnings"));
217
+ return { success: true, ...data.data };
218
+ }
219
+ catch (error) {
220
+ return { success: false, error: error.message };
221
+ }
222
+ }
223
+ export async function getHostEarningsBookings(params) {
224
+ try {
225
+ const q = new URLSearchParams();
226
+ if (params?.page)
227
+ q.set("page", String(params.page));
228
+ if (params?.limit)
229
+ q.set("limit", String(params.limit));
230
+ if (params?.status)
231
+ q.set("status", params.status);
232
+ const data = (await get(`/host/dashboard/earnings/bookings?${q.toString()}`));
233
+ return { success: true, ...data.data };
234
+ }
235
+ catch (error) {
236
+ return { success: false, bookings: [], pagination: null, error: error.message };
237
+ }
238
+ }
239
+ // ── Availability & Slots ──────────────────────────────────────────────────────
240
+ export async function updateListingAvailability(id, data) {
241
+ try {
242
+ const res = (await patch(`/host/dashboard/availability/${id}`, data));
243
+ return { success: true, data: res.data };
244
+ }
245
+ catch (error) {
246
+ return { success: false, error: error.message };
247
+ }
248
+ }
249
+ // ── User Bookings ─────────────────────────────────────────────────────────────
250
+ export async function getHostBookingDetail(id, type) {
251
+ try {
252
+ const data = (await get(`/host/dashboard/bookings/${id}?type=${type}`));
253
+ return { success: true, booking: data.data.booking, type: data.data.type };
254
+ }
255
+ catch (error) {
256
+ return { success: false, booking: null, error: error.message };
257
+ }
258
+ }
259
+ export async function getMyBookings() {
260
+ try {
261
+ const [genericResult, stayResult, eventResult, packageResult] = await Promise.allSettled([
262
+ get("/bookings/my"),
263
+ get("/stays/bookings/me"),
264
+ get("/events/bookings/me"),
265
+ get("/enquiries/my"),
266
+ ]);
267
+ const genericBookings = genericResult.status === "fulfilled"
268
+ ? (genericResult.value?.data || []).map((booking) => ({
269
+ ...normalizeGenericBooking(booking),
270
+ entityLabel: booking.entityType === "TravelPackage"
271
+ ? "Package Booking"
272
+ : booking.entityType,
273
+ }))
274
+ : [];
275
+ const stayBookings = stayResult.status === "fulfilled"
276
+ ? (stayResult.value?.data || []).map(normalizeStayBooking)
277
+ : [];
278
+ const eventBookings = eventResult.status === "fulfilled"
279
+ ? (eventResult.value?.data || []).map(normalizeEventBooking)
280
+ : [];
281
+ const packageBookings = packageResult.status === "fulfilled"
282
+ ? (packageResult.value?.data || []).map(normalizePackageEnquiry)
283
+ : [];
284
+ const combined = hideSupersededPackageEnquiries(dedupeBookings([
285
+ ...genericBookings,
286
+ ...stayBookings,
287
+ ...eventBookings,
288
+ ...packageBookings,
289
+ ])).sort((a, b) => new Date(b.createdAt || b.startDate || 0).getTime() -
290
+ new Date(a.createdAt || a.startDate || 0).getTime());
291
+ const packageEnquiries = combined.filter((booking) => booking.bookingKind === "package_enquiry");
292
+ const bookings = combined.filter((booking) => booking.bookingKind !== "package_enquiry");
293
+ return { success: true, bookings, packageEnquiries };
294
+ }
295
+ catch (error) {
296
+ return { success: false, bookings: [], packageEnquiries: [], error: error.message };
297
+ }
298
+ }
299
+ export async function verifyBookingCodeHost(code) {
300
+ try {
301
+ const data = (await get(`/bookings/verify/${code}`));
302
+ return { success: true, ...data.data };
303
+ }
304
+ catch (error) {
305
+ return { success: false, error: error.message };
306
+ }
307
+ }
308
+ export async function manageAdventureSlots(id, slots) {
309
+ try {
310
+ const res = (await put(`/host/dashboard/adventures/${id}/slots`, {
311
+ slots,
312
+ }));
313
+ return { success: true, data: res.data };
314
+ }
315
+ catch (error) {
316
+ return { success: false, error: error.message };
317
+ }
318
+ }
319
+ export async function updateAdventurePricingDiscount(id, discountPercentage) {
320
+ try {
321
+ const res = (await put(`/host/dashboard/adventures/${id}/pricing`, {
322
+ discountPercentage,
323
+ }));
324
+ return { success: true, data: res.data };
325
+ }
326
+ catch (error) {
327
+ return { success: false, error: error.message };
328
+ }
329
+ }
@@ -0,0 +1,141 @@
1
+ export interface LocationAncestor {
2
+ _id: string;
3
+ name: string;
4
+ slug: string;
5
+ type: string;
6
+ }
7
+ export interface Location {
8
+ _id: string;
9
+ name: string;
10
+ type: "world" | "country" | "state" | "city" | "area" | "landmark";
11
+ parentId: string | null;
12
+ ancestors: LocationAncestor[];
13
+ slug: string;
14
+ slugPath: string;
15
+ path?: string;
16
+ coordinates?: {
17
+ lat: number;
18
+ lng: number;
19
+ };
20
+ images: string[];
21
+ description: string;
22
+ highlights?: string[];
23
+ metadata: {
24
+ bestTimeToVisit?: string;
25
+ budget?: string;
26
+ spokenLanguage?: string;
27
+ currency?: string;
28
+ timezone?: string;
29
+ tags: string[];
30
+ population?: number;
31
+ countryCode?: string;
32
+ };
33
+ stats: {
34
+ threadCount: number;
35
+ itineraryCount: number;
36
+ childCount: number;
37
+ listingsCount?: number;
38
+ discussionsCount?: number;
39
+ popularityScore?: number;
40
+ };
41
+ }
42
+ export interface ForumThread {
43
+ _id: string;
44
+ title: string;
45
+ content: string;
46
+ locationId: string;
47
+ category: string;
48
+ authorName: string;
49
+ upvotes: number;
50
+ downvotes: number;
51
+ score: number;
52
+ commentCount: number;
53
+ isPinned: boolean;
54
+ createdAt: string;
55
+ userId?: {
56
+ firstName?: string;
57
+ lastName?: string;
58
+ username?: string;
59
+ } | null;
60
+ }
61
+ export interface ForumComment {
62
+ _id: string;
63
+ threadId: string;
64
+ parentId: string | null;
65
+ content: string;
66
+ authorName: string;
67
+ upvotes: number;
68
+ createdAt: string;
69
+ userId?: {
70
+ firstName?: string;
71
+ lastName?: string;
72
+ username?: string;
73
+ } | null;
74
+ }
75
+ export declare function fetchLocationBySlugPath(slugPath: string): Promise<{
76
+ success: boolean;
77
+ location?: Location;
78
+ error?: string;
79
+ }>;
80
+ export declare function fetchLocationChildren(id: string): Promise<{
81
+ success: boolean;
82
+ children?: Location[];
83
+ error?: string;
84
+ }>;
85
+ export declare function fetchLocationBreadcrumb(id: string): Promise<LocationAncestor[]>;
86
+ export declare function searchLocations(q: string, opts?: {
87
+ type?: string;
88
+ limit?: number;
89
+ }): Promise<{
90
+ results: Location[];
91
+ total: number;
92
+ }>;
93
+ export declare function fetchLocationItineraries(id: string, page?: number): Promise<{
94
+ itineraries: any[];
95
+ total: number;
96
+ }>;
97
+ export declare function fetchThreads(locationId: string, opts?: {
98
+ sort?: string;
99
+ category?: string;
100
+ page?: number;
101
+ }): Promise<{
102
+ threads: ForumThread[];
103
+ total: number;
104
+ }>;
105
+ export declare function createThread(payload: {
106
+ locationId: string;
107
+ title: string;
108
+ content: string;
109
+ category?: string;
110
+ tags?: string[];
111
+ authorName?: string;
112
+ authorEmail?: string;
113
+ }): Promise<{
114
+ success: boolean;
115
+ thread?: ForumThread;
116
+ error?: string;
117
+ }>;
118
+ export declare function fetchComments(threadId: string, page?: number): Promise<{
119
+ comments: ForumComment[];
120
+ total: number;
121
+ }>;
122
+ export declare function fetchThread(threadId: string): Promise<{
123
+ success: boolean;
124
+ thread?: ForumThread;
125
+ error?: string;
126
+ }>;
127
+ export declare function createComment(threadId: string, payload: {
128
+ content: string;
129
+ parentId?: string;
130
+ authorName?: string;
131
+ authorEmail?: string;
132
+ }): Promise<{
133
+ success: boolean;
134
+ comment?: ForumComment;
135
+ error?: string;
136
+ }>;
137
+ export declare function voteThread(threadId: string, vote: "up" | "down" | "remove"): Promise<{
138
+ success: boolean;
139
+ error?: string;
140
+ }>;
141
+ //# sourceMappingURL=location.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"location.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/location.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ import { get, post } from "./fetcher";
2
+ // ─── Location fetching ────────────────────────────────────────────────────────
3
+ export async function fetchLocationBySlugPath(slugPath) {
4
+ try {
5
+ const data = await get(`/locations/by-path?slugPath=${encodeURIComponent(slugPath)}`);
6
+ return { success: true, location: data.data };
7
+ }
8
+ catch (err) {
9
+ return { success: false, error: err.message };
10
+ }
11
+ }
12
+ export async function fetchLocationChildren(id) {
13
+ try {
14
+ const data = await get(`/locations/${id}/children`);
15
+ return { success: true, children: data.data };
16
+ }
17
+ catch (err) {
18
+ return { success: false, error: err.message, children: [] };
19
+ }
20
+ }
21
+ export async function fetchLocationBreadcrumb(id) {
22
+ try {
23
+ const data = await get(`/locations/${id}/breadcrumb`);
24
+ return data.data ?? [];
25
+ }
26
+ catch {
27
+ return [];
28
+ }
29
+ }
30
+ export async function searchLocations(q, opts = {}) {
31
+ try {
32
+ const params = new URLSearchParams({ q, limit: String(opts.limit ?? 8) });
33
+ if (opts.type)
34
+ params.set("type", opts.type);
35
+ const data = await get(`/locations/search?${params}`);
36
+ return data.data ?? { results: [], total: 0 };
37
+ }
38
+ catch {
39
+ return { results: [], total: 0 };
40
+ }
41
+ }
42
+ // ─── Itineraries ──────────────────────────────────────────────────────────────
43
+ export async function fetchLocationItineraries(id, page = 1) {
44
+ try {
45
+ const data = await get(`/locations/${id}/itineraries?page=${page}&limit=6`);
46
+ return data.data ?? { itineraries: [], total: 0 };
47
+ }
48
+ catch {
49
+ return { itineraries: [], total: 0 };
50
+ }
51
+ }
52
+ // ─── Forum ────────────────────────────────────────────────────────────────────
53
+ export async function fetchThreads(locationId, opts = {}) {
54
+ try {
55
+ const params = new URLSearchParams({
56
+ sort: opts.sort ?? "latest",
57
+ page: String(opts.page ?? 1),
58
+ limit: "20",
59
+ });
60
+ if (opts.category)
61
+ params.set("category", opts.category);
62
+ const data = await get(`/locations/${locationId}/threads?${params}`);
63
+ return data.data ?? { threads: [], total: 0 };
64
+ }
65
+ catch {
66
+ return { threads: [], total: 0 };
67
+ }
68
+ }
69
+ export async function createThread(payload) {
70
+ try {
71
+ const data = await post("/locations/threads", payload);
72
+ return { success: true, thread: data.data };
73
+ }
74
+ catch (err) {
75
+ return { success: false, error: err.message };
76
+ }
77
+ }
78
+ export async function fetchComments(threadId, page = 1) {
79
+ try {
80
+ const data = await get(`/locations/threads/${threadId}/comments?page=${page}&limit=50`);
81
+ return data.data ?? { comments: [], total: 0 };
82
+ }
83
+ catch {
84
+ return { comments: [], total: 0 };
85
+ }
86
+ }
87
+ export async function fetchThread(threadId) {
88
+ try {
89
+ const data = await get(`/locations/threads/${threadId}`);
90
+ return { success: true, thread: data.data };
91
+ }
92
+ catch (err) {
93
+ return { success: false, error: err.message };
94
+ }
95
+ }
96
+ export async function createComment(threadId, payload) {
97
+ try {
98
+ const data = await post(`/locations/threads/${threadId}/comments`, payload);
99
+ return { success: true, comment: data.data };
100
+ }
101
+ catch (err) {
102
+ return { success: false, error: err.message };
103
+ }
104
+ }
105
+ export async function voteThread(threadId, vote) {
106
+ try {
107
+ await post(`/locations/threads/${threadId}/vote`, { vote });
108
+ return { success: true };
109
+ }
110
+ catch (err) {
111
+ return { success: false, error: err.message };
112
+ }
113
+ }
@@ -0,0 +1,91 @@
1
+ export declare function getAllNotifications(): Promise<{
2
+ success: boolean;
3
+ message: string;
4
+ notifs: {
5
+ message: string;
6
+ _id: string;
7
+ read: boolean;
8
+ type?: "new_message" | "milestone_completed" | "expense_added" | "group_invite" | "mention" | "application_received" | "application_status" | "application_shortlisted" | "id_verification_request" | "id_verified" | "id_rejected" | "package_enquiry" | "package_approval" | "package_denial" | "package_rating" | "package_review" | "opportunity_assigned" | "opportunity_approval" | "opportunity_denial" | "opportunity_rating" | "opportunity_review" | "blog_like" | "blog_comment" | "blog_posted" | "blog_approval" | "blog_denial" | "booking_confirmed" | "system" | "general" | undefined;
9
+ metadata?: {
10
+ status?: string | undefined;
11
+ rating?: number | undefined;
12
+ title?: string | undefined;
13
+ conversationId?: string | undefined;
14
+ messageId?: string | undefined;
15
+ senderId?: string | undefined;
16
+ senderName?: string | undefined;
17
+ conversationName?: string | undefined;
18
+ milestoneId?: string | undefined;
19
+ expenseId?: string | undefined;
20
+ referenceId?: string | undefined;
21
+ referenceType?: string | undefined;
22
+ } | undefined;
23
+ userId?: string | undefined;
24
+ timestamp?: any;
25
+ link?: string | undefined;
26
+ category?: "opportunity" | "blog" | "application" | "system" | "general" | "chat" | "package" | "account" | "booking" | undefined;
27
+ }[];
28
+ unreadCount: number;
29
+ error?: undefined;
30
+ } | {
31
+ success: boolean;
32
+ error: any;
33
+ notifs: never[];
34
+ unreadCount: number;
35
+ message?: undefined;
36
+ }>;
37
+ export declare function getNotifications(limit: number): Promise<{
38
+ success: boolean;
39
+ message: string;
40
+ notifs: {
41
+ message: string;
42
+ _id: string;
43
+ read: boolean;
44
+ type?: "new_message" | "milestone_completed" | "expense_added" | "group_invite" | "mention" | "application_received" | "application_status" | "application_shortlisted" | "id_verification_request" | "id_verified" | "id_rejected" | "package_enquiry" | "package_approval" | "package_denial" | "package_rating" | "package_review" | "opportunity_assigned" | "opportunity_approval" | "opportunity_denial" | "opportunity_rating" | "opportunity_review" | "blog_like" | "blog_comment" | "blog_posted" | "blog_approval" | "blog_denial" | "booking_confirmed" | "system" | "general" | undefined;
45
+ metadata?: {
46
+ status?: string | undefined;
47
+ rating?: number | undefined;
48
+ title?: string | undefined;
49
+ conversationId?: string | undefined;
50
+ messageId?: string | undefined;
51
+ senderId?: string | undefined;
52
+ senderName?: string | undefined;
53
+ conversationName?: string | undefined;
54
+ milestoneId?: string | undefined;
55
+ expenseId?: string | undefined;
56
+ referenceId?: string | undefined;
57
+ referenceType?: string | undefined;
58
+ } | undefined;
59
+ userId?: string | undefined;
60
+ timestamp?: any;
61
+ link?: string | undefined;
62
+ category?: "opportunity" | "blog" | "application" | "system" | "general" | "chat" | "package" | "account" | "booking" | undefined;
63
+ }[];
64
+ unreadCount: number;
65
+ error?: undefined;
66
+ } | {
67
+ success: boolean;
68
+ error: any;
69
+ notifs: never[];
70
+ unreadCount: number;
71
+ message?: undefined;
72
+ }>;
73
+ export declare function toggleNotification(id: string, read: boolean): Promise<{
74
+ success: boolean;
75
+ message: string;
76
+ error?: undefined;
77
+ } | {
78
+ success: boolean;
79
+ error: any;
80
+ message?: undefined;
81
+ }>;
82
+ export declare function toggleAllNotification(read: boolean): Promise<{
83
+ success: boolean;
84
+ message: string;
85
+ error?: undefined;
86
+ } | {
87
+ success: boolean;
88
+ error: any;
89
+ message?: undefined;
90
+ }>;
91
+ //# sourceMappingURL=notifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/notifications.ts"],"names":[],"mappings":"AAkBA,wBAAsB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsBxC;AAMD,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsBnD;AAMD,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO;;;;;;;;GAiBjE;AAMD,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,OAAO;;;;;;;;GAexD"}