| @@ -25,8 +25,11 @@ | ||
| 25 | 25 | CUSTOMERS_BULK: "/customers/bulk", |
| 26 | 26 | CUSTOMER_STATS: "/customers/stats", |
| 27 | 27 | CUSTOMER_BOOKINGS: (id: string | number) => `/customers/${id}/bookings`, |
| 28 | 28 | CUSTOMER_ME: "/customers/me", |
| 29 | + CUSTOMER_CHANGE_PASSWORD: "/customers/me/password", | |
| 30 | + CUSTOMER_CHANGE_EMAIL: "/customers/me/email", | |
| 31 | + CUSTOMER_RESEND_EMAIL_CHANGE: "/customers/me/email/resend", | |
| 29 | 32 | CUSTOMER_MY_BOOKINGS: "/customers/my-bookings", |
| 30 | 33 | CUSTOMER_MY_PAYMENTS: "/customers/my-payments", |
| 31 | 34 | CUSTOMER_MY_DOCUMENTS: "/customers/my-documents", |
| 32 | 35 | CUSTOMER_MY_SUPPORT_TICKETS: "/customers/my-support-tickets", |
| @@ -51,8 +54,9 @@ | ||
| 51 | 54 | `/trips/${id}/permanent-delete`, |
| 52 | 55 | TRIP_DUPLICATE: (id: string | number) => `/trips/${id}/duplicate`, |
| 53 | 56 | TRIPS_STATS: "/trips/stats", |
| 54 | 57 | TRIP_ATTRIBUTES: (id: string | number) => `/trips/${id}/attributes`, |
| 58 | + TRIP_AVAILABLE_DATES: (id: string | number) => `/trips/${id}/available-dates`, | |
| 55 | 59 | |
| 56 | 60 | // Departures |
| 57 | 61 | DEPARTURES: "/departures", |
| 58 | 62 | TRIP_DEPARTURES: (tripId: string | number) => `/trips/${tripId}/departures`, |
| @@ -87,8 +91,10 @@ | ||
| 87 | 91 | |
| 88 | 92 | // Settings |
| 89 | 93 | SETTINGS: "/settings", |
| 90 | 94 | SETTINGS_GROUP: (group: string) => `/settings?group=${group}`, |
| 95 | + // Booking form config, optionally resolved for one trip (Pro form conditions) | |
| 96 | + SETTINGS_BOOKING_FORM: "/settings/booking-form", | |
| 91 | 97 | SETTINGS_PAGES: "/settings/pages", |
| 92 | 98 | SETTINGS_FLUSH_REWRITE_RULES: "/settings/flush-rewrite-rules", |
| 93 | 99 | SETTINGS_CHECK_SHORTCODE: (pageId: string | number) => |
| 94 | 100 | `/settings/check-shortcode/${pageId}`, |
| @@ -106,8 +112,19 @@ | ||
| 106 | 112 | ENQUIRIES_BULK: "/enquiries/bulk", |
| 107 | 113 | ENQUIRY_STATS: "/enquiries/stats", |
| 108 | 114 | ENQUIRY_RESPOND: (id: string | number) => `/enquiries/${id}/respond`, |
| 109 | 115 | |
| 116 | + // Scheduled balance payments (Yatra Pro — Scheduled Payments module). | |
| 117 | + // These routes only exist while that module is enabled; the UI is gated on | |
| 118 | + // the same `scheduledPaymentsEnabled` flag the module localizes. | |
| 119 | + SCHEDULED_PAYMENTS: "/scheduled-payments", | |
| 120 | + SCHEDULED_PAYMENTS_STATS: "/scheduled-payments/stats", | |
| 121 | + SCHEDULED_PAYMENT_CANCEL: (id: string | number) => | |
| 122 | + `/scheduled-payments/${id}/cancel`, | |
| 123 | + SCHEDULED_PAYMENTS_OUTSTANDING: "/scheduled-payments/outstanding", | |
| 124 | + SCHEDULED_PAYMENT_SEND_LINK: (bookingId: string | number) => | |
| 125 | + `/scheduled-payments/outstanding/${bookingId}/send-link`, | |
| 126 | + | |
| 110 | 127 | // Reports |
| 111 | 128 | REPORTS: "/reports", |
| 112 | 129 | REPORTS_EXPORT: (type: string) => `/reports/export?type=${type}`, |
| 113 | 130 | |
| @@ -147,8 +164,9 @@ | ||
| 147 | 164 | GOOGLE_CALENDAR_SETTINGS: "/google-calendar/settings", |
| 148 | 165 | GOOGLE_CALENDAR_CONNECT: "/google-calendar/connect", |
| 149 | 166 | GOOGLE_CALENDAR_DISCONNECT: "/google-calendar/disconnect", |
| 150 | 167 | GOOGLE_CALENDAR_SYNC_ALL: "/google-calendar/sync-all", |
| 168 | + GOOGLE_CALENDAR_RESYNC: "/google-calendar/resync", | |
| 151 | 169 | |
| 152 | 170 | // Tools |
| 153 | 171 | TOOLS_SYSTEM_STATUS: "/tools/system-status", |
| 154 | 172 | TOOLS_ACTIVE_JOBS: "/tools/active-jobs", |
| @@ -202,8 +220,13 @@ | ||
| 202 | 220 | ITINERARY_BY_TRIP: (tripId: string | number) => |
| 203 | 221 | `/itinerary?trip_id=${tripId}`, |
| 204 | 222 | ITINERARY_DAY_ENTRY_BY_DAY_ID: (dayId: string | number) => |
| 205 | 223 | `/itinerary/day-entry-by-day-id/${dayId}`, |
| 224 | + // One-shot save of every activity for a single day. Replaces N sequential | |
| 225 | + // PUTs (one per activity) with a single batch request — the controller | |
| 226 | + // dispatches each row to update/create and returns per-row results. | |
| 227 | + ITINERARY_DAY_ACTIVITIES_BULK: (dayId: string | number) => | |
| 228 | + `/itinerary/day/${dayId}/activities/bulk`, | |
| 206 | 229 | |
| 207 | 230 | // Saved Trips |
| 208 | 231 | SAVED_TRIPS: "/saved-trips", |
| 209 | 232 | |
| @@ -215,8 +238,14 @@ | ||
| 215 | 238 | EMAIL_TEMPLATE_TEST: (id: string | number) => `/email-templates/${id}/test`, |
| 216 | 239 | EMAIL_TEMPLATE_DUPLICATE: (id: string | number) => |
| 217 | 240 | `/email-templates/${id}/duplicate`, |
| 218 | 241 | EMAIL_TEMPLATE_VARIABLES: "/email-templates/variables", |
| 242 | + // Trip-specific overrides of a global template (Pro Email Automation) | |
| 243 | + EMAIL_TEMPLATE_OVERRIDE: (id: string | number) => | |
| 244 | + `/email-templates/${id}/override`, | |
| 245 | + EMAIL_TEMPLATE_OVERRIDES_REORDER: "/email-templates/overrides/reorder", | |
| 246 | + EMAIL_TEMPLATE_RESOLVE: "/email-templates/resolve", | |
| 247 | + EMAIL_TEMPLATE_EVENTS: "/email-templates/events", | |
| 219 | 248 | EMAIL_SEQUENCES: "/email-sequences", |
| 220 | 249 | EMAIL_SEQUENCE_GET: (id: string | number) => `/email-sequences/${id}`, |
| 221 | 250 | EMAIL_LOGS: "/email-logs", |
| 222 | 251 | |