@myrjfa/state 2.1.9 → 2.2.0

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 (174) hide show
  1. package/dist/hooks/usePersistentDraftState.d.ts +20 -0
  2. package/dist/hooks/usePersistentDraftState.d.ts.map +1 -0
  3. package/dist/hooks/usePersistentDraftState.js +47 -0
  4. package/dist/index.d.ts +3 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +3 -0
  7. package/dist/lib/actions/actions.d.ts +17 -19
  8. package/dist/lib/actions/actions.d.ts.map +1 -1
  9. package/dist/lib/actions/actions.js +24 -7
  10. package/dist/lib/actions/auth.d.ts +2 -2
  11. package/dist/lib/actions/auth.d.ts.map +1 -1
  12. package/dist/lib/actions/auth.js +9 -0
  13. package/dist/lib/actions/booking.js +2 -2
  14. package/dist/lib/actions/fetcher.js +2 -1
  15. package/dist/lib/actions.d.ts +556 -0
  16. package/dist/lib/actions.d.ts.map +1 -0
  17. package/dist/lib/actions.js +1327 -0
  18. package/dist/lib/adminDashboardActions.d.ts +61 -0
  19. package/dist/lib/adminDashboardActions.d.ts.map +1 -0
  20. package/dist/lib/adminDashboardActions.js +89 -0
  21. package/dist/lib/adventureActions.d.ts +102 -0
  22. package/dist/lib/adventureActions.d.ts.map +1 -0
  23. package/dist/lib/adventureActions.js +202 -0
  24. package/dist/lib/adventureDummyData.d.ts +3 -0
  25. package/dist/lib/adventureDummyData.d.ts.map +1 -0
  26. package/dist/lib/adventureDummyData.js +138 -0
  27. package/dist/lib/adventureFormPage.d.ts +39 -0
  28. package/dist/lib/adventureFormPage.d.ts.map +1 -0
  29. package/dist/lib/adventureFormPage.js +70 -0
  30. package/dist/lib/brandActions.d.ts +83 -0
  31. package/dist/lib/brandActions.d.ts.map +1 -0
  32. package/dist/lib/brandActions.js +28 -0
  33. package/dist/lib/companionActions.d.ts +174 -0
  34. package/dist/lib/companionActions.d.ts.map +1 -0
  35. package/dist/lib/companionActions.js +276 -0
  36. package/dist/lib/companionDummyData.d.ts +99 -0
  37. package/dist/lib/companionDummyData.d.ts.map +1 -0
  38. package/dist/lib/companionDummyData.js +203 -0
  39. package/dist/lib/destinations.d.ts +14 -0
  40. package/dist/lib/destinations.d.ts.map +1 -0
  41. package/dist/lib/destinations.js +203 -0
  42. package/dist/lib/entitySubmission.d.ts +21 -0
  43. package/dist/lib/entitySubmission.d.ts.map +1 -0
  44. package/dist/lib/entitySubmission.js +10 -0
  45. package/dist/lib/eventActions.d.ts +176 -0
  46. package/dist/lib/eventActions.d.ts.map +1 -0
  47. package/dist/lib/eventActions.js +222 -0
  48. package/dist/lib/eventFormPage.d.ts +49 -0
  49. package/dist/lib/eventFormPage.d.ts.map +1 -0
  50. package/dist/lib/eventFormPage.js +84 -0
  51. package/dist/lib/eventsDummyData.d.ts +54 -0
  52. package/dist/lib/eventsDummyData.d.ts.map +1 -0
  53. package/dist/lib/eventsDummyData.js +586 -0
  54. package/dist/lib/guideActions.d.ts +53 -0
  55. package/dist/lib/guideActions.d.ts.map +1 -0
  56. package/dist/lib/guideActions.js +127 -0
  57. package/dist/lib/guideDummyData.d.ts +3 -0
  58. package/dist/lib/guideDummyData.d.ts.map +1 -0
  59. package/dist/lib/guideDummyData.js +66 -0
  60. package/dist/lib/hooks/use-mobile.js +0 -1
  61. package/dist/lib/hooks/useChatSocket.js +0 -1
  62. package/dist/lib/hooks/useHostCalendarSelection.d.ts +51 -0
  63. package/dist/lib/hooks/useHostCalendarSelection.d.ts.map +1 -0
  64. package/dist/lib/hooks/useHostCalendarSelection.js +200 -0
  65. package/dist/lib/hostDashboardActions.d.ts +189 -0
  66. package/dist/lib/hostDashboardActions.d.ts.map +1 -0
  67. package/dist/lib/hostDashboardActions.js +400 -0
  68. package/dist/lib/imageUpload.d.ts +4 -0
  69. package/dist/lib/imageUpload.d.ts.map +1 -0
  70. package/dist/lib/imageUpload.js +36 -0
  71. package/dist/lib/locationActions.d.ts +141 -0
  72. package/dist/lib/locationActions.d.ts.map +1 -0
  73. package/dist/lib/locationActions.js +113 -0
  74. package/dist/lib/models/adventure.d.ts +26 -9
  75. package/dist/lib/models/adventure.d.ts.map +1 -1
  76. package/dist/lib/models/blog.d.ts +2 -2
  77. package/dist/lib/models/discount.d.ts +160 -0
  78. package/dist/lib/models/discount.d.ts.map +1 -0
  79. package/dist/lib/models/discount.js +106 -0
  80. package/dist/lib/models/enquiry.d.ts +34 -0
  81. package/dist/lib/models/enquiry.d.ts.map +1 -0
  82. package/dist/lib/models/enquiry.js +140 -0
  83. package/dist/lib/models/guide.d.ts +4 -3
  84. package/dist/lib/models/guide.d.ts.map +1 -1
  85. package/dist/lib/models/notifications.d.ts +12 -12
  86. package/dist/lib/models/opportunities/freelance.d.ts +76 -76
  87. package/dist/lib/models/opportunities/internship.d.ts +76 -76
  88. package/dist/lib/models/opportunities/job.d.ts +78 -78
  89. package/dist/lib/models/opportunities/opportunity.d.ts +76 -76
  90. package/dist/lib/models/opportunities/volunteerJob.d.ts +76 -76
  91. package/dist/lib/models/package.d.ts +380 -86
  92. package/dist/lib/models/package.d.ts.map +1 -1
  93. package/dist/lib/models/package.js +9 -8
  94. package/dist/lib/models/pricing.d.ts +255 -0
  95. package/dist/lib/models/pricing.d.ts.map +1 -0
  96. package/dist/lib/models/pricing.js +145 -0
  97. package/dist/lib/models/rental.d.ts +12 -7
  98. package/dist/lib/models/rental.d.ts.map +1 -1
  99. package/dist/lib/models/review.d.ts +5 -2
  100. package/dist/lib/models/review.d.ts.map +1 -1
  101. package/dist/lib/models/stay.d.ts +11 -8
  102. package/dist/lib/models/stay.d.ts.map +1 -1
  103. package/dist/lib/models/stay.js +1 -0
  104. package/dist/lib/models/tile.d.ts +11 -7
  105. package/dist/lib/models/tile.d.ts.map +1 -1
  106. package/dist/lib/models/travelPackage.d.ts +943 -0
  107. package/dist/lib/models/travelPackage.d.ts.map +1 -0
  108. package/dist/lib/models/travelPackage.js +326 -0
  109. package/dist/lib/multistepDraft.d.ts +4 -0
  110. package/dist/lib/multistepDraft.d.ts.map +1 -0
  111. package/dist/lib/multistepDraft.js +18 -0
  112. package/dist/lib/opportunityFormData.d.ts +13 -0
  113. package/dist/lib/opportunityFormData.d.ts.map +1 -0
  114. package/dist/lib/opportunityFormData.js +62 -0
  115. package/dist/lib/opportunityFormPage.d.ts +38 -0
  116. package/dist/lib/opportunityFormPage.d.ts.map +1 -0
  117. package/dist/lib/opportunityFormPage.js +33 -0
  118. package/dist/lib/packageActions.d.ts +86 -0
  119. package/dist/lib/packageActions.d.ts.map +1 -0
  120. package/dist/lib/packageActions.js +168 -0
  121. package/dist/lib/packageDummyData.d.ts +3 -0
  122. package/dist/lib/packageDummyData.d.ts.map +1 -0
  123. package/dist/lib/packageDummyData.js +57 -0
  124. package/dist/lib/placeActions.d.ts +192 -0
  125. package/dist/lib/placeActions.d.ts.map +1 -0
  126. package/dist/lib/placeActions.js +57 -0
  127. package/dist/lib/propertyActions.d.ts +17 -0
  128. package/dist/lib/propertyActions.d.ts.map +1 -0
  129. package/dist/lib/propertyActions.js +16 -0
  130. package/dist/lib/rentalActions.d.ts +86 -0
  131. package/dist/lib/rentalActions.d.ts.map +1 -0
  132. package/dist/lib/rentalActions.js +235 -0
  133. package/dist/lib/rentalDummyData.d.ts +3 -0
  134. package/dist/lib/rentalDummyData.d.ts.map +1 -0
  135. package/dist/lib/rentalDummyData.js +402 -0
  136. package/dist/lib/rentalFormPage.d.ts +48 -0
  137. package/dist/lib/rentalFormPage.d.ts.map +1 -0
  138. package/dist/lib/rentalFormPage.js +97 -0
  139. package/dist/lib/roomActions.d.ts +39 -0
  140. package/dist/lib/roomActions.d.ts.map +1 -0
  141. package/dist/lib/roomActions.js +74 -0
  142. package/dist/lib/stayActions.d.ts +97 -0
  143. package/dist/lib/stayActions.d.ts.map +1 -0
  144. package/dist/lib/stayActions.js +138 -0
  145. package/dist/lib/staysDummyData.d.ts +72 -0
  146. package/dist/lib/staysDummyData.d.ts.map +1 -0
  147. package/dist/lib/staysDummyData.js +694 -0
  148. package/dist/lib/storeDummyData.d.ts +33 -0
  149. package/dist/lib/storeDummyData.d.ts.map +1 -0
  150. package/dist/lib/storeDummyData.js +336 -0
  151. package/dist/lib/travelPackageActions.d.ts +102 -0
  152. package/dist/lib/travelPackageActions.d.ts.map +1 -0
  153. package/dist/lib/travelPackageActions.js +487 -0
  154. package/dist/lib/travelPackageFormData.d.ts +20 -0
  155. package/dist/lib/travelPackageFormData.d.ts.map +1 -0
  156. package/dist/lib/travelPackageFormData.js +54 -0
  157. package/dist/lib/travelPackageFormPage.d.ts +32 -0
  158. package/dist/lib/travelPackageFormPage.d.ts.map +1 -0
  159. package/dist/lib/travelPackageFormPage.js +43 -0
  160. package/dist/lib/userAtom.d.ts +32 -32
  161. package/dist/lib/userAtom.d.ts.map +1 -1
  162. package/dist/lib/userAtom.js +17 -1
  163. package/dist/lib/util.d.ts +11 -0
  164. package/dist/lib/util.d.ts.map +1 -0
  165. package/dist/lib/util.js +82 -0
  166. package/dist/lib/utils.d.ts.map +1 -1
  167. package/dist/lib/utils.js +1 -0
  168. package/dist/lib/vehicleData.d.ts +2 -0
  169. package/dist/lib/vehicleData.d.ts.map +1 -0
  170. package/dist/lib/vehicleData.js +181 -0
  171. package/dist/lib/vehicleModels.d.ts +2 -0
  172. package/dist/lib/vehicleModels.d.ts.map +1 -0
  173. package/dist/lib/vehicleModels.js +128 -0
  174. package/package.json +6 -5
