@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,167 @@
1
+ import { get, patch, post, del } from "./fetcher";
2
+ import { calculatePricingStrategyDisplayUnitPrice, getPricingCurrency, getPricingStrategies } from "../models/pricing";
3
+ // ─── Public ───────────────────────────────────────────────────────────────────
4
+ export async function getPackageTiles(limit, filters) {
5
+ try {
6
+ let endpoint = `/packages/getAllPackageTiles?status=open`;
7
+ if (limit)
8
+ endpoint += `&limit=${limit}`;
9
+ if (filters?.categoryId)
10
+ endpoint += `&categoryId=${filters.categoryId}`;
11
+ if (filters?.difficultyLevel)
12
+ endpoint += `&difficultyLevel=${filters.difficultyLevel}`;
13
+ const data = await get(endpoint);
14
+ return {
15
+ success: true,
16
+ message: data.message,
17
+ tiles: data.data.map(packageToTile),
18
+ };
19
+ }
20
+ catch (error) {
21
+ console.error("Failed to fetch package tiles:", error);
22
+ return { success: false, error: error.message, tiles: [] };
23
+ }
24
+ }
25
+ export async function trendingPackageTiles(limit) {
26
+ return getPackageTiles(limit);
27
+ }
28
+ export async function packageDetails(slug) {
29
+ try {
30
+ const data = await get(`/packages/getPackage/${slug}`);
31
+ return { success: true, message: data.message, package: data.data };
32
+ }
33
+ catch (error) {
34
+ console.error("Failed to fetch package details:", error);
35
+ return { success: false, error: error.message, package: null };
36
+ }
37
+ }
38
+ export async function packageMetaData(slug) {
39
+ try {
40
+ const data = await get(`/packages/getPackage/${slug}`);
41
+ const p = data.data;
42
+ return {
43
+ success: true,
44
+ metadata: {
45
+ image: p.packageImages?.[0] || "/images/placeholder.svg",
46
+ title: p.title,
47
+ city: p.city,
48
+ state: p.state,
49
+ categoryId: p.categoryId,
50
+ difficultyLevel: p.difficultyLevel,
51
+ price: calculatePricingStrategyDisplayUnitPrice(getPricingStrategies(p)?.[0]),
52
+ currency: getPricingCurrency(p),
53
+ },
54
+ };
55
+ }
56
+ catch (error) {
57
+ return { success: false, error: error.message, metadata: null };
58
+ }
59
+ }
60
+ export async function packagesByUsername(username, limit) {
61
+ try {
62
+ let endpoint = `/packages/getPackagesByUsername/${username}?status=open`;
63
+ if (limit)
64
+ endpoint += `&limit=${limit}`;
65
+ const data = await get(endpoint);
66
+ return {
67
+ success: true,
68
+ message: data.message,
69
+ tiles: (data.data || []).map(packageToTile),
70
+ };
71
+ }
72
+ catch (error) {
73
+ return { success: false, error: error.message, tiles: [] };
74
+ }
75
+ }
76
+ export async function adminPackagesByHost(username) {
77
+ try {
78
+ const data = await get(`/packages/getPackagesByUsername/${username}?status=open,pending,draft,denied,archived,closed`);
79
+ return { success: true, packages: data.data || [] };
80
+ }
81
+ catch (error) {
82
+ return { success: false, packages: [], error: error.message };
83
+ }
84
+ }
85
+ // ─── Host Dashboard ───────────────────────────────────────────────────────────
86
+ export async function packagesByHost() {
87
+ try {
88
+ const data = await get(`/host/dashboard/listings?category=package`);
89
+ return {
90
+ success: true,
91
+ message: data.message,
92
+ packages: data.data?.listings || [],
93
+ };
94
+ }
95
+ catch (error) {
96
+ return { success: false, error: error.message, packages: [] };
97
+ }
98
+ }
99
+ export async function createPackage(formData) {
100
+ try {
101
+ const data = await post("/packages/create", formData);
102
+ return {
103
+ success: true,
104
+ slug: data.data.slug,
105
+ _id: data.data._id,
106
+ message: data.message,
107
+ };
108
+ }
109
+ catch (error) {
110
+ return { success: false, error: error.message };
111
+ }
112
+ }
113
+ export async function deletePackage(slug) {
114
+ try {
115
+ const data = await del(`/packages/delete/${slug}`);
116
+ return { success: true, message: data.message };
117
+ }
118
+ catch (error) {
119
+ return { success: false, error: error.message };
120
+ }
121
+ }
122
+ // ─── Admin ────────────────────────────────────────────────────────────────────
123
+ export async function getPendingPackages() {
124
+ try {
125
+ const data = await get(`/admin/packages?status=all`);
126
+ return { success: true, message: data.message, packages: data.data };
127
+ }
128
+ catch (error) {
129
+ return { success: false, error: error.message, packages: [] };
130
+ }
131
+ }
132
+ export async function approvePackage(slug) {
133
+ try {
134
+ const data = await patch(`/admin/packages/approve/${slug}`, {});
135
+ return { success: true, message: data.message };
136
+ }
137
+ catch (error) {
138
+ return { success: false, error: error.message };
139
+ }
140
+ }
141
+ export async function rejectPackage(slug, rejectionReason) {
142
+ try {
143
+ const data = await patch(`/admin/packages/reject/${slug}`, { rejectionReason });
144
+ return { success: true, message: data.message };
145
+ }
146
+ catch (error) {
147
+ return { success: false, error: error.message };
148
+ }
149
+ }
150
+ // ─── Helper ───────────────────────────────────────────────────────────────────
151
+ function packageToTile(p) {
152
+ return {
153
+ slug: p.slug || "",
154
+ image: p.packageImages?.[0] || "/images/placeholder.svg",
155
+ title: p.title || "",
156
+ description: p.description || "",
157
+ location: `${p.city}, ${p.state}`,
158
+ date: p.createdAt ? new Date(p.createdAt) : new Date(),
159
+ rating: p.rating,
160
+ price: calculatePricingStrategyDisplayUnitPrice(getPricingStrategies(p)?.[0]),
161
+ currency: getPricingCurrency(p),
162
+ duration: p.duration,
163
+ difficultyLevel: p.difficultyLevel,
164
+ tileType: "packages",
165
+ host: p.host,
166
+ };
167
+ }
@@ -0,0 +1,191 @@
1
+ import type { Location } from "./location";
2
+ export interface ListingPreview {
3
+ _id?: string;
4
+ slug: string;
5
+ title: string;
6
+ city?: string;
7
+ state?: string;
8
+ country?: string;
9
+ images?: string[];
10
+ packageImages?: string[];
11
+ rating?: number;
12
+ views?: number;
13
+ vehicleType?: string;
14
+ propertyType?: string;
15
+ category?: string;
16
+ eventDate?: string;
17
+ price?: number;
18
+ currency?: string;
19
+ isFree?: boolean;
20
+ difficultyLevel?: string;
21
+ }
22
+ export interface BrandSummary {
23
+ _id: string;
24
+ name: string;
25
+ slug: string;
26
+ description?: string;
27
+ logo?: string;
28
+ coverImage?: string;
29
+ verificationStatus?: string;
30
+ stats?: {
31
+ followers?: number;
32
+ clicks?: number;
33
+ };
34
+ locations?: string[];
35
+ locationPaths?: string[];
36
+ offerings?: Array<{
37
+ type: string;
38
+ refId: string;
39
+ }>;
40
+ }
41
+ export interface AdOfferSummary {
42
+ _id: string;
43
+ slug: string;
44
+ title: string;
45
+ shortDescription?: string;
46
+ description?: string;
47
+ creative?: Array<{
48
+ image?: string;
49
+ title?: string;
50
+ subtitle?: string;
51
+ ctaLabel?: string;
52
+ badge?: string;
53
+ aspectRatio?: string;
54
+ }>;
55
+ brand?: BrandSummary;
56
+ promotedEntity?: {
57
+ entityType: string;
58
+ slug?: string;
59
+ href?: string;
60
+ };
61
+ maxCommission?: {
62
+ booking?: number;
63
+ click?: number;
64
+ view?: number;
65
+ };
66
+ placement?: {
67
+ expectedCommission?: {
68
+ booking?: number;
69
+ click?: number;
70
+ view?: number;
71
+ };
72
+ platformFeeRate?: number;
73
+ publisherPayoutRate?: number;
74
+ scores?: {
75
+ relevanceScore?: number;
76
+ trustScore?: number;
77
+ consistencyScore?: number;
78
+ fraudGuardScore?: number;
79
+ finalScore?: number;
80
+ };
81
+ explanation?: string[];
82
+ };
83
+ href?: string;
84
+ }
85
+ export interface DiscussionSummary {
86
+ _id: string;
87
+ title: string;
88
+ content: string;
89
+ slug: string;
90
+ tags: string[];
91
+ upvotes: number;
92
+ downvotes: number;
93
+ repliesCount: number;
94
+ createdAt: string;
95
+ authorName?: string;
96
+ entityType?: "place" | "brand" | null;
97
+ entityId?: string | null;
98
+ parentId?: string | null;
99
+ linkedPlaces?: string[];
100
+ }
101
+ export interface PlacePageData {
102
+ place: Location;
103
+ childPlaces: Location[];
104
+ nearbyPlaces: Location[];
105
+ relatedPlaces: Location[];
106
+ topListings: {
107
+ stays: ListingPreview[];
108
+ packages: ListingPreview[];
109
+ rentals: ListingPreview[];
110
+ events: ListingPreview[];
111
+ };
112
+ discussions: DiscussionSummary[];
113
+ featuredBrands: BrandSummary[];
114
+ trendingContent: DiscussionSummary[];
115
+ }
116
+ export interface TripPlanSummary {
117
+ _id: string;
118
+ title?: string;
119
+ slug?: string;
120
+ destination?: string;
121
+ numberOfDays?: number;
122
+ budgetType?: string;
123
+ interests?: string[];
124
+ totalEstimatedCost?: number;
125
+ overview?: string;
126
+ startDate?: string;
127
+ endDate?: string;
128
+ createdAt?: string;
129
+ }
130
+ export interface PlaceFullPageData {
131
+ place: Location;
132
+ breadcrumb: Array<{
133
+ name: string;
134
+ slug: string;
135
+ href: string;
136
+ }>;
137
+ images: string[];
138
+ thingsToDo: Location[];
139
+ famousPlaces: Location[];
140
+ events: ListingPreview[];
141
+ adventures: ListingPreview[];
142
+ packages: ListingPreview[];
143
+ stays: ListingPreview[];
144
+ guides: ListingPreview[];
145
+ opportunities: ListingPreview[];
146
+ restaurants: ListingPreview[];
147
+ brands: BrandSummary[];
148
+ discussions: DiscussionSummary[];
149
+ trips: TripPlanSummary[];
150
+ adOffers: AdOfferSummary[];
151
+ }
152
+ export interface PlaceResolution {
153
+ place: Pick<Location, "_id" | "name" | "slug" | "slugPath" | "type" | "ancestors"> & {
154
+ path?: string;
155
+ };
156
+ href: string;
157
+ }
158
+ export declare function fetchPlacePage(slugPath: string): Promise<{
159
+ success: boolean;
160
+ pageData?: PlacePageData;
161
+ error?: string;
162
+ }>;
163
+ export declare function fetchPlaceFullPage(slugPath: string): Promise<{
164
+ success: boolean;
165
+ pageData?: PlaceFullPageData;
166
+ error?: string;
167
+ }>;
168
+ export declare function fetchPlaces(params?: Record<string, string>): Promise<{
169
+ success: boolean;
170
+ items: Location[];
171
+ total: number;
172
+ error?: string;
173
+ }>;
174
+ export declare function resolvePlaceLink(params: {
175
+ country?: string;
176
+ state?: string;
177
+ city?: string;
178
+ area?: string;
179
+ landmark?: string;
180
+ path?: string;
181
+ }): Promise<{
182
+ success: boolean;
183
+ resolution?: PlaceResolution;
184
+ error?: string;
185
+ }>;
186
+ export declare function fetchAdOffers(params?: Record<string, string>): Promise<{
187
+ success: boolean;
188
+ items: AdOfferSummary[];
189
+ error?: string;
190
+ }>;
191
+ //# sourceMappingURL=place.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"place.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/place.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE;QACN,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,cAAc,CAAC,EAAE;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,SAAS,CAAC,EAAE;QACV,kBAAkB,CAAC,EAAE;YACnB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,CAAC;QACF,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,MAAM,CAAC,EAAE;YACP,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,QAAQ,CAAC;IAChB,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,YAAY,EAAE,QAAQ,EAAE,CAAC;IACzB,aAAa,EAAE,QAAQ,EAAE,CAAC;IAC1B,WAAW,EAAE;QACX,KAAK,EAAE,cAAc,EAAE,CAAC;QACxB,QAAQ,EAAE,cAAc,EAAE,CAAC;QAC3B,OAAO,EAAE,cAAc,EAAE,CAAC;QAC1B,MAAM,EAAE,cAAc,EAAE,CAAC;KAC1B,CAAC;IACF,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,cAAc,EAAE,YAAY,EAAE,CAAC;IAC/B,eAAe,EAAE,iBAAiB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,QAAQ,CAAC;IAChB,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,YAAY,EAAE,QAAQ,EAAE,CAAC;IACzB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,aAAa,EAAE,cAAc,EAAE,CAAC;IAChC,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvG,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9D,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAOD;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAClE,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAOD;AAED,wBAAsB,WAAW,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,OAAO,CAAC;IAC9E,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAYD;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC;IACV,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAWD;AAED,wBAAsB,aAAa,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,OAAO,CAAC;IAChF,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAQD"}
@@ -0,0 +1,57 @@
1
+ import { get } from "./fetcher";
2
+ export async function fetchPlacePage(slugPath) {
3
+ try {
4
+ const data = await get(`/places/${slugPath}`);
5
+ return { success: true, pageData: data.data };
6
+ }
7
+ catch (err) {
8
+ return { success: false, error: err.message };
9
+ }
10
+ }
11
+ export async function fetchPlaceFullPage(slugPath) {
12
+ try {
13
+ const data = await get(`/places/${slugPath}/full-data`);
14
+ return { success: true, pageData: data.data };
15
+ }
16
+ catch (err) {
17
+ return { success: false, error: err.message };
18
+ }
19
+ }
20
+ export async function fetchPlaces(params = {}) {
21
+ try {
22
+ const query = new URLSearchParams(params).toString();
23
+ const data = await get(`/places${query ? `?${query}` : ""}`);
24
+ return {
25
+ success: true,
26
+ items: data.data?.items || [],
27
+ total: data.data?.total || 0,
28
+ };
29
+ }
30
+ catch (err) {
31
+ return { success: false, items: [], total: 0, error: err.message };
32
+ }
33
+ }
34
+ export async function resolvePlaceLink(params) {
35
+ try {
36
+ const query = new URLSearchParams();
37
+ Object.entries(params).forEach(([key, value]) => {
38
+ if (value)
39
+ query.set(key, value);
40
+ });
41
+ const data = await get(`/places/resolve?${query.toString()}`);
42
+ return { success: true, resolution: data.data };
43
+ }
44
+ catch (err) {
45
+ return { success: false, error: err.message };
46
+ }
47
+ }
48
+ export async function fetchAdOffers(params = {}) {
49
+ try {
50
+ const query = new URLSearchParams(params).toString();
51
+ const data = await get(`/ads${query ? `?${query}` : ""}`, false);
52
+ return { success: true, items: data.data || [] };
53
+ }
54
+ catch (err) {
55
+ return { success: false, items: [], error: err.message };
56
+ }
57
+ }
@@ -0,0 +1,65 @@
1
+ import type { User } from "../models/user";
2
+ export declare function getUserPortfolio(id: string): Promise<{
3
+ success: boolean;
4
+ message: string;
5
+ portfolios: {
6
+ user: string;
7
+ url: string;
8
+ views: number;
9
+ shares: number;
10
+ createdAt: Date;
11
+ updatedAt: Date;
12
+ likes: number;
13
+ comments: number;
14
+ _id: string;
15
+ mediaType: "image" | "video";
16
+ caption: string;
17
+ mainUrl?: string | undefined;
18
+ }[];
19
+ error?: undefined;
20
+ } | {
21
+ success: boolean;
22
+ error: any;
23
+ portfolios: never[];
24
+ message?: undefined;
25
+ }>;
26
+ export declare function addPortfolioItem(formData: FormData): Promise<{
27
+ success: boolean;
28
+ message: string;
29
+ portfolio: {
30
+ user: string;
31
+ url: string;
32
+ views: number;
33
+ shares: number;
34
+ createdAt: Date;
35
+ updatedAt: Date;
36
+ likes: number;
37
+ comments: number;
38
+ _id: string;
39
+ mediaType: "image" | "video";
40
+ caption: string;
41
+ mainUrl?: string | undefined;
42
+ };
43
+ error?: undefined;
44
+ } | {
45
+ success: boolean;
46
+ error: any;
47
+ portfolio: null;
48
+ message?: undefined;
49
+ }>;
50
+ export declare function removePortfolioItem(id: string): Promise<{
51
+ success: boolean;
52
+ message: string;
53
+ error?: undefined;
54
+ } | {
55
+ success: boolean;
56
+ error: any;
57
+ message?: undefined;
58
+ }>;
59
+ export declare function saveUserResume(file: File): Promise<{
60
+ success: boolean;
61
+ message?: string;
62
+ error?: string;
63
+ user: User | null;
64
+ }>;
65
+ //# sourceMappingURL=portfolio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/portfolio.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAa3C,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;GAUhD;AAQD,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;GAYxD;AAQD,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,MAAM;;;;;;;;GAYnD;AAQD,wBAAsB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CACnB,CAAC,CAiBD"}
@@ -0,0 +1,62 @@
1
+ import { del, get, patch, post } from "./fetcher";
2
+ // volunteer specific
3
+ // portfolio
4
+ export async function getUserPortfolio(id) {
5
+ try {
6
+ const endpoint = "/portfolio/getPost/" + id;
7
+ const data = await get(endpoint);
8
+ return { success: true, message: data.message, portfolios: data.data };
9
+ }
10
+ catch (error) {
11
+ console.error("Failed to fetch user details: ", error);
12
+ return { success: false, error: error.message, portfolios: [] };
13
+ }
14
+ }
15
+ // volunteer specific
16
+ // portfolio
17
+ export async function addPortfolioItem(formData) {
18
+ try {
19
+ const endpoint = "/portfolio/add";
20
+ const data = await post(endpoint, formData);
21
+ return { success: true, message: data.message, portfolio: data.data };
22
+ }
23
+ catch (error) {
24
+ console.error("Failed to fetch user details: ", error);
25
+ return { success: false, error: error.message, portfolio: null };
26
+ }
27
+ }
28
+ // volunteer specific
29
+ // portfolio
30
+ export async function removePortfolioItem(id) {
31
+ try {
32
+ const endpoint = "/portfolio/delete/" + id;
33
+ const data = await del(endpoint);
34
+ return {
35
+ success: true,
36
+ message: data.message,
37
+ };
38
+ }
39
+ catch (error) {
40
+ console.error("Failed to fetch user details: ", error);
41
+ return { success: false, error: error.message };
42
+ }
43
+ }
44
+ // volunteer specific
45
+ // portfolio
46
+ // resume
47
+ export async function saveUserResume(file) {
48
+ try {
49
+ const endpoint = `/users/resume-update`;
50
+ const formData = new FormData();
51
+ formData.append("resume", file);
52
+ const data = await patch(endpoint, formData);
53
+ return {
54
+ success: true,
55
+ message: data.message,
56
+ user: data.data,
57
+ };
58
+ }
59
+ catch (error) {
60
+ return { success: false, error: error.message, user: null };
61
+ }
62
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Property Actions — thin wrapper over stayActions.ts
3
+ *
4
+ * "Property" is the user-facing name for "Stay".
5
+ * All API calls go through the same /stays backend routes.
6
+ */
7
+ export { fetchStays as fetchProperties } from "./stay";
8
+ export { fetchStayBySlug as fetchPropertyBySlug } from "./stay";
9
+ export { createStayListing as createProperty } from "./stay";
10
+ export { updateStayListing as updateProperty } from "./stay";
11
+ export { deleteStayListing as deleteProperty } from "./stay";
12
+ export { getMyStayListings as getMyProperties } from "./stay";
13
+ export { getStayManagers as getPropertyManagers } from "./stay";
14
+ export { addStayManager as addPropertyManager } from "./stay";
15
+ export { updateStayManager as updatePropertyManager } from "./stay";
16
+ export { removeStayManager as removePropertyManager } from "./stay";
17
+ //# sourceMappingURL=property.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"property.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/property.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,eAAe,IAAI,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAChE,OAAO,EAAE,iBAAiB,IAAI,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,iBAAiB,IAAI,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,iBAAiB,IAAI,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,iBAAiB,IAAI,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,eAAe,IAAI,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAChE,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,iBAAiB,IAAI,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AACpE,OAAO,EAAE,iBAAiB,IAAI,qBAAqB,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Property Actions — thin wrapper over stayActions.ts
3
+ *
4
+ * "Property" is the user-facing name for "Stay".
5
+ * All API calls go through the same /stays backend routes.
6
+ */
7
+ export { fetchStays as fetchProperties } from "./stay";
8
+ export { fetchStayBySlug as fetchPropertyBySlug } from "./stay";
9
+ export { createStayListing as createProperty } from "./stay";
10
+ export { updateStayListing as updateProperty } from "./stay";
11
+ export { deleteStayListing as deleteProperty } from "./stay";
12
+ export { getMyStayListings as getMyProperties } from "./stay";
13
+ export { getStayManagers as getPropertyManagers } from "./stay";
14
+ export { addStayManager as addPropertyManager } from "./stay";
15
+ export { updateStayManager as updatePropertyManager } from "./stay";
16
+ export { removeStayManager as removePropertyManager } from "./stay";
@@ -0,0 +1,87 @@
1
+ import { Rental, RentalMetaData } from "../models/rental";
2
+ import { TileProps } from "../models/tile";
3
+ export declare function getRentalTiles(limit?: number, filters?: {
4
+ vehicleType?: string;
5
+ fuelType?: string;
6
+ driverOption?: string;
7
+ }): Promise<{
8
+ success: boolean;
9
+ tiles: TileProps[];
10
+ message?: string;
11
+ error?: string;
12
+ }>;
13
+ export declare function trendingRentalTiles(limit: number): Promise<{
14
+ success: boolean;
15
+ tiles: TileProps[];
16
+ message?: string;
17
+ error?: string;
18
+ }>;
19
+ export declare function rentalDetails(slug: string, options?: {
20
+ edit?: boolean;
21
+ }): Promise<{
22
+ success: boolean;
23
+ rental: Rental | null;
24
+ message?: string;
25
+ error?: string;
26
+ }>;
27
+ export declare function rentalMetaData(slug: string): Promise<{
28
+ success: boolean;
29
+ metadata: RentalMetaData | null;
30
+ message?: string;
31
+ error?: string;
32
+ }>;
33
+ export declare function rentalsByUsername(username: string, limit?: number): Promise<{
34
+ success: boolean;
35
+ tiles: TileProps[];
36
+ message?: string;
37
+ error?: string;
38
+ }>;
39
+ export declare function rentalsByHost(): Promise<{
40
+ success: boolean;
41
+ rentals: Rental[];
42
+ message?: string;
43
+ error?: string;
44
+ }>;
45
+ export declare function createRental(formData: FormData): Promise<{
46
+ success: boolean;
47
+ slug?: string;
48
+ message?: string;
49
+ error?: string;
50
+ }>;
51
+ export declare function editRental(formData: FormData, slug: string): Promise<{
52
+ success: boolean;
53
+ message?: string;
54
+ error?: string;
55
+ }>;
56
+ export declare function deleteRental(slug: string): Promise<{
57
+ success: boolean;
58
+ message?: string;
59
+ error?: string;
60
+ }>;
61
+ export declare function getPendingRentals(): Promise<{
62
+ success: boolean;
63
+ rentals: Rental[];
64
+ message?: string;
65
+ error?: string;
66
+ }>;
67
+ export declare function adminRentalsByHost(username: string): Promise<{
68
+ success: boolean;
69
+ rentals: Rental[];
70
+ error?: string;
71
+ }>;
72
+ export declare function approveRental(slug: string): Promise<{
73
+ success: boolean;
74
+ message?: string;
75
+ error?: string;
76
+ }>;
77
+ export declare function rejectRental(slug: string, rejectionReason: string): Promise<{
78
+ success: boolean;
79
+ message?: string;
80
+ error?: string;
81
+ }>;
82
+ export declare function getRentalBookingsAdmin(slugOrId: string): Promise<{
83
+ success: boolean;
84
+ bookings: any[];
85
+ error?: string;
86
+ }>;
87
+ //# sourceMappingURL=rental.d.ts.map