@@ -0,0 +1,70 @@
1
+ import { createSinglePricing, normalizePricing } from "@myrjfa/state/dist/lib/models/pricing";
2
+ export function getDefaultAdventureFormState() {
3
+ return {
4
+ hostId: "",
5
+ hostUsername: "",
6
+ title: "",
7
+ description: "",
8
+ activityType: "trekking",
9
+ difficulty: "Moderate",
10
+ city: "",
11
+ state: "",
12
+ address: "",
13
+ locationSearchAddress: "",
14
+ pincode: "",
15
+ latitude: "",
16
+ longitude: "",
17
+ meetingPoint: "",
18
+ pricing: createSinglePricing({
19
+ currency: "INR",
20
+ finalBasePrice: 1500,
21
+ basePrice: 2000,
22
+ description: "Standard admission",
23
+ }),
24
+ maxGroupSize: "10",
25
+ minAge: "12",
26
+ bestSeason: "Year round",
27
+ safetyInfo: "",
28
+ highlightsRaw: "",
29
+ includedRaw: "",
30
+ excludedRaw: "",
31
+ gearRaw: "",
32
+ operatingHoursStart: "09:00",
33
+ operatingHoursEnd: "18:00",
34
+ slots: [],
35
+ status: "pending",
36
+ };
37
+ }
38
+ export function hydrateAdventureForm(adventure) {
39
+ return {
40
+ hostId: typeof adventure.hostId === "string" ? adventure.hostId : adventure.hostId?._id || "",
41
+ hostUsername: adventure.hostId?.username || "",
42
+ title: adventure.title || "",
43
+ description: adventure.description || "",
44
+ activityType: adventure.activityType === "other" && adventure.customActivityType
45
+ ? adventure.customActivityType
46
+ : adventure.activityType || "trekking",
47
+ difficulty: adventure.difficulty || "Moderate",
48
+ city: adventure.city || "",
49
+ state: adventure.state || "",
50
+ address: adventure.address || "",
51
+ locationSearchAddress: adventure.locationSearchAddress || adventure.address || "",
52
+ pincode: adventure.pincode || "",
53
+ latitude: adventure.latitude != null ? String(adventure.latitude) : "",
54
+ longitude: adventure.longitude != null ? String(adventure.longitude) : "",
55
+ meetingPoint: adventure.meetingPoint || "",
56
+ pricing: normalizePricing(adventure),
57
+ maxGroupSize: String(adventure.maxGroupSize || 10),
58
+ minAge: String(adventure.minAge || 12),
59
+ bestSeason: adventure.bestSeason || "Year round",
60
+ safetyInfo: adventure.safetyInfo || "",
61
+ highlightsRaw: (adventure.highlights || []).join("\n"),
62
+ includedRaw: (adventure.included || []).join("\n"),
63
+ excludedRaw: (adventure.excluded || []).join("\n"),
64
+ gearRaw: (adventure.gear || []).join("\n"),
65
+ operatingHoursStart: adventure.operatingHours?.start || "09:00",
66
+ operatingHoursEnd: adventure.operatingHours?.end || "18:00",
67
+ slots: [],
68
+ status: adventure.status || "pending",
69
+ };
70
+ }
@@ -0,0 +1,83 @@
1
+ import type { AdOfferSummary, BrandSummary, DiscussionSummary, ListingPreview } from "./placeActions";
2
+ import type { Location } from "./locationActions";
3
+ export interface BrandPageData {
4
+ brand: BrandSummary & {
5
+ ownerId: string;
6
+ externalLinks?: Array<{
7
+ title: string;
8
+ url: string;
9
+ }>;
10
+ promotions?: {
11
+ commissionRate?: number;
12
+ promotionScore?: number;
13
+ conversionScore?: number;
14
+ };
15
+ stats?: {
16
+ followers?: number;
17
+ clicks?: number;
18
+ conversions?: number;
19
+ };
20
+ };
21
+ owner?: {
22
+ username?: string;
23
+ firstName?: string;
24
+ lastName?: string;
25
+ profilePic?: string;
26
+ };
27
+ locations: Location[];
28
+ offerings: {
29
+ stays: ListingPreview[];
30
+ packages: ListingPreview[];
31
+ rentals: ListingPreview[];
32
+ events: ListingPreview[];
33
+ adventures: ListingPreview[];
34
+ guides: ListingPreview[];
35
+ opportunities: ListingPreview[];
36
+ };
37
+ discussions: DiscussionSummary[];
38
+ trendingContent: DiscussionSummary[];
39
+ adOffers: AdOfferSummary[];
40
+ brandOwnedAdOffers: AdOfferSummary[];
41
+ }
42
+ export declare function fetchBrandPage(slug: string): Promise<{
43
+ success: boolean;
44
+ pageData?: BrandPageData;
45
+ error?: string;
46
+ }>;
47
+ export interface AdOfferDetail extends AdOfferSummary {
48
+ description?: string;
49
+ placements?: Array<{
50
+ _id: string;
51
+ placementType: string;
52
+ expectedCommission?: {
53
+ booking?: number;
54
+ click?: number;
55
+ view?: number;
56
+ };
57
+ explanation?: string[];
58
+ publisherPayoutRate?: number;
59
+ platformFeeRate?: number;
60
+ scores?: {
61
+ finalScore?: number;
62
+ };
63
+ }>;
64
+ }
65
+ export declare function fetchAdOffer(slug: string): Promise<{
66
+ success: boolean;
67
+ offer?: AdOfferDetail;
68
+ error?: string;
69
+ }>;
70
+ export declare function activateAdPlacement(slug: string, payload: {
71
+ placementType: string;
72
+ publisherBrandId?: string;
73
+ publisherPlacePath?: string;
74
+ publisherContentId?: string;
75
+ publisherContentType?: string;
76
+ categoryTags?: string[];
77
+ audienceTags?: string[];
78
+ }): Promise<{
79
+ success: boolean;
80
+ data?: any;
81
+ error?: string;
82
+ }>;
83
+ //# sourceMappingURL=brandActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brandActions.d.ts","sourceRoot":"","sources":["../../src/lib/brandActions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { get, post } from "@myrjfa/state/dist/lib/actions/fetcher";
2
+ export async function fetchBrandPage(slug) {
3
+ try {
4
+ const data = await get(`/brands/${slug}`);
5
+ return { success: true, pageData: data.data };
6
+ }
7
+ catch (err) {
8
+ return { success: false, error: err.message };
9
+ }
10
+ }
11
+ export async function fetchAdOffer(slug) {
12
+ try {
13
+ const data = await get(`/ads/${slug}`, false);
14
+ return { success: true, offer: data.data };
15
+ }
16
+ catch (err) {
17
+ return { success: false, error: err.message };
18
+ }
19
+ }
20
+ export async function activateAdPlacement(slug, payload) {
21
+ try {
22
+ const data = await post(`/ads/${slug}/placements`, payload, true);
23
+ return { success: true, data: data.data };
24
+ }
25
+ catch (err) {
26
+ return { success: false, error: err.message };
27
+ }
28
+ }
@@ -0,0 +1,174 @@
1
+ export declare function getMyTravelProfile(): Promise<{
2
+ success: boolean;
3
+ error: any;
4
+ profile?: undefined;
5
+ } | {
6
+ success: boolean;
7
+ profile: any;
8
+ error?: undefined;
9
+ }>;
10
+ export declare function saveMyTravelProfile(profileData: any): Promise<{
11
+ success: boolean;
12
+ error: any;
13
+ profile?: undefined;
14
+ } | {
15
+ success: boolean;
16
+ profile: any;
17
+ error?: undefined;
18
+ }>;
19
+ export declare function createTravelPlan(planData: any): Promise<{
20
+ success: boolean;
21
+ error: any;
22
+ plan?: undefined;
23
+ } | {
24
+ success: boolean;
25
+ plan: any;
26
+ error?: undefined;
27
+ }>;
28
+ export declare function getTravelPlans(filters?: Record<string, string>): Promise<{
29
+ success: boolean;
30
+ error: any;
31
+ plans: never[];
32
+ total?: undefined;
33
+ } | {
34
+ success: boolean;
35
+ plans: any;
36
+ total: any;
37
+ error?: undefined;
38
+ }>;
39
+ export declare function getTravelPlan(id: string): Promise<{
40
+ success: boolean;
41
+ error: any;
42
+ plan?: undefined;
43
+ } | {
44
+ success: boolean;
45
+ plan: any;
46
+ error?: undefined;
47
+ }>;
48
+ export declare function updateTravelPlan(id: string, planData: any): Promise<{
49
+ success: boolean;
50
+ error: any;
51
+ plan?: undefined;
52
+ } | {
53
+ success: boolean;
54
+ plan: any;
55
+ error?: undefined;
56
+ }>;
57
+ export declare function deleteTravelPlan(id: string): Promise<{
58
+ success: boolean;
59
+ error: any;
60
+ message?: undefined;
61
+ } | {
62
+ success: boolean;
63
+ message: any;
64
+ error?: undefined;
65
+ }>;
66
+ export declare function toggleLikePlan(id: string): Promise<{
67
+ success: boolean;
68
+ error: any;
69
+ isLiked?: undefined;
70
+ } | {
71
+ success: boolean;
72
+ isLiked: any;
73
+ error?: undefined;
74
+ }>;
75
+ export declare function getMyTravelPlans(): Promise<{
76
+ success: boolean;
77
+ error: any;
78
+ plans: never[];
79
+ } | {
80
+ success: boolean;
81
+ plans: any;
82
+ error?: undefined;
83
+ }>;
84
+ export declare function getMySentRequests(): Promise<{
85
+ success: boolean;
86
+ error: any;
87
+ requests: never[];
88
+ } | {
89
+ success: boolean;
90
+ requests: any;
91
+ error?: undefined;
92
+ }>;
93
+ export declare function sendJoinRequest(planId: string, message?: string): Promise<{
94
+ success: boolean;
95
+ error: any;
96
+ request?: undefined;
97
+ } | {
98
+ success: boolean;
99
+ request: any;
100
+ error?: undefined;
101
+ }>;
102
+ export declare function getJoinRequests(planId: string): Promise<{
103
+ success: boolean;
104
+ error: any;
105
+ requests: never[];
106
+ } | {
107
+ success: boolean;
108
+ requests: any;
109
+ error?: undefined;
110
+ }>;
111
+ export declare function handleJoinRequest(planId: string, requestId: string, action: "accepted" | "rejected"): Promise<{
112
+ success: boolean;
113
+ error: any;
114
+ } | {
115
+ success: boolean;
116
+ error?: undefined;
117
+ }>;
118
+ export declare function discoverTrips(filters?: Record<string, string>): Promise<{
119
+ success: boolean;
120
+ error: any;
121
+ trips: never[];
122
+ } | {
123
+ success: boolean;
124
+ trips: any;
125
+ error?: undefined;
126
+ }>;
127
+ export declare function swipeTrip(travelPlanId: string, action: "like" | "pass"): Promise<{
128
+ success: boolean;
129
+ error: any;
130
+ joinRequestSent?: undefined;
131
+ } | {
132
+ success: boolean;
133
+ joinRequestSent: any;
134
+ error?: undefined;
135
+ }>;
136
+ export declare function discoverTravelers(): Promise<{
137
+ success: boolean;
138
+ error: any;
139
+ travelers: never[];
140
+ } | {
141
+ success: boolean;
142
+ travelers: any;
143
+ error?: undefined;
144
+ }>;
145
+ export declare function swipeTraveler(targetUserId: string, action: "like" | "pass"): Promise<{
146
+ success: boolean;
147
+ error: any;
148
+ matched?: undefined;
149
+ matchScore?: undefined;
150
+ } | {
151
+ success: boolean;
152
+ matched: any;
153
+ matchScore: any;
154
+ error?: undefined;
155
+ }>;
156
+ export declare function getMyMatches(): Promise<{
157
+ success: boolean;
158
+ error: any;
159
+ matches: never[];
160
+ } | {
161
+ success: boolean;
162
+ matches: any;
163
+ error?: undefined;
164
+ }>;
165
+ export declare function blockCompanionUser(targetUserId: string): Promise<{
166
+ success: boolean;
167
+ error: any;
168
+ message?: undefined;
169
+ } | {
170
+ success: boolean;
171
+ message: any;
172
+ error?: undefined;
173
+ }>;
174
+ //# sourceMappingURL=companionActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"companionActions.d.ts","sourceRoot":"","sources":["../../src/lib/companionActions.ts"],"names":[],"mappings":"AAyCA,wBAAsB,kBAAkB;;;;;;;;GAQvC;AAED,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,GAAG;;;;;;;;GAWzD;AAID,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,GAAG;;;;;;;;GAWnD;AAED,wBAAsB,cAAc,CAAC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;;;;;;;;;;GASxE;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM;;;;;;;;GAQ7C;AAED,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;;;;;;;;GAW/D;AAED,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM;;;;;;;;GAQhD;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM;;;;;;;;GAQ9C;AAED,wBAAsB,gBAAgB;;;;;;;;GAQrC;AAED,wBAAsB,iBAAiB;;;;;;;;GAQtC;AAID,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;;;;;;;;GAWrE;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM;;;;;;;;GAQnD;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,UAAU,GAAG,UAAU;;;;;;GAYhC;AAID,wBAAsB,aAAa,CAAC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;;;;;;;;GASvE;AAED,wBAAsB,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;;;;;;;;GAW5E;AAED,wBAAsB,iBAAiB;;;;;;;;GAQtC;AAED,wBAAsB,aAAa,CACjC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GAAG,MAAM;;;;;;;;;;GAgBxB;AAID,wBAAsB,YAAY;;;;;;;;GAQjC;AAID,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM;;;;;;;;GAW5D"}
@@ -0,0 +1,276 @@
1
+ "use server";
2
+ import { cookies } from "next/headers";
3
+ const API_BASE = process.env.NEXT_PUBLIC_API_URL ?? "http://localhost:8000/api/v1";
4
+ async function authFetch(path, options = {}) {
5
+ try {
6
+ const cookieStore = await cookies();
7
+ const allCookies = cookieStore
8
+ .getAll()
9
+ .map((c) => `${c.name}=${c.value}`)
10
+ .join("; ");
11
+ const url = `${API_BASE}/companion${path}`;
12
+ const res = await fetch(url, {
13
+ ...options,
14
+ headers: {
15
+ "Content-Type": "application/json",
16
+ Cookie: allCookies,
17
+ ...options.headers,
18
+ },
19
+ cache: "no-store",
20
+ });
21
+ if (!res.ok) {
22
+ const errBody = await res.json().catch(() => ({}));
23
+ console.error(`authFetch error [${res.status}] ${url}:`, errBody);
24
+ }
25
+ return (await res.json());
26
+ }
27
+ catch (err) {
28
+ console.error(`authFetch exception ${path}:`, err);
29
+ throw err;
30
+ }
31
+ }
32
+ // ── Travel Profile ──────────────────────────────────────────────────────────────
33
+ export async function getMyTravelProfile() {
34
+ try {
35
+ const data = await authFetch("/profile/me");
36
+ if (data.statusCode >= 400)
37
+ return { success: false, error: data.message };
38
+ return { success: true, profile: data.data };
39
+ }
40
+ catch {
41
+ return { success: false, error: "Failed to fetch profile" };
42
+ }
43
+ }
44
+ export async function saveMyTravelProfile(profileData) {
45
+ try {
46
+ const data = await authFetch("/profile", {
47
+ method: "POST",
48
+ body: JSON.stringify(profileData),
49
+ });
50
+ if (data.statusCode >= 400)
51
+ return { success: false, error: data.message };
52
+ return { success: true, profile: data.data };
53
+ }
54
+ catch {
55
+ return { success: false, error: "Failed to save profile" };
56
+ }
57
+ }
58
+ // ── Travel Plans ────────────────────────────────────────────────────────────────
59
+ export async function createTravelPlan(planData) {
60
+ try {
61
+ const data = await authFetch("/plans", {
62
+ method: "POST",
63
+ body: JSON.stringify(planData),
64
+ });
65
+ if (data.statusCode >= 400)
66
+ return { success: false, error: data.message };
67
+ return { success: true, plan: data.data };
68
+ }
69
+ catch {
70
+ return { success: false, error: "Failed to create travel plan" };
71
+ }
72
+ }
73
+ export async function getTravelPlans(filters = {}) {
74
+ try {
75
+ const query = new URLSearchParams(filters).toString();
76
+ const data = await authFetch(`/plans${query ? `?${query}` : ""}`);
77
+ if (data.statusCode >= 400)
78
+ return { success: false, error: data.message, plans: [] };
79
+ return { success: true, plans: data.data?.plans ?? data.data ?? [], total: data.data?.total ?? 0 };
80
+ }
81
+ catch {
82
+ return { success: false, error: "Failed to fetch plans", plans: [] };
83
+ }
84
+ }
85
+ export async function getTravelPlan(id) {
86
+ try {
87
+ const data = await authFetch(`/plans/${id}`);
88
+ if (data.statusCode >= 400)
89
+ return { success: false, error: data.message };
90
+ return { success: true, plan: data.data };
91
+ }
92
+ catch {
93
+ return { success: false, error: "Failed to fetch plan" };
94
+ }
95
+ }
96
+ export async function updateTravelPlan(id, planData) {
97
+ try {
98
+ const data = await authFetch(`/plans/${id}`, {
99
+ method: "PUT",
100
+ body: JSON.stringify(planData),
101
+ });
102
+ if (data.statusCode >= 400)
103
+ return { success: false, error: data.message };
104
+ return { success: true, plan: data.data };
105
+ }
106
+ catch {
107
+ return { success: false, error: "Failed to update plan" };
108
+ }
109
+ }
110
+ export async function deleteTravelPlan(id) {
111
+ try {
112
+ const data = await authFetch(`/plans/${id}`, { method: "DELETE" });
113
+ if (data.statusCode >= 400)
114
+ return { success: false, error: data.message };
115
+ return { success: true, message: data.message };
116
+ }
117
+ catch {
118
+ return { success: false, error: "Failed to delete plan" };
119
+ }
120
+ }
121
+ export async function toggleLikePlan(id) {
122
+ try {
123
+ const data = await authFetch(`/plans/${id}/like`, { method: "POST" });
124
+ if (data.statusCode >= 400)
125
+ return { success: false, error: data.message };
126
+ return { success: true, isLiked: data.data?.isLiked };
127
+ }
128
+ catch {
129
+ return { success: false, error: "Failed to like plan" };
130
+ }
131
+ }
132
+ export async function getMyTravelPlans() {
133
+ try {
134
+ const data = await authFetch("/plans/mine");
135
+ if (data.statusCode >= 400)
136
+ return { success: false, error: data.message, plans: [] };
137
+ return { success: true, plans: data.data?.plans ?? data.data ?? [] };
138
+ }
139
+ catch {
140
+ return { success: false, error: "Failed to fetch my plans", plans: [] };
141
+ }
142
+ }
143
+ export async function getMySentRequests() {
144
+ try {
145
+ const data = await authFetch("/requests/mine");
146
+ if (data.statusCode >= 400)
147
+ return { success: false, error: data.message, requests: [] };
148
+ return { success: true, requests: data.data ?? [] };
149
+ }
150
+ catch {
151
+ return { success: false, error: "Failed to fetch sent requests", requests: [] };
152
+ }
153
+ }
154
+ // ── Join Requests ───────────────────────────────────────────────────────────────
155
+ export async function sendJoinRequest(planId, message) {
156
+ try {
157
+ const data = await authFetch(`/plans/${planId}/join`, {
158
+ method: "POST",
159
+ body: JSON.stringify({ message }),
160
+ });
161
+ if (data.statusCode >= 400)
162
+ return { success: false, error: data.message };
163
+ return { success: true, request: data.data };
164
+ }
165
+ catch {
166
+ return { success: false, error: "Failed to send join request" };
167
+ }
168
+ }
169
+ export async function getJoinRequests(planId) {
170
+ try {
171
+ const data = await authFetch(`/plans/${planId}/join`);
172
+ if (data.statusCode >= 400)
173
+ return { success: false, error: data.message, requests: [] };
174
+ return { success: true, requests: data.data ?? [] };
175
+ }
176
+ catch {
177
+ return { success: false, error: "Failed to fetch requests", requests: [] };
178
+ }
179
+ }
180
+ export async function handleJoinRequest(planId, requestId, action) {
181
+ try {
182
+ const data = await authFetch(`/plans/${planId}/join/${requestId}`, {
183
+ method: "PUT",
184
+ body: JSON.stringify({ action }),
185
+ });
186
+ if (data.statusCode >= 400)
187
+ return { success: false, error: data.message };
188
+ return { success: true };
189
+ }
190
+ catch {
191
+ return { success: false, error: "Failed to handle request" };
192
+ }
193
+ }
194
+ // ── Swipe Discovery ─────────────────────────────────────────────────────────────
195
+ export async function discoverTrips(filters = {}) {
196
+ try {
197
+ const query = new URLSearchParams(filters).toString();
198
+ const data = await authFetch(`/trips/discover${query ? `?${query}` : ""}`);
199
+ if (data.statusCode >= 400)
200
+ return { success: false, error: data.message, trips: [] };
201
+ return { success: true, trips: data.data ?? [] };
202
+ }
203
+ catch {
204
+ return { success: false, error: "Failed to discover trips", trips: [] };
205
+ }
206
+ }
207
+ export async function swipeTrip(travelPlanId, action) {
208
+ try {
209
+ const data = await authFetch(`/trips/swipe`, {
210
+ method: "POST",
211
+ body: JSON.stringify({ travelPlanId, action }),
212
+ });
213
+ if (data.statusCode >= 400)
214
+ return { success: false, error: data.message };
215
+ return { success: true, joinRequestSent: data.data?.joinRequestSent ?? false };
216
+ }
217
+ catch {
218
+ return { success: false, error: "Failed to swipe trip" };
219
+ }
220
+ }
221
+ export async function discoverTravelers() {
222
+ try {
223
+ const data = await authFetch("/travelers/discover");
224
+ if (data.statusCode >= 400)
225
+ return { success: false, error: data.message, travelers: [] };
226
+ return { success: true, travelers: data.data ?? [] };
227
+ }
228
+ catch {
229
+ return { success: false, error: "Failed to discover travelers", travelers: [] };
230
+ }
231
+ }
232
+ export async function swipeTraveler(targetUserId, action) {
233
+ try {
234
+ const data = await authFetch(`/travelers/swipe`, {
235
+ method: "POST",
236
+ body: JSON.stringify({ targetUserId, action }),
237
+ });
238
+ if (data.statusCode >= 400)
239
+ return { success: false, error: data.message };
240
+ return {
241
+ success: true,
242
+ matched: data.data?.matched ?? false,
243
+ matchScore: data.data?.matchScore ?? 0,
244
+ };
245
+ }
246
+ catch {
247
+ return { success: false, error: "Failed to swipe traveler" };
248
+ }
249
+ }
250
+ // ── Matches ─────────────────────────────────────────────────────────────────────
251
+ export async function getMyMatches() {
252
+ try {
253
+ const data = await authFetch("/matches");
254
+ if (data.statusCode >= 400)
255
+ return { success: false, error: data.message, matches: [] };
256
+ return { success: true, matches: data.data ?? [] };
257
+ }
258
+ catch {
259
+ return { success: false, error: "Failed to fetch matches", matches: [] };
260
+ }
261
+ }
262
+ // ── Safety ──────────────────────────────────────────────────────────────────────
263
+ export async function blockCompanionUser(targetUserId) {
264
+ try {
265
+ const data = await authFetch("/block", {
266
+ method: "POST",
267
+ body: JSON.stringify({ targetUserId }),
268
+ });
269
+ if (data.statusCode >= 400)
270
+ return { success: false, error: data.message };
271
+ return { success: true, message: data.message };
272
+ }
273
+ catch {
274
+ return { success: false, error: "Failed to block user" };
275
+ }
276
+ }