{"info":{"_postman_id":"a66dc8e6-7dc2-43ab-aee9-7c711cf9fafb","name":"Tripezzy","description":"<html><head></head><body><h1 id=\"tripezzy-api-documentation\">Tripezzy API Documentation</h1>\n<p>This documentation outlines the available API endpoints for the Tripezzy project, a platform for travel and tourism services.</p>\n<h2 id=\"user-service\">User Service</h2>\n<h3 id=\"authentication\">Authentication</h3>\n<ul>\n<li><p><strong><code>POST /auth/signup</code></strong>: Registers a new user.</p>\n<ul>\n<li><p><strong>Request Body</strong>: JSON object containing user registration details (firstName, lastName, email, phoneNumber, password, role).</p>\n</li>\n<li><p><strong>Response</strong>: <code>201 Created</code> with the created user's details, or <code>400 Bad Request</code> for invalid input.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>POST /auth/login</code></strong>: Authenticates a user and returns a JWT.</p>\n<ul>\n<li><p><strong>Request Body</strong>: JSON object containing user login credentials (email, password).</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with the JWT token, or <code>401 Unauthorized</code> for incorrect credentials.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>POST /auth/onboard/seller</code></strong>: Onboards a user as a seller.</p>\n<ul>\n<li><p><strong>Request Body</strong>: JSON object containing seller profile details (businessName, businessDescription, businessAddress, contactNumber).</p>\n</li>\n<li><p><strong>Response</strong>: <code>201 Created</code> with the updated user details, or <code>400 Bad Request</code> for invalid input.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>POST /auth/onboard/guide</code></strong>: Onboards a user as a guide.</p>\n<ul>\n<li><p><strong>Request Body</strong>: JSON object containing guide profile details (languagesSpoken, experience).</p>\n</li>\n<li><p><strong>Response</strong>: <code>201 Created</code> with the updated user details, or <code>400 Bad Request</code> for invalid input.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"ecommerce-service\">Ecommerce Service</h2>\n<h3 id=\"product-management\">Product Management</h3>\n<ul>\n<li><p><strong><code>POST /products</code></strong>: Creates a new product.</p>\n<ul>\n<li><p><strong>Request Body</strong>: JSON object containing product details (name, description, price, stock, category, imageUrl).</p>\n</li>\n<li><p><strong>Response</strong>: <code>201 Created</code> with the created product's details, or <code>400 Bad Request</code> for invalid input.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /products/{productId}</code></strong>: Retrieves a product by its ID.</p>\n<ul>\n<li><strong>Response</strong>: <code>200 OK</code> with the product's details, or <code>404 Not Found</code> if the product does not exist.</li>\n</ul>\n</li>\n<li><p><strong><code>GET /products</code></strong>: Retrieves all products (paginated).</p>\n<ul>\n<li><p><strong>Query Parameters</strong>: <code>page</code>, <code>size</code>.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a paginated list of products.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>PUT /products/{productId}</code></strong>: Updates a product.</p>\n<ul>\n<li><p><strong>Request Body</strong>: JSON object containing updated product details.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with the updated product's details, or <code>404 Not Found</code> if the product does not exist.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>DELETE /products/{productId}</code></strong>: Deletes a product.</p>\n<ul>\n<li><strong>Response</strong>: <code>200 OK</code> with a success message, or <code>404 Not Found</code> if the product does not exist.</li>\n</ul>\n</li>\n<li><p><strong><code>DELETE /products/soft-delete/{productId}</code></strong>: Soft deletes a product.</p>\n<ul>\n<li><strong>Response</strong>: <code>200 OK</code> with a success message, or <code>404 Not Found</code> if the product does not exist.</li>\n</ul>\n</li>\n<li><p><strong><code>GET /products/search</code></strong>: Searches products based on a query (paginated).</p>\n<ul>\n<li><p><strong>Query Parameters</strong>: <code>query</code>, <code>page</code>, <code>size</code>.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a paginated list of matching products.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /products/filter</code></strong>: Filters products based on category, minimum price, and maximum price (paginated).</p>\n<ul>\n<li><p><strong>Query Parameters</strong>: <code>category</code>, <code>minPrice</code>, <code>maxPrice</code>, <code>page</code>, <code>size</code>.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a paginated list of filtered products.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"cart-management\">Cart Management</h3>\n<ul>\n<li><p><strong><code>POST /carts/{userId}/items</code></strong>: Adds an item to a user's cart.</p>\n<ul>\n<li><p><strong>Request Body</strong>: JSON object containing product ID and quantity.</p>\n</li>\n<li><p><strong>Response</strong>: <code>201 Created</code> with the updated cart details, or <code>400 Bad Request</code> for invalid input.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /carts/{userId}</code></strong>: Retrieves a user's cart.</p>\n<ul>\n<li><strong>Response</strong>: <code>200 OK</code> with the cart details, or <code>404 Not Found</code> if the cart does not exist.</li>\n</ul>\n</li>\n<li><p><strong><code>DELETE /carts/{userId}/items/{productId}</code></strong>: Removes an item from a user's cart.</p>\n<ul>\n<li><strong>Response</strong>: <code>200 OK</code> with the updated cart details, or <code>404 Not Found</code> if the cart or item does not exist.</li>\n</ul>\n</li>\n<li><p><strong><code>GET /carts/{userId}/total-cost</code></strong>: Calculates the total cost of a user's cart, with optional discount parameters.</p>\n<ul>\n<li><p><strong>Query Parameters</strong>: <code>quantity</code>, <code>price</code>.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with the total cost.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"wishlist-management\">Wishlist Management</h3>\n<ul>\n<li><p><strong><code>POST /wishlist</code></strong>: Adds a product to a user's wishlist.</p>\n<ul>\n<li><p><strong>Request Body</strong>: JSON object containing product ID and user ID.</p>\n</li>\n<li><p><strong>Response</strong>: <code>201 Created</code> with the updated wishlist details, or <code>400 Bad Request</code> for invalid input.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /wishlist/{userId}</code></strong>: Retrieves a user's wishlist (paginated).</p>\n<ul>\n<li><p><strong>Query Parameters</strong>: <code>page</code>, <code>size</code>.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a paginated list of wishlist items.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>DELETE /wishlist/{wishlistId}</code></strong>: Removes a product from a user's wishlist.</p>\n<ul>\n<li><strong>Response</strong>: <code>200 OK</code> with a success message, or <code>404 Not Found</code> if the wishlist item does not exist.</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"admin-service\">Admin Service</h2>\n<h3 id=\"destination-management\">Destination Management</h3>\n<ul>\n<li><p><strong><code>POST /destinations</code></strong>: Creates a new destination.</p>\n</li>\n<li><p><strong><code>GET /destinations</code></strong>: Retrieves all destinations (paginated).</p>\n</li>\n<li><p><strong><code>GET /destinations/{id}</code></strong>: Retrieves a destination by its ID.</p>\n</li>\n<li><p><strong><code>PUT /destinations/{id}</code></strong>: Updates a destination.</p>\n</li>\n<li><p><strong><code>DELETE /destinations/{id}</code></strong>: Deletes a destination.</p>\n</li>\n<li><p><strong><code>DELETE /destinations/soft-delete/{id}</code></strong>: Soft deletes a destination.</p>\n</li>\n<li><p><strong><code>GET /destinations/search</code></strong>: Searches destinations based on a keyword.</p>\n</li>\n<li><p><strong><code>GET /destinations/filter</code></strong>: Filters destinations based on country, category, minimum price, and maximum price.</p>\n</li>\n</ul>\n<h3 id=\"tour-management\">Tour Management</h3>\n<ul>\n<li><p><strong><code>POST /tours</code></strong>: Creates a new tour package.</p>\n</li>\n<li><p><strong><code>GET /tours</code></strong>: Retrieves all tour packages (paginated).</p>\n</li>\n<li><p><strong><code>GET /tours/{id}</code></strong>: Retrieves a tour package by its ID.</p>\n</li>\n<li><p><strong><code>GET /tours/destination/{destinationId}</code></strong>: Retrieves tour packages by destination ID.</p>\n</li>\n<li><p><strong><code>PUT /tours/{id}</code></strong>: Updates a tour package.</p>\n</li>\n<li><p><strong><code>DELETE /tours/{id}</code></strong>: Deletes a tour package.</p>\n</li>\n<li><p><strong><code>DELETE /tours/soft-delete/{id}</code></strong>: Soft deletes a tour package.</p>\n</li>\n<li><p><strong><code>GET /tours/search</code></strong>: Searches tour packages based on a keyword.</p>\n</li>\n<li><p><strong><code>GET /tours/filter</code></strong>: Filters tour packages based on destination ID, minimum price, maximum price, category, and status.</p>\n</li>\n</ul>\n<h3 id=\"core-management-grpc-aggregation\">Core Management (gRPC Aggregation)</h3>\n<ul>\n<li><p><strong><code>GET /core/blogs</code></strong>: Retrieves blog posts from Blog Service.</p>\n</li>\n<li><p><strong><code>GET /core/bookings/paginated</code></strong>: Retrieves bookings from Booking Service.</p>\n</li>\n<li><p><strong><code>GET /core/bookings/user/{userId}</code></strong>: Retrieves bookings by user ID.</p>\n</li>\n<li><p><strong><code>GET /core/bookings/destination/{destinationId}</code></strong>: Retrieves bookings by destination ID.</p>\n</li>\n<li><p><strong><code>GET /core/bookings/travel-date-range</code></strong>: Retrieves bookings by travel date range.</p>\n</li>\n<li><p><strong><code>DELETE /core/soft-delete/{bookingId}</code></strong>: Soft deletes a booking.</p>\n</li>\n<li><p><strong><code>GET /core/payment-status/{paymentStatus}</code></strong>: Retrieves bookings by payment status.</p>\n</li>\n<li><p><strong><code>PATCH /core/{bookingId}/confirm</code></strong>: Confirms a booking.</p>\n</li>\n<li><p><strong><code>GET /core/products</code></strong>: Retrieves products from Product Service.</p>\n</li>\n<li><p><strong><code>GET /core/payments</code></strong>: Retrieves payments from Payment Service.</p>\n</li>\n<li><p><strong><code>GET /core/payments/{userId}</code></strong>: Retrieves payments by user ID.</p>\n</li>\n</ul>\n<h2 id=\"payment-service\">Payment Service</h2>\n<ul>\n<li><p><strong><code>POST /core/checkout/shop/{cartId}</code></strong>: Processes checkout for a shopping cart using Stripe.</p>\n</li>\n<li><p><strong><code>POST /core/checkout/bookings/{bookingId}</code></strong>: Processes checkout for a booking using Stripe.</p>\n</li>\n<li><p><strong><code>GET /core</code></strong>: Retrieves all payment records.</p>\n</li>\n<li><p><strong><code>GET /core/user/{userId}</code></strong>: Retrieves payment records for a specific user.</p>\n</li>\n</ul>\n<h2 id=\"blog-service\">Blog Service</h2>\n<h3 id=\"blog-post-management\">Blog Post Management</h3>\n<ul>\n<li><p><strong><code>POST /blogs</code></strong>: Creates a new blog post.</p>\n<ul>\n<li><p><strong>Request Body</strong>: JSON object containing blog post details (title, content, authorId, category, tags, status).</p>\n</li>\n<li><p><strong>Response</strong>: <code>201 Created</code> with the created blog post's details, or <code>400 Bad Request</code> for invalid input.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /blogs/{blogId}</code></strong>: Retrieves a blog post by its ID.</p>\n<ul>\n<li><strong>Response</strong>: <code>200 OK</code> with the blog post's details, or <code>404 Not Found</code> if the blog post does not exist.</li>\n</ul>\n</li>\n<li><p><strong><code>GET /blogs</code></strong>: Retrieves all blog posts (paginated).</p>\n<ul>\n<li><p><strong>Query Parameters</strong>: <code>page</code>, <code>size</code>.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a paginated list of blog posts.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /blogs/author/{authorId}</code></strong>: Retrieves blog posts by author ID (paginated).</p>\n<ul>\n<li><p><strong>Query Parameters</strong>: <code>page</code>, <code>size</code>.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a paginated list of blog posts by the specified author.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /blogs/status/{status}</code></strong>: Retrieves blog posts by status (paginated).</p>\n<ul>\n<li><p><strong>Query Parameters</strong>: <code>page</code>, <code>size</code>.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a paginated list of blog posts with the specified status.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>PUT /blogs/{blogId}</code></strong>: Updates a blog post.</p>\n<ul>\n<li><p><strong>Request Body</strong>: JSON object containing updated blog post details.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with the updated blog post's details, or <code>404 Not Found</code> if the blog post does not exist.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>PUT /blogs/{blogId}/status/{status}</code></strong>: Updates the status of a blog post.</p>\n<ul>\n<li><strong>Response</strong>: <code>200 OK</code> with the updated blog post's details, or <code>404 Not Found</code> if the blog post does not exist.</li>\n</ul>\n</li>\n<li><p><strong><code>DELETE /blogs/{blogId}</code></strong>: Deletes a blog post.</p>\n<ul>\n<li><strong>Response</strong>: <code>200 OK</code> with a success message, or <code>404 Not Found</code> if the blog post does not exist.</li>\n</ul>\n</li>\n<li><p><strong><code>DELETE /blogs/soft-delete/{blogId}</code></strong>: Soft deletes a blog post.</p>\n<ul>\n<li><strong>Response</strong>: <code>200 OK</code> with a success message, or <code>404 Not Found</code> if the blog post does not exist.</li>\n</ul>\n</li>\n<li><p><strong><code>GET /blogs/search</code></strong>: Searches blog posts based on a query (paginated).</p>\n<ul>\n<li><p><strong>Query Parameters</strong>: <code>query</code>, <code>page</code>, <code>size</code>.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a paginated list of matching blog posts.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /blogs/filter</code></strong>: Filters blog posts based on category and tags (paginated).</p>\n<ul>\n<li><p><strong>Query Parameters</strong>: <code>category</code>, <code>tags</code>, <code>page</code>, <code>size</code>.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a paginated list of filtered blog posts.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /blogs/filter/advanced</code></strong>: Filters blog posts based on authorId, status, category and tags (paginated).</p>\n<ul>\n<li><p><strong>Query Parameters</strong>: <code>authorId</code>, <code>status</code>, <code>category</code>, <code>tags</code>, <code>page</code>, <code>size</code>.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a paginated list of filtered blog posts.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"blog-post-interactions\">Blog Post Interactions</h3>\n<ul>\n<li><p><strong><code>POST /blogs/{blogId}/likes</code></strong>: Adds a like to a blog post.</p>\n<ul>\n<li><strong>Response</strong>: <code>201 Created</code> with the like details, or <code>400 Bad Request</code> for invalid input.</li>\n</ul>\n</li>\n<li><p><strong><code>DELETE /blogs/{blogId}/likes/{likeId}</code></strong>: Removes a like from a blog post.</p>\n<ul>\n<li><strong>Response</strong>: <code>200 OK</code> with a success message, or <code>404 Not Found</code> if the like does not exist.</li>\n</ul>\n</li>\n<li><p><strong><code>POST /blogs/{blogId}/comments</code></strong>: Adds a comment to a blog post.</p>\n<ul>\n<li><p><strong>Request Body</strong>: JSON object containing comment details (content, authorId).</p>\n</li>\n<li><p><strong>Response</strong>: <code>201 Created</code> with the comment details, or <code>400 Bad Request</code> for invalid input.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>PUT /blogs/{blogId}/comments/{commentId}</code></strong>: Updates a comment on a blog post.</p>\n<ul>\n<li><p><strong>Request Body</strong>: JSON object containing updated comment details.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with the updated comment details, or <code>404 Not Found</code> if the comment does not exist.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>DELETE /blogs/{blogId}/comments/{commentId}</code></strong>: Deletes a comment from a blog post.</p>\n<ul>\n<li><strong>Response</strong>: <code>200 OK</code> with a success message, or <code>404 Not Found</code> if the comment does not exist.</li>\n</ul>\n</li>\n<li><p><strong><code>GET /blogs/{blogId}/likes</code></strong>: Retrieves all likes for a blog post.</p>\n<ul>\n<li><strong>Response</strong>: <code>200 OK</code> with a list of likes.</li>\n</ul>\n</li>\n<li><p><strong><code>GET /blogs/{blogId}/comments</code></strong>: Retrieves all comments for a blog post.</p>\n<ul>\n<li><strong>Response</strong>: <code>200 OK</code> with a list of comments.</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"booking-service\">Booking Service</h2>\n<h3 id=\"booking-management\">Booking Management</h3>\n<ul>\n<li><p><strong><code>POST /bookings</code></strong>: Create a new booking.</p>\n<ul>\n<li><p><strong>Request Body</strong>: JSON object containing booking details.</p>\n</li>\n<li><p><strong>Response</strong>: <code>201 Created</code> with the created booking details, or <code>400 Bad Request</code> for invalid input.</p>\n</li>\n<li><p><strong>Rate Limit</strong>: 10 requests/sec.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /bookings/{bookingId}</code></strong>: Get booking by ID.</p>\n<ul>\n<li><p><strong>Response</strong>: <code>200 OK</code> with the booking details, or <code>404 Not Found</code> if the booking does not exist.</p>\n</li>\n<li><p><strong>Rate Limit</strong>: 15 requests/sec.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /bookings</code></strong>: Get all bookings.</p>\n<ul>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a list of all bookings.</p>\n</li>\n<li><p><strong>Rate Limit</strong>: 20 requests/sec.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /bookings/paginated</code></strong>: Get paginated bookings.</p>\n<ul>\n<li><p><strong>Query Parameters</strong>: <code>page</code>, <code>size</code>.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a paginated list of bookings.</p>\n</li>\n<li><p><strong>Rate Limit</strong>: 15 requests/sec.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /bookings/user/{userId}</code></strong>: Get bookings by user ID.</p>\n<ul>\n<li><p><strong>Query Parameters</strong>: <code>page</code>, <code>size</code>.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a paginated list of bookings for the specified user.</p>\n</li>\n<li><p><strong>Rate Limit</strong>: 10 requests/sec.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /bookings/destination/{destinationId}</code></strong>: Get bookings by destination ID.</p>\n<ul>\n<li><p><strong>Query Parameters</strong>: <code>page</code>, <code>size</code>.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a paginated list of bookings for the specified destination.</p>\n</li>\n<li><p><strong>Rate Limit</strong>: 10 requests/sec.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /bookings/status/{status}</code></strong>: Get bookings by status.</p>\n<ul>\n<li><p><strong>Query Parameters</strong>: <code>page</code>, <code>size</code>.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a paginated list of bookings with the specified status.</p>\n</li>\n<li><p><strong>Rate Limit</strong>: 10 requests/sec.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /bookings/travel-date-range</code></strong>: Get bookings by travel date range.</p>\n<ul>\n<li><p><strong>Query Parameters</strong>: <code>startDate</code>, <code>endDate</code>, <code>page</code>, <code>size</code>.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a paginated list of bookings within the specified date range.</p>\n</li>\n<li><p><strong>Rate Limit</strong>: 10 requests/sec.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /bookings/payment-status-price-range</code></strong>: Get bookings by payment status and price range.</p>\n<ul>\n<li><p><strong>Query Parameters</strong>: <code>paymentStatus</code>, <code>minPrice</code>, <code>maxPrice</code>, <code>page</code>, <code>size</code>.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a paginated list of bookings matching the criteria.</p>\n</li>\n<li><p><strong>Rate Limit</strong>: 10 requests/sec.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /bookings/upcoming/{status}</code></strong>: Get upcoming bookings by status.</p>\n<ul>\n<li><p><strong>Query Parameters</strong>: <code>page</code>, <code>size</code>.</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a paginated list of upcoming bookings with the specified status.</p>\n</li>\n<li><p><strong>Rate Limit</strong>: 10 requests/sec.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /bookings/count-by-status/{status}</code></strong>: Count bookings by status.</p>\n<ul>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a count of bookings with the specified status.</p>\n</li>\n<li><p><strong>Rate Limit</strong>: 10 requests/sec.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>DELETE /bookings/{bookingId}</code></strong>: Cancel a booking.</p>\n<ul>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a success message, or <code>404 Not Found</code> if the booking does not exist.</p>\n</li>\n<li><p><strong>Rate Limit</strong>: 5 requests/sec.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>DELETE /bookings/soft-delete/{bookingId}</code></strong>: Soft delete a booking.</p>\n<ul>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a success message, or <code>404 Not Found</code> if the booking does not exist.</p>\n</li>\n<li><p><strong>Rate Limit</strong>: 5 requests/sec.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /bookings/reference/{bookingReference}</code></strong>: Get booking by reference.</p>\n<ul>\n<li><p><strong>Response</strong>: <code>200 OK</code> with the booking details, or <code>404 Not Found</code> if the booking does not exist.</p>\n</li>\n<li><p><strong>Rate Limit</strong>: 15 requests/sec.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /bookings/payment-status/{paymentStatus}</code></strong>: Get bookings by payment status.</p>\n<ul>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a list of bookings with the specified payment status.</p>\n</li>\n<li><p><strong>Rate Limit</strong>: 10 requests/sec.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>PATCH /bookings/{bookingId}/confirm</code></strong>: Confirm a booking.</p>\n<ul>\n<li><p><strong>Response</strong>: <code>200 OK</code> with the confirmed booking details, or <code>404 Not Found</code> if the booking does not exist.</p>\n</li>\n<li><p><strong>Rate Limit</strong>: 10 requests/sec.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /bookings/filter</code></strong>: Filter bookings.</p>\n<ul>\n<li><p><strong>Query Parameters</strong>: various filtering parameters (e.g., <code>userId</code>, <code>destinationId</code>, <code>status</code>, <code>startDate</code>, <code>endDate</code>, <code>paymentStatus</code>, <code>minPrice</code>, <code>maxPrice</code>).</p>\n</li>\n<li><p><strong>Response</strong>: <code>200 OK</code> with a list of filtered bookings.</p>\n</li>\n<li><p><strong>Rate Limit</strong>: 10 requests/sec.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>GET /core</code></strong>: Retrieves all payment records.</p>\n</li>\n<li><p><strong><code>GET /core/user/{userId}</code></strong>: Retrieves payment records for a specific user.</p>\n</li>\n</ul>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Tripezzy API Documentation","slug":"tripezzy-api-documentation"}],"owner":"30415721","collectionId":"a66dc8e6-7dc2-43ab-aee9-7c711cf9fafb","publishedId":"2sB2cUANY6","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2025-04-04T16:03:06.000Z"},"item":[{"name":"Auth","item":[{"name":"Register","id":"081d5b83-92c9-4fe1-a794-c78ad6edc768","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"firstName\": \"John\",\r\n  \"lastName\": \"Doe\",\r\n  \"email\": \"john.doe@example.com\",\r\n  \"password\": \"SecurePass123\",\r\n  \"phoneNumber\": \"1234567890\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://tripezzy.local/api/v1/users/auth/register","urlObject":{"protocol":"http","path":["api","v1","users","auth","register"],"host":["tripezzy","local"],"query":[],"variable":[]}},"response":[],"_postman_id":"081d5b83-92c9-4fe1-a794-c78ad6edc768"},{"name":"Login","id":"df3d764b-03ea-49f7-8bf2-7b13713b5b74","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"john.doe@example.com\",\r\n    \"password\": \"SecurePass123\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/users/auth/login","urlObject":{"protocol":"http","port":"8080","path":["api","v1","users","auth","login"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"df3d764b-03ea-49f7-8bf2-7b13713b5b74"},{"name":"Onboard Guide","id":"10acde99-ee27-4a46-937a-402ed99b2ca3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"languagesSpoken\": \"English, French\",\r\n  \"experience\": \"I have been a tour guide for over 5 years, specializing in historical and cultural tours.\",\r\n  \"firstName\": \"Marry\",\r\n  \"lastName\": \"Jane\",\r\n  \"email\": \"mary.jane@example.com\",\r\n  \"password\": \"SecurePass123\",\r\n  \"phoneNumber\": \"9876543210\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/users/auth/onboard/guide","urlObject":{"protocol":"http","port":"8080","path":["api","v1","users","auth","onboard","guide"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"10acde99-ee27-4a46-937a-402ed99b2ca3"},{"name":"Onboard Seller","id":"fb0bf57a-bbbc-4876-8c81-4c64cb8b99d9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"businessName\": \"Tech Solutions\",\r\n  \"businessDescription\": \"A company providing innovative tech solutions for businesses.\",\r\n  \"businessAddress\": \"123 Tech Street, Silicon Valley, CA\",\r\n  \"contactNumber\": \"1234567890\",\r\n  \"firstName\": \"Alice\",\r\n  \"lastName\": \"Smith\",\r\n  \"email\": \"alice.smith@example.com\",\r\n  \"password\": \"StrongPass123\",\r\n  \"phoneNumber\": \"0987654321\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/users/auth/onboard/seller","urlObject":{"protocol":"http","port":"8080","path":["api","v1","users","auth","onboard","seller"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"fb0bf57a-bbbc-4876-8c81-4c64cb8b99d9"}],"id":"41f872ca-0d91-452d-b04b-8b071cb2ebb6","description":"<h2 id=\"api-endpoints\">API Endpoints</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Method</th>\n<th>Endpoint</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>POST</code></td>\n<td><code>/auth/signup</code></td>\n<td>Registers a new user.</td>\n</tr>\n<tr>\n<td><code>POST</code></td>\n<td><code>/auth/login</code></td>\n<td>Authenticates a user and returns a JWT.</td>\n</tr>\n<tr>\n<td><code>POST</code></td>\n<td><code>/auth/onboard/seller</code></td>\n<td>Onboards a user as a seller.</td>\n</tr>\n<tr>\n<td><code>POST</code></td>\n<td><code>/auth/onboard/guide</code></td>\n<td>Onboards a user as a guide.</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"41f872ca-0d91-452d-b04b-8b071cb2ebb6"},{"name":"Admin","item":[{"name":"Destination","item":[{"name":"Create Destination","id":"2f73d439-5258-4543-bb56-9ee39fcc4e72","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"Eiffel Tower\",\r\n  \"country\": \"France\",\r\n  \"description\": \"A world-famous landmark in Paris, offering stunning views of the city.\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/admin/destinations","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","destinations"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"2f73d439-5258-4543-bb56-9ee39fcc4e72"},{"name":"Get Destination by ID","id":"deb8fa3b-ea79-4108-92d4-e311333d714f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/destinations/public/3","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","destinations","public","3"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"a5d783b8-866c-4e53-87de-5a9b0c242a35","name":"Response","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/destinations/public/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Mon, 17 Mar 2025 09:50:53 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"name\": \"Eiffel Tower\",\n        \"country\": \"France\",\n        \"description\": \"A world-famous landmark in Paris, offering stunning views of the city.\"\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-17T15:20:53.3372289\"\n}"}],"_postman_id":"deb8fa3b-ea79-4108-92d4-e311333d714f"},{"name":"Get all Destinations(Paginated)","id":"73581327-b8a8-40ba-8ab6-f9f08ca0bfd0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/destinations/public?page=0&size=1&sort=name","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","destinations","public"],"host":["localhost"],"query":[{"key":"page","value":"0"},{"key":"size","value":"1"},{"key":"sort","value":"name"}],"variable":[]}},"response":[{"id":"bf38290c-2787-470d-aa41-4ae6bae435ce","name":"Response(Paginated)","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/admin/destinations/public?page=0&size=1&sort=name","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","admin","destinations","public"],"query":[{"key":"page","value":"0"},{"key":"size","value":"1"},{"key":"sort","value":"name"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Mon, 17 Mar 2025 10:00:48 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"name\": \"Eiffel Tower\",\n                \"country\": \"France\",\n                \"description\": \"A world-famous landmark in Paris, offering stunning views of the city.\"\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 1,\n            \"sort\": {\n                \"empty\": false,\n                \"unsorted\": false,\n                \"sorted\": true\n            },\n            \"offset\": 0,\n            \"unpaged\": false,\n            \"paged\": true\n        },\n        \"last\": true,\n        \"totalElements\": 1,\n        \"totalPages\": 1,\n        \"size\": 1,\n        \"number\": 0,\n        \"sort\": {\n            \"empty\": false,\n            \"unsorted\": false,\n            \"sorted\": true\n        },\n        \"first\": true,\n        \"numberOfElements\": 1,\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-17T15:30:48.5374795\"\n}"}],"_postman_id":"73581327-b8a8-40ba-8ab6-f9f08ca0bfd0"},{"name":"Update Destination","id":"de815b53-e4e3-4714-a308-aa9f6c178476","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"Great Wall of China\",\r\n  \"country\": \"China\",\r\n  \"description\": \"One of the greatest wonders of the world, built over several dynasties.\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/admin/destinations/:id","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","destinations",":id"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"1","key":"id"}]}},"response":[],"_postman_id":"de815b53-e4e3-4714-a308-aa9f6c178476"},{"name":"Soft delete Destination","id":"485e8012-0de4-468c-ad39-643854ec333d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:8080/api/v1/admin/destinations/soft-delete/:id","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","destinations","soft-delete",":id"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"3","key":"id"}]}},"response":[],"_postman_id":"485e8012-0de4-468c-ad39-643854ec333d"},{"name":"Search Destination","id":"9fd8ffab-c33a-401a-b41a-4492f31c6a8f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/destinations/public/search?keyword=tower","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","destinations","public","search"],"host":["localhost"],"query":[{"key":"keyword","value":"tower"}],"variable":[]}},"response":[{"id":"1f2b0185-8c83-4ee7-a46a-14a720c0fc1d","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/admin/destinations/public/search?keyword=tower","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","admin","destinations","public","search"],"query":[{"key":"keyword","value":"tower"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Mon, 17 Mar 2025 10:41:58 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"name\": \"Eiffel Tower\",\n            \"country\": \"France\",\n            \"description\": \"A world-famous landmark in Paris, offering stunning views of the city.\"\n        }\n    ],\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-17T16:11:58.6476549\"\n}"}],"_postman_id":"9fd8ffab-c33a-401a-b41a-4492f31c6a8f"},{"name":"Filter destinations","id":"20016a48-891e-4880-af90-95727fa0294f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/destinations/public/filter?country=France","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","destinations","public","filter"],"host":["localhost"],"query":[{"key":"country","value":"France"}],"variable":[]}},"response":[{"id":"6e94a5f7-9066-45fe-9315-32d951ac57fc","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/admin/destinations/public/filter?country=France","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","admin","destinations","public","filter"],"query":[{"key":"country","value":"France"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Mon, 17 Mar 2025 10:52:25 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"name\": \"Eiffel Tower\",\n            \"country\": \"France\",\n            \"description\": \"A world-famous landmark in Paris, offering stunning views of the city.\"\n        }\n    ],\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-17T16:22:25.7465746\"\n}"}],"_postman_id":"20016a48-891e-4880-af90-95727fa0294f"}],"id":"22ba0ce0-74c8-4327-9ff2-bb1ba6ffc7b2","_postman_id":"22ba0ce0-74c8-4327-9ff2-bb1ba6ffc7b2","description":""},{"name":"Tours","item":[{"name":"Creating tour","id":"c11e4bc0-196d-4329-b91d-f914de845a10","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"Sunset at the Grand Canyon\",\r\n  \"description\": \"Experience a breathtaking sunset tour at the Grand Canyon with expert guides.\",\r\n  \"price\": 149.99,\r\n  \"capacity\": 15,\r\n  \"startDate\": \"2025-05-01T17:00:00\",\r\n  \"endDate\": \"2025-05-01T20:00:00\",\r\n  \"destinationId\": 1\r\n}\r\n\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/admin/tours","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","tours"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"c11e4bc0-196d-4329-b91d-f914de845a10"},{"name":"Get all tours(Paginated)","id":"1a2561f8-b137-44aa-8d0c-a32436e0f195","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/tours/public?page=0&size=1&sort=name,asc","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","tours","public"],"host":["localhost"],"query":[{"key":"page","value":"0"},{"key":"size","value":"1"},{"key":"sort","value":"name,asc"}],"variable":[]}},"response":[{"id":"3b78b95c-33c9-4959-8436-cff5a394acf1","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/admin/tours/public?page=0&size=1&sort=name,asc","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","admin","tours","public"],"query":[{"key":"page","value":"0"},{"key":"size","value":"1"},{"key":"sort","value":"name,asc"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Tue, 18 Mar 2025 05:35:39 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"name\": \"Grand Canyon Adventure\",\n                \"description\": \"A thrilling guided tour of the Grand Canyon with breathtaking views.\",\n                \"price\": 199.99,\n                \"capacity\": 20,\n                \"startDate\": \"2025-04-10T09:00:00\",\n                \"endDate\": \"2025-04-15T18:00:00\",\n                \"destinationId\": 1\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 1,\n            \"sort\": {\n                \"empty\": false,\n                \"sorted\": true,\n                \"unsorted\": false\n            },\n            \"offset\": 0,\n            \"paged\": true,\n            \"unpaged\": false\n        },\n        \"last\": true,\n        \"totalPages\": 1,\n        \"totalElements\": 1,\n        \"size\": 1,\n        \"number\": 0,\n        \"sort\": {\n            \"empty\": false,\n            \"sorted\": true,\n            \"unsorted\": false\n        },\n        \"first\": true,\n        \"numberOfElements\": 1,\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-18T11:05:39.9389099\"\n}"}],"_postman_id":"1a2561f8-b137-44aa-8d0c-a32436e0f195"},{"name":"Search tours","id":"9700af65-2d85-48f2-af06-f6dbfa865af3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/tours/public/search?keyword=Grand Canyon Adventure","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","tours","public","search"],"host":["localhost"],"query":[{"key":"keyword","value":"Grand Canyon Adventure"}],"variable":[]}},"response":[{"id":"2d05d3c6-0591-4daf-a83d-eeb0cf0ca93a","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/admin/tours/public/search?keyword=Grand Canyon Adventure","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","admin","tours","public","search"],"query":[{"key":"keyword","value":"Grand Canyon Adventure"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Tue, 18 Mar 2025 05:49:06 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"name\": \"Grand Canyon Adventure\",\n            \"description\": \"A thrilling guided tour of the Grand Canyon with breathtaking views.\",\n            \"price\": 199.99,\n            \"capacity\": 20,\n            \"startDate\": \"2025-04-10T09:00:00\",\n            \"endDate\": \"2025-04-15T18:00:00\",\n            \"destinationId\": 1\n        }\n    ],\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-18T11:19:06.6676794\"\n}"}],"_postman_id":"9700af65-2d85-48f2-af06-f6dbfa865af3"},{"name":"Filter Tours","id":"25b2a58f-e863-422b-a14c-edcda225875c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/tours/public/filter?destinationId=1&minPrice=100&maxPrice=250&capacity=15","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","tours","public","filter"],"host":["localhost"],"query":[{"key":"destinationId","value":"1"},{"key":"minPrice","value":"100"},{"key":"maxPrice","value":"250"},{"key":"capacity","value":"15"}],"variable":[]}},"response":[{"id":"bee828cb-56a1-417b-bc29-8c63dbd77f68","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/admin/tours/public/filter?destinationId=1&minPrice=100&maxPrice=250&capacity=15","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","admin","tours","public","filter"],"query":[{"key":"destinationId","value":"1"},{"key":"minPrice","value":"100"},{"key":"maxPrice","value":"250"},{"key":"capacity","value":"15"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Tue, 18 Mar 2025 05:58:10 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"name\": \"Grand Canyon Adventure\",\n            \"description\": \"A thrilling guided tour of the Grand Canyon with breathtaking views.\",\n            \"price\": 199.99,\n            \"capacity\": 20,\n            \"startDate\": \"2025-04-10T09:00:00\",\n            \"endDate\": \"2025-04-15T18:00:00\",\n            \"destinationId\": 1\n        }\n    ],\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-18T11:28:10.8781508\"\n}"}],"_postman_id":"25b2a58f-e863-422b-a14c-edcda225875c"},{"name":"Get Tours by destination","id":"a7304624-ee6e-463d-9139-c035f772d1c9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/tours/public/destination/:destinationId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","tours","public","destination",":destinationId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"1","key":"destinationId"}]}},"response":[{"id":"3d48eb85-5139-4123-b905-feb7aa6d4570","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/admin/tours/public/destination/:destinationId","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","admin","tours","public","destination",":destinationId"],"variable":[{"key":"destinationId","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Tue, 18 Mar 2025 06:24:57 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"name\": \"Grand Canyon Adventure\",\n            \"description\": \"A thrilling guided tour of the Grand Canyon with breathtaking views.\",\n            \"price\": 199.99,\n            \"capacity\": 20,\n            \"startDate\": \"2025-04-10T09:00:00\",\n            \"endDate\": \"2025-04-15T18:00:00\",\n            \"destinationId\": 1\n        },\n        {\n            \"name\": \"Sunset at the Grand Canyon\",\n            \"description\": \"Experience a breathtaking sunset tour at the Grand Canyon with expert guides.\",\n            \"price\": 149.99,\n            \"capacity\": 15,\n            \"startDate\": \"2025-05-01T17:00:00\",\n            \"endDate\": \"2025-05-01T20:00:00\",\n            \"destinationId\": 1\n        }\n    ],\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-18T11:54:57.953067\"\n}"}],"_postman_id":"a7304624-ee6e-463d-9139-c035f772d1c9"},{"name":"Get tour by id","id":"ac1c3d6e-6637-4823-94cf-59f2e07c9c8e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/tours/public/:id","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","tours","public",":id"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"1","key":"id"}]}},"response":[{"id":"20a6993c-612f-4f3e-af35-749bc9b1e8dc","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/admin/tours/public/:id","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","admin","tours","public",":id"],"variable":[{"key":"id","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Tue, 18 Mar 2025 06:26:07 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"name\": \"Grand Canyon Adventure\",\n        \"description\": \"A thrilling guided tour of the Grand Canyon with breathtaking views.\",\n        \"price\": 199.99,\n        \"capacity\": 20,\n        \"startDate\": \"2025-04-10T09:00:00\",\n        \"endDate\": \"2025-04-15T18:00:00\",\n        \"destinationId\": 1\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-18T11:56:07.0839674\"\n}"}],"_postman_id":"ac1c3d6e-6637-4823-94cf-59f2e07c9c8e"},{"name":"Update tour","id":"d54c6bea-dd6b-42c8-998a-7ca5efc740c1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"Grand Canyon Explorer\",\r\n  \"description\": \"An extended guided tour covering hidden spots of the Grand Canyon.\",\r\n  \"price\": 249.99,\r\n  \"capacity\": 25,\r\n  \"startDate\": \"2025-06-10T08:00:00\",\r\n  \"endDate\": \"2025-06-15T18:00:00\",\r\n  \"destinationId\": 1\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/admin/tours/:id","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","tours",":id"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"1","key":"id"}]}},"response":[],"_postman_id":"d54c6bea-dd6b-42c8-998a-7ca5efc740c1"},{"name":"Soft delete Tour","id":"a0fd69dc-b250-4f89-a36c-9f446c870933","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:8080/api/v1/admin/tours/soft-delete/:id","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","tours","soft-delete",":id"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"1","key":"id"}]}},"response":[],"_postman_id":"a0fd69dc-b250-4f89-a36c-9f446c870933"}],"id":"0284d0d8-388c-4bff-b175-d816b8d0086e","_postman_id":"0284d0d8-388c-4bff-b175-d816b8d0086e","description":""},{"name":"Core(gRPC)","item":[{"name":"All blogs","id":"abacd6f6-2184-48af-8924-ab8e86c640c1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/core/blogs","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","core","blogs"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"0c3e01ee-01e8-45c9-8486-dbe95449609b","name":"Response","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/core/blogs"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Wed, 02 Apr 2025 08:22:30 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 4,\n            \"title\": \"The Rise of AI in Everyday Life\",\n            \"content\": \"Artificial Intelligence is transforming how we work, communicate, and even think. This blog explores its impact on different industries.\",\n            \"authorId\": 1,\n            \"category\": \"Technology\",\n            \"tag\": \"AI, Machine Learning, Future\"\n        },\n        {\n            \"id\": 3,\n            \"title\": \"The Beauty of Nature\",\n            \"content\": \"Nature has a way of inspiring and refreshing the soul. In this blog, we explore the most breathtaking landscapes on Earth.\",\n            \"authorId\": 1,\n            \"category\": \"Travel\",\n            \"tag\": \"Nature, Adventure, Photography\"\n        }\n    ],\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-04-02T13:52:30.3968618\"\n}"}],"_postman_id":"abacd6f6-2184-48af-8924-ab8e86c640c1"},{"name":"All Products","id":"7c91cce8-d7ce-4007-918d-61c374d8053e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/core/products","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","core","products"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"0237d524-0809-4c8e-a30d-7e22b10a770c","name":"Response","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/core/products"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Wed, 02 Apr 2025 08:44:25 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"name\": \"Wireless Bluetooth Headphones\",\n            \"description\": \"High-quality noise-canceling wireless headphones with long battery life.\",\n            \"price\": 129.99,\n            \"stock\": 50,\n            \"category\": \"Electronics\",\n            \"imageUrl\": \"https://example.com/images/headphones.jpg\"\n        },\n        {\n            \"name\": \"Wireless ANC Headphones\",\n            \"description\": \"Upgraded noise-canceling wireless headphones with improved sound quality and 50-hour battery life.\",\n            \"price\": 159.99,\n            \"stock\": 40,\n            \"category\": \"Electronics\",\n            \"imageUrl\": \"https://example.com/images/updated-headphones.jpg\"\n        }\n    ],\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-04-02T14:14:25.2691661\"\n}"}],"_postman_id":"7c91cce8-d7ce-4007-918d-61c374d8053e"},{"name":"All bookings","id":"86db8675-7f8d-4e3f-b8d0-4e08a6261479","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/core/bookings/paginated","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","core","bookings","paginated"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"3b49f64c-1e8b-49a7-b6ec-5fac915e3559","name":"Response","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/core/bookings/paginated"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 03 Apr 2025 16:59:05 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"bookingId\": 1,\n            \"firstName\": \"John\",\n            \"lastName\": \"Doe\",\n            \"email\": \"john.doe@example.com\",\n            \"phoneNumber\": \"+1234567890\",\n            \"userId\": 1,\n            \"destinationId\": 1,\n            \"travelDate\": \"2025-07-15\",\n            \"totalPrice\": 499.99\n        },\n        {\n            \"bookingId\": 2,\n            \"firstName\": \"Rupal\",\n            \"lastName\": \"Paul\",\n            \"email\": \"rupal.paul@example.com\",\n            \"phoneNumber\": \"+8617756189\",\n            \"userId\": 1,\n            \"destinationId\": 1,\n            \"travelDate\": \"2025-08-15\",\n            \"totalPrice\": 699.99\n        }\n    ],\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-04-03T22:29:05.3888524\"\n}"}],"_postman_id":"86db8675-7f8d-4e3f-b8d0-4e08a6261479"},{"name":"Bookings of user","id":"9a8bf13e-811f-4336-9871-3ca75a070e12","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/core/bookings/user/:userId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","core","bookings","user",":userId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"1","key":"userId"}]}},"response":[{"id":"5c6555e8-85ba-4ee6-b799-f49ff43ea85b","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/admin/core/bookings/user/:userId","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","admin","core","bookings","user",":userId"],"variable":[{"key":"userId","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 03 Apr 2025 17:53:58 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"bookingId\": 1,\n            \"firstName\": \"John\",\n            \"lastName\": \"Doe\",\n            \"email\": \"john.doe@example.com\",\n            \"phoneNumber\": \"+1234567890\",\n            \"userId\": 1,\n            \"destinationId\": 1,\n            \"travelDate\": \"2025-07-15\",\n            \"totalPrice\": 499.99\n        },\n        {\n            \"bookingId\": 2,\n            \"firstName\": \"Rupal\",\n            \"lastName\": \"Paul\",\n            \"email\": \"rupal.paul@example.com\",\n            \"phoneNumber\": \"+8617756189\",\n            \"userId\": 1,\n            \"destinationId\": 1,\n            \"travelDate\": \"2025-08-15\",\n            \"totalPrice\": 699.99\n        }\n    ],\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-04-03T23:23:58.2261843\"\n}"}],"_postman_id":"9a8bf13e-811f-4336-9871-3ca75a070e12"},{"name":"Destination bookings","id":"54cf095a-d325-4823-8a4c-0d07fcc1bde4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/core/bookings/destination/:destinationId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","core","bookings","destination",":destinationId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"1","key":"destinationId"}]}},"response":[{"id":"7446f631-1af7-4efc-976d-a7cdc17abdd0","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/admin/core/bookings/destination/:destinationId","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","admin","core","bookings","destination",":destinationId"],"variable":[{"key":"destinationId","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 03 Apr 2025 17:55:48 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"bookingId\": 1,\n            \"firstName\": \"John\",\n            \"lastName\": \"Doe\",\n            \"email\": \"john.doe@example.com\",\n            \"phoneNumber\": \"+1234567890\",\n            \"userId\": 1,\n            \"destinationId\": 1,\n            \"travelDate\": \"2025-07-15\",\n            \"totalPrice\": 499.99\n        },\n        {\n            \"bookingId\": 2,\n            \"firstName\": \"Rupal\",\n            \"lastName\": \"Paul\",\n            \"email\": \"rupal.paul@example.com\",\n            \"phoneNumber\": \"+8617756189\",\n            \"userId\": 1,\n            \"destinationId\": 1,\n            \"travelDate\": \"2025-08-15\",\n            \"totalPrice\": 699.99\n        }\n    ],\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-04-03T23:25:48.4076473\"\n}"}],"_postman_id":"54cf095a-d325-4823-8a4c-0d07fcc1bde4"},{"name":"Bookings by payment status","id":"1951e910-8f38-4134-bb57-7cf2e2e601a0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/core/bookings/payment-status?paymentStatus=DUE","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","core","bookings","payment-status"],"host":["localhost"],"query":[{"key":"paymentStatus","value":"DUE"}],"variable":[]}},"response":[{"id":"c06998a2-eebb-4fde-9b4a-84fda3c2cf33","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/admin/core/bookings/payment-status?paymentStatus=DUE","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","admin","core","bookings","payment-status"],"query":[{"key":"paymentStatus","value":"DUE","type":"text"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 03 Apr 2025 17:58:44 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"bookingId\": 1,\n            \"firstName\": \"John\",\n            \"lastName\": \"Doe\",\n            \"email\": \"john.doe@example.com\",\n            \"phoneNumber\": \"+1234567890\",\n            \"userId\": 1,\n            \"destinationId\": 1,\n            \"travelDate\": \"2025-07-15\",\n            \"totalPrice\": 499.99\n        },\n        {\n            \"bookingId\": 2,\n            \"firstName\": \"Rupal\",\n            \"lastName\": \"Paul\",\n            \"email\": \"rupal.paul@example.com\",\n            \"phoneNumber\": \"+8617756189\",\n            \"userId\": 1,\n            \"destinationId\": 1,\n            \"travelDate\": \"2025-08-15\",\n            \"totalPrice\": 699.99\n        }\n    ],\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-04-03T23:28:44.7570763\"\n}"}],"_postman_id":"1951e910-8f38-4134-bb57-7cf2e2e601a0"},{"name":"Bookings by status","id":"0ba01383-4ce7-416a-a2be-1c639d762cd7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/core/bookings/status?status=PENDING","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","core","bookings","status"],"host":["localhost"],"query":[{"key":"status","value":"PENDING"}],"variable":[]}},"response":[{"id":"5b2f55fe-a7e4-4385-8877-0736daa4fabd","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/admin/core/bookings/status?status=PENDING","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","admin","core","bookings","status"],"query":[{"key":"status","value":"PENDING"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 03 Apr 2025 18:05:30 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"bookingId\": 1,\n            \"firstName\": \"John\",\n            \"lastName\": \"Doe\",\n            \"email\": \"john.doe@example.com\",\n            \"phoneNumber\": \"+1234567890\",\n            \"userId\": 1,\n            \"destinationId\": 1,\n            \"travelDate\": \"2025-07-15\",\n            \"totalPrice\": 499.99\n        },\n        {\n            \"bookingId\": 2,\n            \"firstName\": \"Rupal\",\n            \"lastName\": \"Paul\",\n            \"email\": \"rupal.paul@example.com\",\n            \"phoneNumber\": \"+8617756189\",\n            \"userId\": 1,\n            \"destinationId\": 1,\n            \"travelDate\": \"2025-08-15\",\n            \"totalPrice\": 699.99\n        }\n    ],\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-04-03T23:35:30.8139507\"\n}"}],"_postman_id":"0ba01383-4ce7-416a-a2be-1c639d762cd7"},{"name":"Soft delete booking","id":"f39bb65c-a5dc-444c-8b42-5ebbb9f54ca1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:8080/api/v1/admin/core/bookings/soft-delete/:bookingId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","core","bookings","soft-delete",":bookingId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"2","key":"bookingId"}]}},"response":[],"_postman_id":"f39bb65c-a5dc-444c-8b42-5ebbb9f54ca1"},{"name":"Confirm booking","id":"893b07ea-4f28-4c2a-abf8-9aaad58c2e1a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PATCH","header":[],"url":"http://localhost:8080/api/v1/admin/core/bookings/:bookingId/confirm","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","core","bookings",":bookingId","confirm"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"1","key":"bookingId"}]}},"response":[],"_postman_id":"893b07ea-4f28-4c2a-abf8-9aaad58c2e1a"},{"name":"All payments","id":"d536cf33-f154-4813-82ea-eb56dcb60952","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/core/payments","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","core","payments"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"51f52046-7e77-4cae-842d-f06052da9341","name":"Response","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/core/payments"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Fri, 04 Apr 2025 08:34:58 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 7,\n            \"userId\": 1,\n            \"referenceId\": 1,\n            \"sessionId\": \"cs_test_a1yTcaNikTiML8tfzxNtBxC4tqgu30WZyBlyPmQVLbcSD8zYuo5fx3qTEL\",\n            \"status\": \"CONFIRMED\",\n            \"amount\": 499,\n            \"currency\": \"USD\",\n            \"name\": \"John Doe\",\n            \"category\": \"BOOKING\",\n            \"quantity\": 1,\n            \"createdAt\": \"2025-04-04T13:32:02.869387\"\n        },\n        {\n            \"id\": 8,\n            \"userId\": 1,\n            \"referenceId\": 3,\n            \"sessionId\": \"cs_test_a14vPT1D3cFL6m4LVDaH43IS9qDSXFicqzbH5QDPxlJTdljC9L2n9qCc4Q\",\n            \"status\": \"CONFIRMED\",\n            \"amount\": 584,\n            \"currency\": \"USD\",\n            \"name\": \"Wireless Bluetooth Headphones\",\n            \"category\": \"ECOM\",\n            \"quantity\": 5,\n            \"createdAt\": \"2025-04-04T13:32:31.282555\"\n        }\n    ],\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-04-04T14:04:58.5291514\"\n}"}],"_postman_id":"d536cf33-f154-4813-82ea-eb56dcb60952"},{"name":"Payments of user","id":"aca782ca-415a-47e7-862a-5febacd9eb7d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/admin/core/payments/:userId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","core","payments",":userId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"1","key":"userId"}]}},"response":[{"id":"31603e2c-b07d-4202-b655-b46b60fc7d99","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/admin/core/payments/:userId","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","admin","core","payments",":userId"],"variable":[{"key":"userId","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Fri, 04 Apr 2025 08:35:45 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 7,\n            \"userId\": 1,\n            \"referenceId\": 1,\n            \"sessionId\": \"cs_test_a1yTcaNikTiML8tfzxNtBxC4tqgu30WZyBlyPmQVLbcSD8zYuo5fx3qTEL\",\n            \"status\": \"CONFIRMED\",\n            \"amount\": 499,\n            \"currency\": \"USD\",\n            \"name\": \"John Doe\",\n            \"category\": \"BOOKING\",\n            \"quantity\": 1,\n            \"createdAt\": \"2025-04-04T13:32:02.869387\"\n        },\n        {\n            \"id\": 8,\n            \"userId\": 1,\n            \"referenceId\": 3,\n            \"sessionId\": \"cs_test_a14vPT1D3cFL6m4LVDaH43IS9qDSXFicqzbH5QDPxlJTdljC9L2n9qCc4Q\",\n            \"status\": \"CONFIRMED\",\n            \"amount\": 584,\n            \"currency\": \"USD\",\n            \"name\": \"Wireless Bluetooth Headphones\",\n            \"category\": \"ECOM\",\n            \"quantity\": 5,\n            \"createdAt\": \"2025-04-04T13:32:31.282555\"\n        }\n    ],\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-04-04T14:05:45.3317927\"\n}"}],"_postman_id":"aca782ca-415a-47e7-862a-5febacd9eb7d"},{"name":"Change booking status","id":"64903d40-b9f1-4729-a061-cdadb79f836c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PATCH","header":[],"url":"http://localhost:8080/api/v1/admin/core/bookings/:bookingId/update/status?status=WAITING","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","core","bookings",":bookingId","update","status"],"host":["localhost"],"query":[{"key":"status","value":"WAITING"}],"variable":[{"type":"any","value":"1","key":"bookingId"}]}},"response":[],"_postman_id":"64903d40-b9f1-4729-a061-cdadb79f836c"},{"name":"Update booking payment status","id":"6dc487b7-6ef6-4b79-bca6-199328a71e5a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PATCH","header":[],"url":"http://localhost:8080/api/v1/admin/core/bookings/:bookingId/update/payment-status?paymentStatus=PAID","urlObject":{"protocol":"http","port":"8080","path":["api","v1","admin","core","bookings",":bookingId","update","payment-status"],"host":["localhost"],"query":[{"key":"paymentStatus","value":"PAID"}],"variable":[{"type":"any","value":"1","key":"bookingId"}]}},"response":[],"_postman_id":"6dc487b7-6ef6-4b79-bca6-199328a71e5a"}],"id":"c8243e43-2789-447c-9ccf-d8fedc4072e6","_postman_id":"c8243e43-2789-447c-9ccf-d8fedc4072e6","description":""}],"id":"47003af2-c595-4ffc-a874-55e3ef21e1ba","description":"<h2 id=\"api-endpoints\">API Endpoints</h2>\n<h3 id=\"destination-controller\">Destination Controller</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Method</th>\n<th>Endpoint</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>POST</code></td>\n<td><code>/destinations</code></td>\n<td>Creates a new destination.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/destinations</code></td>\n<td>Retrieves all destinations (paginated).</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/destinations/{id}</code></td>\n<td>Retrieves a destination by its ID.</td>\n</tr>\n<tr>\n<td><code>PUT</code></td>\n<td><code>/destinations/{id}</code></td>\n<td>Updates a destination.</td>\n</tr>\n<tr>\n<td><code>DELETE</code></td>\n<td><code>/destinations/{id}</code></td>\n<td>Deletes a destination.</td>\n</tr>\n<tr>\n<td><code>DELETE</code></td>\n<td><code>/destinations/soft-delete/{id}</code></td>\n<td>Soft deletes a destination.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/destinations/search</code></td>\n<td>Searches destinations based on a keyword.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/destinations/filter</code></td>\n<td>Filters destinations based on country, category, minimum price, and maximum price.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"tour-controller\">Tour Controller</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Method</th>\n<th>Endpoint</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>POST</code></td>\n<td><code>/tours</code></td>\n<td>Creates a new tour package.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/tours</code></td>\n<td>Retrieves all tour packages (paginated).</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/tours/{id}</code></td>\n<td>Retrieves a tour package by its ID.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/tours/destination/{destinationId}</code></td>\n<td>Retrieves tour packages by destination ID.</td>\n</tr>\n<tr>\n<td><code>PUT</code></td>\n<td><code>/tours/{id}</code></td>\n<td>Updates a tour package.</td>\n</tr>\n<tr>\n<td><code>DELETE</code></td>\n<td><code>/tours/{id}</code></td>\n<td>Deletes a tour package.</td>\n</tr>\n<tr>\n<td><code>DELETE</code></td>\n<td><code>/tours/soft-delete/{id}</code></td>\n<td>Soft deletes a tour package.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/tours/search</code></td>\n<td>Searches tour packages based on a keyword.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/tours/filter</code></td>\n<td>Filters tour packages based on destination ID, minimum price, maximum price, category, and status.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"admin-controller-grpc-aggregation\">Admin Controller (gRPC Aggregation)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Method</th>\n<th>Endpoint</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>GET</code></td>\n<td><code>/core/blogs</code></td>\n<td>Retrieves all blog posts from the Blog Service (paginated).</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/core/bookings/paginated</code></td>\n<td>Retrieves all bookings from the Booking Service (paginated).</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/core/bookings/user/{userId}</code></td>\n<td>Retrieves bookings by user ID from the Booking Service (paginated).</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/core/bookings/destination/{destinationId}</code></td>\n<td>Retrieves bookings by destination ID from the Booking Service (paginated).</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/core/bookings/travel-date-range</code></td>\n<td>Retrieves bookings by travel date range from the Booking Service (paginated).</td>\n</tr>\n<tr>\n<td><code>DELETE</code></td>\n<td><code>/core/soft-delete/{bookingId}</code></td>\n<td>Soft deletes a booking in the Booking Service.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/core/payment-status/{paymentStatus}</code></td>\n<td>Retrieves bookings by payment status from the Booking Service.</td>\n</tr>\n<tr>\n<td><code>PATCH</code></td>\n<td><code>/core/{bookingId}/confirm</code></td>\n<td>Confirms a booking in the Booking Service.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/core/products</code></td>\n<td>Retrieves all products from the Product Service (paginated).</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/core/payments</code></td>\n<td>Retrieves all payments from the Payment Service.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/core/payments/{userId}</code></td>\n<td>Retrieves all payments by user ID from the Payment Service.</td>\n</tr>\n<tr>\n<td><code>PATCH</code></td>\n<td><code>/core/bookings/{bookingId}/update/status</code></td>\n<td>Updates status of a booking in the Booking Service.</td>\n</tr>\n<tr>\n<td><code>PATCH</code></td>\n<td><code>/core/bookings/{bookingId}/update/payment-status</code></td>\n<td>Updates payment status of a booking in the Booking Service.</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"47003af2-c595-4ffc-a874-55e3ef21e1ba"},{"name":"Bookings","item":[{"name":"Create Booking","id":"8d403e7f-b243-4c7a-97c5-2a69cf1021bb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"firstName\": \"Rupal\",\r\n  \"lastName\": \"Paul\",\r\n  \"email\": \"rupal.paul@example.com\",\r\n  \"phoneNumber\": \"+8617756189\",\r\n  \"travelDate\": \"2025-08-15\",\r\n  \"totalPrice\": 699.99\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/bookings/core?destinationId=1","urlObject":{"protocol":"http","port":"8080","path":["api","v1","bookings","core"],"host":["localhost"],"query":[{"key":"destinationId","value":"1"}],"variable":[]}},"response":[],"_postman_id":"8d403e7f-b243-4c7a-97c5-2a69cf1021bb"},{"name":"Get booking by Id","id":"bef4bb0d-c7c1-404d-a9c6-30a058747a29","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/bookings/core/public/:bookingId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","bookings","core","public",":bookingId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"1","key":"bookingId"}]}},"response":[{"id":"1a15f365-9fbf-4bce-8005-3de0eebee675","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/bookings/core/public/:bookingId","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","bookings","core","public",":bookingId"],"variable":[{"key":"bookingId","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Tue, 18 Mar 2025 14:57:40 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"firstName\": \"John\",\n        \"lastName\": \"Doe\",\n        \"email\": \"john.doe@example.com\",\n        \"phoneNumber\": \"+1234567890\",\n        \"user\": 1,\n        \"destination\": 1,\n        \"travelDate\": \"2025-07-15\",\n        \"totalPrice\": 499.99\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-18T20:27:40.4706585\"\n}"}],"_postman_id":"bef4bb0d-c7c1-404d-a9c6-30a058747a29"},{"name":"Get all bookings(Paginated)","id":"5bbcf5c9-b21b-470c-8cc0-740f66f05a83","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/bookings/core/public/paginated?page=0&size=1","urlObject":{"protocol":"http","port":"8080","path":["api","v1","bookings","core","public","paginated"],"host":["localhost"],"query":[{"key":"page","value":"0"},{"key":"size","value":"1"}],"variable":[]}},"response":[{"id":"454ac399-bf78-4f2c-90a0-8aa88f69cdc4","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/bookings/core/public/paginated?page=0&size=1","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","bookings","core","public","paginated"],"query":[{"key":"page","value":"0"},{"key":"size","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Tue, 18 Mar 2025 15:02:30 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"id\": 1,\n                \"firstName\": \"John\",\n                \"lastName\": \"Doe\",\n                \"email\": \"john.doe@example.com\",\n                \"phoneNumber\": \"+1234567890\",\n                \"user\": 1,\n                \"destination\": 1,\n                \"travelDate\": \"2025-07-15\",\n                \"totalPrice\": 499.99\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 1,\n            \"sort\": {\n                \"empty\": true,\n                \"sorted\": false,\n                \"unsorted\": true\n            },\n            \"offset\": 0,\n            \"paged\": true,\n            \"unpaged\": false\n        },\n        \"last\": true,\n        \"totalElements\": 1,\n        \"totalPages\": 1,\n        \"first\": true,\n        \"size\": 1,\n        \"number\": 0,\n        \"sort\": {\n            \"empty\": true,\n            \"sorted\": false,\n            \"unsorted\": true\n        },\n        \"numberOfElements\": 1,\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-18T20:32:30.5377486\"\n}"}],"_postman_id":"5bbcf5c9-b21b-470c-8cc0-740f66f05a83"},{"name":"Get all bookings","id":"1ce1dbc0-6fa5-411a-a830-e38ff3c43669","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/bookings/core/public","urlObject":{"protocol":"http","port":"8080","path":["api","v1","bookings","core","public"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"f54bd7d5-a07a-465e-a527-52d1812306fe","name":"Response","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/bookings/core/public"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Tue, 18 Mar 2025 15:08:09 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"firstName\": \"John\",\n            \"lastName\": \"Doe\",\n            \"email\": \"john.doe@example.com\",\n            \"phoneNumber\": \"+1234567890\",\n            \"user\": 1,\n            \"destination\": 1,\n            \"travelDate\": \"2025-07-15\",\n            \"totalPrice\": 499.99\n        }\n    ],\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-18T20:38:09.045157\"\n}"}],"_postman_id":"1ce1dbc0-6fa5-411a-a830-e38ff3c43669"},{"name":"My bookings","id":"8c747992-80c2-4062-b6ac-4a80a9dad1a2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/bookings/core/my-bookings","urlObject":{"protocol":"http","port":"8080","path":["api","v1","bookings","core","my-bookings"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"67e907b3-d451-415b-82b4-2c9de0b9b4ad","name":"Response","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/bookings/core/my-bookings"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Wed, 26 Mar 2025 14:07:12 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"id\": 1,\n                \"firstName\": \"John\",\n                \"lastName\": \"Doe\",\n                \"email\": \"john.doe@example.com\",\n                \"phoneNumber\": \"+1234567890\",\n                \"user\": 1,\n                \"destination\": 1,\n                \"travelDate\": \"2025-07-15\",\n                \"totalPrice\": 499.99\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 20,\n            \"sort\": {\n                \"empty\": true,\n                \"sorted\": false,\n                \"unsorted\": true\n            },\n            \"offset\": 0,\n            \"paged\": true,\n            \"unpaged\": false\n        },\n        \"last\": true,\n        \"totalPages\": 1,\n        \"totalElements\": 1,\n        \"size\": 20,\n        \"number\": 0,\n        \"sort\": {\n            \"empty\": true,\n            \"sorted\": false,\n            \"unsorted\": true\n        },\n        \"first\": true,\n        \"numberOfElements\": 1,\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-26T19:37:12.8943229\"\n}"}],"_postman_id":"8c747992-80c2-4062-b6ac-4a80a9dad1a2"},{"name":"Get bookings of user","id":"8bc289dd-6ee5-4243-a0ea-bfc584da6510","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/bookings/core/user/:userId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","bookings","core","user",":userId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"1","key":"userId"}]}},"response":[{"id":"008bd43d-c35d-411d-970e-f5216cbf3323","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/bookings/core/user/:userId","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","bookings","core","user",":userId"],"variable":[{"key":"userId","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Wed, 26 Mar 2025 14:11:16 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"id\": 1,\n                \"firstName\": \"John\",\n                \"lastName\": \"Doe\",\n                \"email\": \"john.doe@example.com\",\n                \"phoneNumber\": \"+1234567890\",\n                \"user\": 1,\n                \"destination\": 1,\n                \"travelDate\": \"2025-07-15\",\n                \"totalPrice\": 499.99\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 20,\n            \"sort\": {\n                \"empty\": true,\n                \"unsorted\": true,\n                \"sorted\": false\n            },\n            \"offset\": 0,\n            \"unpaged\": false,\n            \"paged\": true\n        },\n        \"last\": true,\n        \"totalPages\": 1,\n        \"totalElements\": 1,\n        \"numberOfElements\": 1,\n        \"first\": true,\n        \"size\": 20,\n        \"number\": 0,\n        \"sort\": {\n            \"empty\": true,\n            \"unsorted\": true,\n            \"sorted\": false\n        },\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-26T19:41:16.1924517\"\n}"}],"_postman_id":"8bc289dd-6ee5-4243-a0ea-bfc584da6510"},{"name":"Bokkings by Destination","id":"6e2d73f9-8e2a-4884-b0cc-b762ca9d10e0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/bookings/core/public/destination/:destinationId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","bookings","core","public","destination",":destinationId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"1","key":"destinationId"}]}},"response":[{"id":"b2be680a-79fa-403f-b8d9-13982af3dcf0","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/bookings/core/public/destination/:destinationId","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","bookings","core","public","destination",":destinationId"],"variable":[{"key":"destinationId","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Wed, 26 Mar 2025 16:12:12 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"id\": 1,\n                \"firstName\": \"John\",\n                \"lastName\": \"Doe\",\n                \"email\": \"john.doe@example.com\",\n                \"phoneNumber\": \"+1234567890\",\n                \"user\": 1,\n                \"destination\": 1,\n                \"travelDate\": \"2025-07-15\",\n                \"totalPrice\": 499.99\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 20,\n            \"sort\": {\n                \"empty\": true,\n                \"unsorted\": true,\n                \"sorted\": false\n            },\n            \"offset\": 0,\n            \"unpaged\": false,\n            \"paged\": true\n        },\n        \"last\": true,\n        \"totalPages\": 1,\n        \"totalElements\": 1,\n        \"numberOfElements\": 1,\n        \"first\": true,\n        \"size\": 20,\n        \"number\": 0,\n        \"sort\": {\n            \"empty\": true,\n            \"unsorted\": true,\n            \"sorted\": false\n        },\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-26T21:42:12.4313114\"\n}"}],"_postman_id":"6e2d73f9-8e2a-4884-b0cc-b762ca9d10e0"},{"name":"Booking by status","id":"8ff9ebc1-4efd-4204-9247-ae7d612c113c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/bookings/core?status=PENDING","urlObject":{"protocol":"http","port":"8080","path":["api","v1","bookings","core"],"host":["localhost"],"query":[{"key":"status","value":"PENDING"}],"variable":[]}},"response":[{"id":"6aa5287d-e8eb-4b1a-a2fe-8e57e3826d49","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/bookings/core?status=PENDING","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","bookings","core"],"query":[{"key":"status","value":"PENDING"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Wed, 26 Mar 2025 16:18:09 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"id\": 1,\n                \"firstName\": \"John\",\n                \"lastName\": \"Doe\",\n                \"email\": \"john.doe@example.com\",\n                \"phoneNumber\": \"+1234567890\",\n                \"user\": 1,\n                \"destination\": 1,\n                \"travelDate\": \"2025-07-15\",\n                \"totalPrice\": 499.99\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 20,\n            \"sort\": {\n                \"empty\": true,\n                \"sorted\": false,\n                \"unsorted\": true\n            },\n            \"offset\": 0,\n            \"paged\": true,\n            \"unpaged\": false\n        },\n        \"last\": true,\n        \"totalPages\": 1,\n        \"totalElements\": 1,\n        \"size\": 20,\n        \"number\": 0,\n        \"sort\": {\n            \"empty\": true,\n            \"sorted\": false,\n            \"unsorted\": true\n        },\n        \"first\": true,\n        \"numberOfElements\": 1,\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-26T21:48:09.4531666\"\n}"}],"_postman_id":"8ff9ebc1-4efd-4204-9247-ae7d612c113c"},{"name":"Bokking by price range and payment status","id":"0dae94e9-71a3-427b-8a4f-1bd2d9937cdd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/bookings/core/payment-status-price-range?paymentStatus=DUE&minPrice=400.00&maxPrice=500.00","urlObject":{"protocol":"http","port":"8080","path":["api","v1","bookings","core","payment-status-price-range"],"host":["localhost"],"query":[{"key":"paymentStatus","value":"DUE"},{"key":"minPrice","value":"400.00"},{"key":"maxPrice","value":"500.00"}],"variable":[]}},"response":[{"id":"4cd2476e-1304-4df9-a3d7-a27b93125599","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/bookings/core/payment-status-price-range?paymentStatus=DUE&minPrice=400.00&maxPrice=500.00","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","bookings","core","payment-status-price-range"],"query":[{"key":"paymentStatus","value":"DUE"},{"key":"minPrice","value":"400.00"},{"key":"maxPrice","value":"500.00"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 27 Mar 2025 06:36:26 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"firstName\": \"John\",\n            \"lastName\": \"Doe\",\n            \"email\": \"john.doe@example.com\",\n            \"phoneNumber\": \"+1234567890\",\n            \"user\": 1,\n            \"destination\": 1,\n            \"travelDate\": \"2025-07-15\",\n            \"totalPrice\": 499.99\n        }\n    ],\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-27T12:06:26.2475773\"\n}"}],"_postman_id":"0dae94e9-71a3-427b-8a4f-1bd2d9937cdd"},{"name":"Upcoming booking by status","id":"63c54649-5e66-4776-a573-105061f7da69","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/bookings/core/upcoming?status=PENDING","urlObject":{"protocol":"http","port":"8080","path":["api","v1","bookings","core","upcoming"],"host":["localhost"],"query":[{"key":"status","value":"PENDING"}],"variable":[]}},"response":[{"id":"8a63a9cb-ab23-4479-9778-b75acff5a41c","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/bookings/core/upcoming?status=PENDING","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","bookings","core","upcoming"],"query":[{"key":"status","value":"PENDING","type":"text"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 27 Mar 2025 06:46:21 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"firstName\": \"John\",\n            \"lastName\": \"Doe\",\n            \"email\": \"john.doe@example.com\",\n            \"phoneNumber\": \"+1234567890\",\n            \"user\": 1,\n            \"destination\": 1,\n            \"travelDate\": \"2025-07-15\",\n            \"totalPrice\": 499.99\n        }\n    ],\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-27T12:16:21.914492\"\n}"}],"_postman_id":"63c54649-5e66-4776-a573-105061f7da69"},{"name":"Count of bookings by status","id":"9f0aec6c-b950-443f-8a30-8610d0de0f0a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/bookings/core/count-by-status?status=PENDING","urlObject":{"protocol":"http","port":"8080","path":["api","v1","bookings","core","count-by-status"],"host":["localhost"],"query":[{"key":"status","value":"PENDING"}],"variable":[]}},"response":[{"id":"27581e4c-1a61-4f2d-9dd1-8e88c823ee88","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/bookings/core/count-by-status?status=PENDING","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","bookings","core","count-by-status"],"query":[{"key":"status","value":"PENDING"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 27 Mar 2025 06:47:34 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": 1,\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-27T12:17:34.4656842\"\n}"}],"_postman_id":"9f0aec6c-b950-443f-8a30-8610d0de0f0a"},{"name":"Soft delete booking","id":"3fa1709d-d81b-4f08-9735-a45092c517a6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:8080/api/v1/bookings/core/soft-delete/:bookingId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","bookings","core","soft-delete",":bookingId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"1","key":"bookingId"}]}},"response":[],"_postman_id":"3fa1709d-d81b-4f08-9735-a45092c517a6"},{"name":"Get booking by payment status","id":"0f0aa052-e07d-4af9-a395-8b3d71733c3b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/bookings/core/payment-status?paymentStatus=DUE","urlObject":{"protocol":"http","port":"8080","path":["api","v1","bookings","core","payment-status"],"host":["localhost"],"query":[{"key":"paymentStatus","value":"DUE"}],"variable":[]}},"response":[{"id":"487dbaee-fc86-46f5-84da-af179734561b","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/bookings/core/payment-status?paymentStatus=DUE","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","bookings","core","payment-status"],"query":[{"key":"paymentStatus","value":"DUE","type":"text"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 27 Mar 2025 07:08:17 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"firstName\": \"John\",\n            \"lastName\": \"Doe\",\n            \"email\": \"john.doe@example.com\",\n            \"phoneNumber\": \"+1234567890\",\n            \"user\": 1,\n            \"destination\": 1,\n            \"travelDate\": \"2025-07-15\",\n            \"totalPrice\": 499.99\n        },\n        {\n            \"id\": 2,\n            \"firstName\": \"Rupal\",\n            \"lastName\": \"Paul\",\n            \"email\": \"rupal.paul@example.com\",\n            \"phoneNumber\": \"+8617756189\",\n            \"user\": 1,\n            \"destination\": 1,\n            \"travelDate\": \"2025-08-15\",\n            \"totalPrice\": 699.99\n        }\n    ],\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-27T12:38:17.8041307\"\n}"}],"_postman_id":"0f0aa052-e07d-4af9-a395-8b3d71733c3b"},{"name":"Filter bookings","id":"7433db1e-6259-4cb0-91db-c273a52037c4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/bookings/core/public/filter?userId=1&destinationId=1&status=PENDING&paymentStatus=DUE&minPrice=400.00&maxPrice=700.00","urlObject":{"protocol":"http","port":"8080","path":["api","v1","bookings","core","public","filter"],"host":["localhost"],"query":[{"key":"userId","value":"1"},{"key":"destinationId","value":"1"},{"key":"status","value":"PENDING"},{"key":"paymentStatus","value":"DUE"},{"key":"minPrice","value":"400.00"},{"key":"maxPrice","value":"700.00"}],"variable":[]}},"response":[{"id":"2b3af5f8-7998-4d55-9f9d-eca50b49a91e","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/bookings/core/public/filter?userId=1&destinationId=1&status=PENDING&paymentStatus=DUE&minPrice=400.00&maxPrice=700.00","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","bookings","core","public","filter"],"query":[{"key":"userId","value":"1","type":"text"},{"key":"destinationId","value":"1","type":"text"},{"key":"status","value":"PENDING","type":"text"},{"key":"paymentStatus","value":"DUE","type":"text"},{"key":"minPrice","value":"400.00","type":"text"},{"key":"maxPrice","value":"700.00","type":"text"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 27 Mar 2025 07:21:47 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"id\": 2,\n                \"firstName\": \"Rupal\",\n                \"lastName\": \"Paul\",\n                \"email\": \"rupal.paul@example.com\",\n                \"phoneNumber\": \"+8617756189\",\n                \"user\": 1,\n                \"destination\": 1,\n                \"travelDate\": \"2025-08-15\",\n                \"totalPrice\": 699.99\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 20,\n            \"sort\": {\n                \"empty\": true,\n                \"sorted\": false,\n                \"unsorted\": true\n            },\n            \"offset\": 0,\n            \"paged\": true,\n            \"unpaged\": false\n        },\n        \"last\": true,\n        \"totalPages\": 1,\n        \"totalElements\": 1,\n        \"size\": 20,\n        \"number\": 0,\n        \"sort\": {\n            \"empty\": true,\n            \"sorted\": false,\n            \"unsorted\": true\n        },\n        \"numberOfElements\": 1,\n        \"first\": true,\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-27T12:51:47.621536\"\n}"}],"_postman_id":"7433db1e-6259-4cb0-91db-c273a52037c4"}],"id":"c230e74a-ddb1-4f02-aafa-ed56a7302f03","description":"<h3 id=\"booking-endpoints\">Booking Endpoints</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Method</th>\n<th>Endpoint</th>\n<th>Description</th>\n<th>Rate Limit</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>POST</code></td>\n<td><code>/bookings</code></td>\n<td>Create a new booking</td>\n<td>10 requests/sec</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/bookings/{bookingId}</code></td>\n<td>Get booking by ID</td>\n<td>15 requests/sec</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/bookings</code></td>\n<td>Get all bookings</td>\n<td>20 requests/sec</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/bookings/paginated</code></td>\n<td>Get paginated bookings</td>\n<td>15 requests/sec</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/bookings/user/{userId}</code></td>\n<td>Get bookings by user ID</td>\n<td>10 requests/sec</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/bookings/destination/{destinationId}</code></td>\n<td>Get bookings by destination ID</td>\n<td>10 requests/sec</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/bookings/status/{status}</code></td>\n<td>Get bookings by status</td>\n<td>10 requests/sec</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/bookings/travel-date-range</code></td>\n<td>Get bookings by travel date range</td>\n<td>10 requests/sec</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/bookings/payment-status-price-range</code></td>\n<td>Get bookings by payment status and price range</td>\n<td>10 requests/sec</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/bookings/upcoming/{status}</code></td>\n<td>Get upcoming bookings by status</td>\n<td>10 requests/sec</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/bookings/count-by-status/{status}</code></td>\n<td>Count bookings by status</td>\n<td>10 requests/sec</td>\n</tr>\n<tr>\n<td><code>DELETE</code></td>\n<td><code>/bookings/{bookingId}</code></td>\n<td>Cancel a booking</td>\n<td>5 requests/sec</td>\n</tr>\n<tr>\n<td><code>DELETE</code></td>\n<td><code>/bookings/soft-delete/{bookingId}</code></td>\n<td>Soft delete a booking</td>\n<td>5 requests/sec</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/bookings/reference/{bookingReference}</code></td>\n<td>Get booking by reference</td>\n<td>15 requests/sec</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/bookings/payment-status/{paymentStatus}</code></td>\n<td>Get bookings by payment status</td>\n<td>10 requests/sec</td>\n</tr>\n<tr>\n<td><code>PATCH</code></td>\n<td><code>/bookings/{bookingId}/confirm</code></td>\n<td>Confirm a booking</td>\n<td>10 requests/sec</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/bookings/filter</code></td>\n<td>Filter bookings</td>\n<td>10 requests/sec</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"c230e74a-ddb1-4f02-aafa-ed56a7302f03"},{"name":"Blogs","item":[{"name":"Blog APIs","item":[{"name":"Create Blog","id":"6d89ce1d-f3b6-42ad-bed1-d16a4d055866","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"title\": \"Top 10 Street Foods Around the World\",\r\n  \"content\": \"From Bangkok’s Pad Thai to Mexico City’s Tacos, street food culture is rich and diverse. Here are the top 10 must-try street foods.\",\r\n  \"category\": \"Food\",\r\n  \"tag\": \"Street Food, Travel, Culture\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/blogs/core","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"6d89ce1d-f3b6-42ad-bed1-d16a4d055866"},{"name":"Get blog by id","id":"6b88c0f4-f9f8-4615-8f08-f274f7f8a181","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/blogs/core/public/:blogId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core","public",":blogId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"3","key":"blogId"}]}},"response":[{"id":"b2b3f329-eae1-4bfe-b837-bbb8356640dc","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/blogs/core/public/:blogId","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","blogs","core","public",":blogId"],"variable":[{"key":"blogId","value":"3"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 27 Mar 2025 14:55:36 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 3,\n        \"title\": \"The Beauty of Nature\",\n        \"content\": \"Nature has a way of inspiring and refreshing the soul. In this blog, we explore the most breathtaking landscapes on Earth.\",\n        \"authorId\": 1,\n        \"likes\": [],\n        \"comments\": [],\n        \"createdAt\": \"2025-03-27T20:24:04.041303\",\n        \"updatedAt\": \"2025-03-27T20:24:04.041303\",\n        \"status\": \"DRAFT\",\n        \"category\": \"Travel\",\n        \"tag\": \"Nature, Adventure, Photography\"\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-27T20:25:36.8659162\"\n}"}],"_postman_id":"6b88c0f4-f9f8-4615-8f08-f274f7f8a181"},{"name":"Get all blogs(Admin)","id":"8b2c1768-b5cc-4eda-8a7f-4f5abf931103","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/blogs/core","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"3950b74e-81ab-4a00-809b-794f2b13cb5b","name":"Get all blogs(Admin)","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/blogs/core"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Wed, 02 Apr 2025 07:32:09 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"id\": 4,\n                \"title\": \"The Rise of AI in Everyday Life\",\n                \"content\": \"Artificial Intelligence is transforming how we work, communicate, and even think. This blog explores its impact on different industries.\",\n                \"authorId\": 1,\n                \"comments\": [\n                    {\n                        \"content\": \"I've learned a lot from this post. Thanks for the valuable insights!\"\n                    }\n                ],\n                \"createdAt\": \"2025-03-27T20:42:41.010652\",\n                \"updatedAt\": \"2025-03-27T20:46:14.183891\",\n                \"status\": \"PUBLISHED\",\n                \"category\": \"Technology\",\n                \"tag\": \"AI, Machine Learning, Future\"\n            },\n            {\n                \"id\": 3,\n                \"title\": \"The Beauty of Nature\",\n                \"content\": \"Nature has a way of inspiring and refreshing the soul. In this blog, we explore the most breathtaking landscapes on Earth.\",\n                \"authorId\": 1,\n                \"comments\": [],\n                \"createdAt\": \"2025-03-27T20:24:04.041303\",\n                \"updatedAt\": \"2025-03-27T21:17:21.392808\",\n                \"status\": \"DRAFT\",\n                \"category\": \"Travel\",\n                \"tag\": \"Nature, Adventure, Photography\"\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 20,\n            \"sort\": {\n                \"empty\": true,\n                \"sorted\": false,\n                \"unsorted\": true\n            },\n            \"offset\": 0,\n            \"paged\": true,\n            \"unpaged\": false\n        },\n        \"last\": true,\n        \"totalPages\": 1,\n        \"totalElements\": 2,\n        \"size\": 20,\n        \"number\": 0,\n        \"sort\": {\n            \"empty\": true,\n            \"sorted\": false,\n            \"unsorted\": true\n        },\n        \"first\": true,\n        \"numberOfElements\": 2,\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-04-02T13:02:09.5712923\"\n}"}],"_postman_id":"8b2c1768-b5cc-4eda-8a7f-4f5abf931103"},{"name":"Published blogs","id":"3d3828f0-5bde-4d82-bf3b-5c8f34510b57","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/blogs/core/public/published","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core","public","published"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"d876ee4e-4b2f-43ff-a9a5-089954592efc","name":"Response","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/blogs/core/public/published"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 27 Mar 2025 18:15:22 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"id\": 4,\n                \"title\": \"The Rise of AI in Everyday Life\",\n                \"content\": \"Artificial Intelligence is transforming how we work, communicate, and even think. This blog explores its impact on different industries.\",\n                \"authorId\": 1,\n                \"comments\": [\n                    {\n                        \"content\": \"I've learned a lot from this post. Thanks for the valuable insights!\"\n                    }\n                ],\n                \"createdAt\": \"2025-03-27T20:42:41.010652\",\n                \"updatedAt\": \"2025-03-27T20:46:14.183891\",\n                \"status\": \"PUBLISHED\",\n                \"category\": \"Technology\",\n                \"tag\": \"AI, Machine Learning, Future\"\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 20,\n            \"sort\": {\n                \"empty\": true,\n                \"sorted\": false,\n                \"unsorted\": true\n            },\n            \"offset\": 0,\n            \"paged\": true,\n            \"unpaged\": false\n        },\n        \"last\": true,\n        \"totalPages\": 1,\n        \"totalElements\": 1,\n        \"size\": 20,\n        \"number\": 0,\n        \"sort\": {\n            \"empty\": true,\n            \"sorted\": false,\n            \"unsorted\": true\n        },\n        \"numberOfElements\": 1,\n        \"first\": true,\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-27T23:45:22.2956258\"\n}"}],"_postman_id":"3d3828f0-5bde-4d82-bf3b-5c8f34510b57"},{"name":"Get blogs by author","id":"7bdf8504-754a-46fc-815a-3e6db46cd8e1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/blogs/core/author/:authorId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core","author",":authorId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"1","key":"authorId"}]}},"response":[{"id":"d9664cd5-0cba-402e-9c46-6151433054ee","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/blogs/core/author/:authorId","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","blogs","core","author",":authorId"],"variable":[{"key":"authorId","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 27 Mar 2025 15:01:22 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"id\": 3,\n                \"title\": \"The Beauty of Nature\",\n                \"content\": \"Nature has a way of inspiring and refreshing the soul. In this blog, we explore the most breathtaking landscapes on Earth.\",\n                \"authorId\": 1,\n                \"likes\": [],\n                \"comments\": [],\n                \"createdAt\": \"2025-03-27T20:24:04.041303\",\n                \"updatedAt\": \"2025-03-27T20:24:04.041303\",\n                \"status\": \"DRAFT\",\n                \"category\": \"Travel\",\n                \"tag\": \"Nature, Adventure, Photography\"\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 20,\n            \"sort\": {\n                \"empty\": true,\n                \"unsorted\": true,\n                \"sorted\": false\n            },\n            \"offset\": 0,\n            \"unpaged\": false,\n            \"paged\": true\n        },\n        \"last\": true,\n        \"totalPages\": 1,\n        \"totalElements\": 1,\n        \"size\": 20,\n        \"number\": 0,\n        \"sort\": {\n            \"empty\": true,\n            \"unsorted\": true,\n            \"sorted\": false\n        },\n        \"numberOfElements\": 1,\n        \"first\": true,\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-27T20:31:22.5157288\"\n}"}],"_postman_id":"7bdf8504-754a-46fc-815a-3e6db46cd8e1"},{"name":"My blogs","id":"b64110bc-2a49-4509-996f-5968767464de","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/blogs/core/me","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core","me"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"dad96b90-576f-48cf-a80f-eb5365cdea2e","name":"Response","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/blogs/core/me"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 27 Mar 2025 15:02:34 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"id\": 3,\n                \"title\": \"The Beauty of Nature\",\n                \"content\": \"Nature has a way of inspiring and refreshing the soul. In this blog, we explore the most breathtaking landscapes on Earth.\",\n                \"authorId\": 1,\n                \"likes\": [],\n                \"comments\": [],\n                \"createdAt\": \"2025-03-27T20:24:04.041303\",\n                \"updatedAt\": \"2025-03-27T20:24:04.041303\",\n                \"status\": \"DRAFT\",\n                \"category\": \"Travel\",\n                \"tag\": \"Nature, Adventure, Photography\"\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 20,\n            \"sort\": {\n                \"empty\": true,\n                \"unsorted\": true,\n                \"sorted\": false\n            },\n            \"offset\": 0,\n            \"unpaged\": false,\n            \"paged\": true\n        },\n        \"last\": true,\n        \"totalPages\": 1,\n        \"totalElements\": 1,\n        \"size\": 20,\n        \"number\": 0,\n        \"sort\": {\n            \"empty\": true,\n            \"unsorted\": true,\n            \"sorted\": false\n        },\n        \"numberOfElements\": 1,\n        \"first\": true,\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-27T20:32:34.7442301\"\n}"}],"_postman_id":"b64110bc-2a49-4509-996f-5968767464de"},{"name":"Get blogs by tag","id":"3b0c7dea-4411-49e6-aa38-15eee7a1424c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/blogs/core/public/tags?tags=Nature, Adventure, Photography","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core","public","tags"],"host":["localhost"],"query":[{"key":"tags","value":"Nature, Adventure, Photography"}],"variable":[]}},"response":[{"id":"4373a709-74b7-4248-987b-53dbc233242c","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/blogs/core/public/tags?tags=Nature, Adventure, Photography","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","blogs","core","public","tags"],"query":[{"key":"tags","value":"Nature, Adventure, Photography"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 27 Mar 2025 15:09:02 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"id\": 3,\n                \"title\": \"The Beauty of Nature\",\n                \"content\": \"Nature has a way of inspiring and refreshing the soul. In this blog, we explore the most breathtaking landscapes on Earth.\",\n                \"authorId\": 1,\n                \"likes\": [],\n                \"comments\": [],\n                \"createdAt\": \"2025-03-27T20:24:04.041303\",\n                \"updatedAt\": \"2025-03-27T20:24:04.041303\",\n                \"status\": \"DRAFT\",\n                \"category\": \"Travel\",\n                \"tag\": \"Nature, Adventure, Photography\"\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 20,\n            \"sort\": {\n                \"empty\": true,\n                \"sorted\": false,\n                \"unsorted\": true\n            },\n            \"offset\": 0,\n            \"paged\": true,\n            \"unpaged\": false\n        },\n        \"last\": true,\n        \"totalPages\": 1,\n        \"totalElements\": 1,\n        \"size\": 20,\n        \"number\": 0,\n        \"sort\": {\n            \"empty\": true,\n            \"sorted\": false,\n            \"unsorted\": true\n        },\n        \"numberOfElements\": 1,\n        \"first\": true,\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-27T20:39:02.2148016\"\n}"}],"_postman_id":"3b0c7dea-4411-49e6-aa38-15eee7a1424c"},{"name":"Get blog by category","id":"7844802b-742b-4773-ac36-c63d67d9c321","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/blogs/core/public/category?category=Travel","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core","public","category"],"host":["localhost"],"query":[{"key":"category","value":"Travel"}],"variable":[]}},"response":[{"id":"34e4e069-df78-490e-afe7-33e05a727bb4","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/blogs/core/public/category?category=Travel","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","blogs","core","public","category"],"query":[{"key":"category","value":"Travel"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 27 Mar 2025 15:10:44 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"id\": 3,\n                \"title\": \"The Beauty of Nature\",\n                \"content\": \"Nature has a way of inspiring and refreshing the soul. In this blog, we explore the most breathtaking landscapes on Earth.\",\n                \"authorId\": 1,\n                \"likes\": [],\n                \"comments\": [],\n                \"createdAt\": \"2025-03-27T20:24:04.041303\",\n                \"updatedAt\": \"2025-03-27T20:24:04.041303\",\n                \"status\": \"DRAFT\",\n                \"category\": \"Travel\",\n                \"tag\": \"Nature, Adventure, Photography\"\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 20,\n            \"sort\": {\n                \"empty\": true,\n                \"sorted\": false,\n                \"unsorted\": true\n            },\n            \"offset\": 0,\n            \"paged\": true,\n            \"unpaged\": false\n        },\n        \"last\": true,\n        \"totalPages\": 1,\n        \"totalElements\": 1,\n        \"size\": 20,\n        \"number\": 0,\n        \"sort\": {\n            \"empty\": true,\n            \"sorted\": false,\n            \"unsorted\": true\n        },\n        \"numberOfElements\": 1,\n        \"first\": true,\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-27T20:40:44.4274742\"\n}"}],"_postman_id":"7844802b-742b-4773-ac36-c63d67d9c321"},{"name":"Update blog status","id":"9906ca4d-f282-4742-9cca-be7c8dfc419a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PUT","header":[],"url":"http://localhost:8080/api/v1/blogs/core/:blogId/status?status=PUBLISHED","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core",":blogId","status"],"host":["localhost"],"query":[{"key":"status","value":"PUBLISHED"}],"variable":[{"type":"any","value":"4","key":"blogId"}]}},"response":[],"_postman_id":"9906ca4d-f282-4742-9cca-be7c8dfc419a"},{"name":"Update blog","id":"74996423-5422-4385-a4ee-798424e72780","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n  \"title\": \"The Future of AI: Opportunities and Challenges\",\r\n  \"content\": \"AI is evolving rapidly, bringing both groundbreaking opportunities and critical challenges. This blog explores its future impact on industries.\",\r\n  \"category\": \"Technology\",\r\n  \"tag\": \"AI, Future, Ethics\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/blogs/core/:blogId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core",":blogId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"5","key":"blogId"}]}},"response":[],"_postman_id":"74996423-5422-4385-a4ee-798424e72780"},{"name":"Search blog","id":"be57171a-a636-42fa-a856-5857f2cc9aed","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/blogs/core/public/search?query=Artificial Intelligence","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core","public","search"],"host":["localhost"],"query":[{"key":"query","value":"Artificial Intelligence"}],"variable":[]}},"response":[{"id":"bfbfd177-ee72-4883-8bb3-0dcf29db384f","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/blogs/core/public/search?query=Artificial Intelligence","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","blogs","core","public","search"],"query":[{"key":"query","value":"Artificial Intelligence","type":"text"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 27 Mar 2025 15:28:48 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"id\": 4,\n                \"title\": \"The Rise of AI in Everyday Life\",\n                \"content\": \"Artificial Intelligence is transforming how we work, communicate, and even think. This blog explores its impact on different industries.\",\n                \"authorId\": 1,\n                \"likes\": [],\n                \"comments\": [],\n                \"createdAt\": \"2025-03-27T20:42:41.010652\",\n                \"updatedAt\": \"2025-03-27T20:46:14.183891\",\n                \"status\": \"PUBLISHED\",\n                \"category\": \"Technology\",\n                \"tag\": \"AI, Machine Learning, Future\"\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 20,\n            \"sort\": {\n                \"sorted\": false,\n                \"unsorted\": true,\n                \"empty\": true\n            },\n            \"offset\": 0,\n            \"paged\": true,\n            \"unpaged\": false\n        },\n        \"totalPages\": 1,\n        \"totalElements\": 1,\n        \"last\": true,\n        \"size\": 20,\n        \"number\": 0,\n        \"sort\": {\n            \"sorted\": false,\n            \"unsorted\": true,\n            \"empty\": true\n        },\n        \"first\": true,\n        \"numberOfElements\": 1,\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-27T20:58:48.0814351\"\n}"}],"_postman_id":"be57171a-a636-42fa-a856-5857f2cc9aed"},{"name":"Filter Blogs","id":"7da3da45-25fb-4084-8e31-803269a004fd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/blogs/core/public/filter?category=Technology&tags=AI","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core","public","filter"],"host":["localhost"],"query":[{"key":"category","value":"Technology"},{"key":"tags","value":"AI"}],"variable":[]}},"response":[{"id":"718812bb-fd03-4ee9-9baa-cb3a5548e806","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/blogs/core/public/filter?category=Technology&tags=AI","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","blogs","core","public","filter"],"query":[{"key":"category","value":"Technology","type":"text"},{"key":"tags","value":"AI","type":"text"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 27 Mar 2025 15:31:34 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"id\": 4,\n                \"title\": \"The Rise of AI in Everyday Life\",\n                \"content\": \"Artificial Intelligence is transforming how we work, communicate, and even think. This blog explores its impact on different industries.\",\n                \"authorId\": 1,\n                \"likes\": [],\n                \"comments\": [],\n                \"createdAt\": \"2025-03-27T20:42:41.010652\",\n                \"updatedAt\": \"2025-03-27T20:46:14.183891\",\n                \"status\": \"PUBLISHED\",\n                \"category\": \"Technology\",\n                \"tag\": \"AI, Machine Learning, Future\"\n            },\n            {\n                \"id\": 5,\n                \"title\": \"The Future of AI: Opportunities and Challenges\",\n                \"content\": \"AI is evolving rapidly, bringing both groundbreaking opportunities and critical challenges. This blog explores its future impact on industries.\",\n                \"authorId\": 1,\n                \"likes\": [],\n                \"comments\": [],\n                \"createdAt\": \"2025-03-27T20:42:56.217328\",\n                \"updatedAt\": \"2025-03-27T20:53:22.913885\",\n                \"status\": \"DRAFT\",\n                \"category\": \"Technology\",\n                \"tag\": \"AI, Future, Ethics\"\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 20,\n            \"sort\": {\n                \"sorted\": false,\n                \"unsorted\": true,\n                \"empty\": true\n            },\n            \"offset\": 0,\n            \"paged\": true,\n            \"unpaged\": false\n        },\n        \"totalPages\": 1,\n        \"totalElements\": 2,\n        \"last\": true,\n        \"size\": 20,\n        \"number\": 0,\n        \"sort\": {\n            \"sorted\": false,\n            \"unsorted\": true,\n            \"empty\": true\n        },\n        \"first\": true,\n        \"numberOfElements\": 2,\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-27T21:01:34.9336176\"\n}"}],"_postman_id":"7da3da45-25fb-4084-8e31-803269a004fd"},{"name":"Advanced filtering","id":"e154c486-5602-4d95-8916-0abe5d6eb584","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/blogs/core/public/filter/advanced?category=Technology&tags=AI&authorId=1","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core","public","filter","advanced"],"host":["localhost"],"query":[{"key":"category","value":"Technology"},{"key":"tags","value":"AI"},{"key":"authorId","value":"1"}],"variable":[]}},"response":[{"id":"7248c4de-c3cb-42eb-a2fa-c88a10b465e7","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/blogs/core/public/filter/advanced?category=Technology&tags=AI&authorId=1","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","blogs","core","public","filter","advanced"],"query":[{"key":"category","value":"Technology"},{"key":"tags","value":"AI"},{"key":"authorId","value":"1","type":"text"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 27 Mar 2025 15:45:07 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"id\": 4,\n                \"title\": \"The Rise of AI in Everyday Life\",\n                \"content\": \"Artificial Intelligence is transforming how we work, communicate, and even think. This blog explores its impact on different industries.\",\n                \"authorId\": 1,\n                \"likes\": [],\n                \"comments\": [],\n                \"createdAt\": \"2025-03-27T20:42:41.010652\",\n                \"updatedAt\": \"2025-03-27T20:46:14.183891\",\n                \"status\": \"PUBLISHED\",\n                \"category\": \"Technology\",\n                \"tag\": \"AI, Machine Learning, Future\"\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 20,\n            \"sort\": {\n                \"empty\": true,\n                \"sorted\": false,\n                \"unsorted\": true\n            },\n            \"offset\": 0,\n            \"paged\": true,\n            \"unpaged\": false\n        },\n        \"last\": true,\n        \"totalElements\": 1,\n        \"totalPages\": 1,\n        \"size\": 20,\n        \"number\": 0,\n        \"sort\": {\n            \"empty\": true,\n            \"sorted\": false,\n            \"unsorted\": true\n        },\n        \"numberOfElements\": 1,\n        \"first\": true,\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-27T21:15:07.1483269\"\n}"}],"_postman_id":"e154c486-5602-4d95-8916-0abe5d6eb584"},{"name":"Soft Delete blog","id":"abb0248d-d67c-4880-830c-5b94dc9941af","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:8080/api/v1/blogs/core/soft-delete/:blogId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core","soft-delete",":blogId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"3","key":"blogId"}]}},"response":[],"_postman_id":"abb0248d-d67c-4880-830c-5b94dc9941af"},{"name":"Delete blog","id":"9c183330-932e-445b-8d2b-a9b419d88245","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:8080/api/v1/blogs/core/:blogId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core",":blogId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"5","key":"blogId"}]}},"response":[],"_postman_id":"9c183330-932e-445b-8d2b-a9b419d88245"}],"id":"4bcc465a-4868-4041-a4f3-4c8424b27bc3","_postman_id":"4bcc465a-4868-4041-a4f3-4c8424b27bc3","description":""},{"name":"Likes And Comments","item":[{"name":"Like blog","id":"8b324355-cbdf-4d74-8515-f39eabeebf7c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"url":"http://localhost:8080/api/v1/blogs/core/:blogId/likes","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core",":blogId","likes"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"4","key":"blogId"}]}},"response":[],"_postman_id":"8b324355-cbdf-4d74-8515-f39eabeebf7c"},{"name":"Remove like","id":"dfdbf778-fe1b-46d4-8813-f21708d2fbba","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:8080/api/v1/blogs/core/:blogId/likes/:likeId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core",":blogId","likes",":likeId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"3","key":"blogId"},{"type":"any","value":"1","key":"likeId"}]}},"response":[],"_postman_id":"dfdbf778-fe1b-46d4-8813-f21708d2fbba"},{"name":"Comment blog","id":"454acee0-6ba2-470e-8856-45bc54edc802","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"content\": \"This is an insightful blog post! Thanks for sharing.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/blogs/core/:blogId/comments","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core",":blogId","comments"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"4","key":"blogId"}]}},"response":[],"_postman_id":"454acee0-6ba2-470e-8856-45bc54edc802"},{"name":"Delete Comment","id":"74be8a29-c87e-488e-a874-c3737cfb336a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:8080/api/v1/blogs/core/:blogId/comments/:commentId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core",":blogId","comments",":commentId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"4","key":"blogId"},{"type":"any","value":"3","key":"commentId"}]}},"response":[],"_postman_id":"74be8a29-c87e-488e-a874-c3737cfb336a"},{"name":"Update comment","id":"51eb0c91-bc9e-42b3-87aa-0f288db8cc7c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n  \"content\": \"I've learned a lot from this post. Thanks for the valuable insights!\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/blogs/core/:blogId/comments/:commentId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core",":blogId","comments",":commentId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"4","key":"blogId"},{"type":"any","value":"2","key":"commentId"}]}},"response":[],"_postman_id":"51eb0c91-bc9e-42b3-87aa-0f288db8cc7c"},{"name":"Get Likes Count","id":"c750938d-2dde-4ccb-b98c-9b8f0f11bb17","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/blogs/core/public/:blogId/likes","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core","public",":blogId","likes"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"4","key":"blogId"}]}},"response":[{"id":"b7d66263-c3b5-491c-b2d3-5f3a9e203d6c","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/blogs/core/public/:blogId/likes","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","blogs","core","public",":blogId","likes"],"variable":[{"key":"blogId","value":"4"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 27 Mar 2025 18:08:36 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": 1,\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-27T23:38:36.0481302\"\n}"}],"_postman_id":"c750938d-2dde-4ccb-b98c-9b8f0f11bb17"},{"name":"Get comments of blog","id":"4ff0ce88-00cf-447f-a84b-1bd56a8303d9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/blogs/core/public/:blogId/comments","urlObject":{"protocol":"http","port":"8080","path":["api","v1","blogs","core","public",":blogId","comments"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"4","key":"blogId"}]}},"response":[{"id":"a76c74a1-2453-4a7d-bc34-5fe702031b2e","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/blogs/core/public/:blogId/comments","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","blogs","core","public",":blogId","comments"],"variable":[{"key":"blogId","value":"4"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Thu, 27 Mar 2025 18:10:52 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"content\": \"I've learned a lot from this post. Thanks for the valuable insights!\"\n        }\n    ],\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-27T23:40:52.6676806\"\n}"}],"_postman_id":"4ff0ce88-00cf-447f-a84b-1bd56a8303d9"}],"id":"d2244c31-3c37-42be-9dd6-f5f23cb43dfb","_postman_id":"d2244c31-3c37-42be-9dd6-f5f23cb43dfb","description":""}],"id":"f0ee978b-8724-4808-aefc-dc49b240c2d3","description":"<h2 id=\"api-endpoints\">API Endpoints</h2>\n<p>The following table lists the API endpoints provided by the service:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Method</th>\n<th>Endpoint</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>POST</code></td>\n<td><code>/blogs</code></td>\n<td>Creates a new blog post.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/blogs/{blogId}</code></td>\n<td>Retrieves a blog post by its ID.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/blogs</code></td>\n<td>Retrieves all blog posts (paginated).</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/blogs/author/{authorId}</code></td>\n<td>Retrieves blog posts by author ID (paginated).</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/blogs/status/{status}</code></td>\n<td>Retrieves blog posts by status (paginated).</td>\n</tr>\n<tr>\n<td><code>PUT</code></td>\n<td><code>/blogs/{blogId}</code></td>\n<td>Updates a blog post.</td>\n</tr>\n<tr>\n<td><code>PUT</code></td>\n<td><code>/blogs/{blogId}/status/{status}</code></td>\n<td>Updates the status of a blog post.</td>\n</tr>\n<tr>\n<td><code>DELETE</code></td>\n<td><code>/blogs/{blogId}</code></td>\n<td>Deletes a blog post.</td>\n</tr>\n<tr>\n<td><code>POST</code></td>\n<td><code>/blogs/{blogId}/likes</code></td>\n<td>Adds a like to a blog post.</td>\n</tr>\n<tr>\n<td><code>DELETE</code></td>\n<td><code>/blogs/{blogId}/likes/{likeId}</code></td>\n<td>Removes a like from a blog post.</td>\n</tr>\n<tr>\n<td><code>POST</code></td>\n<td><code>/blogs/{blogId}/comments</code></td>\n<td>Adds a comment to a blog post.</td>\n</tr>\n<tr>\n<td><code>PUT</code></td>\n<td><code>/blogs/{blogId}/comments/{commentId}</code></td>\n<td>Updates a comment on a blog post.</td>\n</tr>\n<tr>\n<td><code>DELETE</code></td>\n<td><code>/blogs/{blogId}/comments/{commentId}</code></td>\n<td>Deletes a comment from a blog post.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/blogs/{blogId}/likes</code></td>\n<td>Retrieves all likes for a blog post.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/blogs/{blogId}/comments</code></td>\n<td>Retrieves all comments for a blog post.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/blogs/search</code></td>\n<td>Searches blog posts based on a query (paginated).</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/blogs/filter</code></td>\n<td>Filters blog posts based on category and tags (paginated).</td>\n</tr>\n<tr>\n<td><code>DELETE</code></td>\n<td><code>/blogs/soft-delete/{blogId}</code></td>\n<td>Soft deletes a blog post.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/blogs/filter/advanced</code></td>\n<td>Filters blog posts based on authorId, status, category and tags (paginated).</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"f0ee978b-8724-4808-aefc-dc49b240c2d3"},{"name":"Ecommerce","item":[{"name":"Product","item":[{"name":"Create product","id":"b2e1f6e8-202d-4670-af01-01bb9d29651b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"Wireless Noise-Canceling Headphones\",\r\n  \"description\": \"Premium wireless headphones with improved noise cancellation and 40-hour battery life.\",\r\n  \"price\": 149.99,\r\n  \"stock\": 30,\r\n  \"category\": \"Electronics\",\r\n  \"imageUrl\": \"https://example.com/images/headphones-updated.jpg\"\r\n}\r\n\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/shop/products","urlObject":{"protocol":"http","port":"8080","path":["api","v1","shop","products"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"b2e1f6e8-202d-4670-af01-01bb9d29651b"},{"name":"Get product by id","id":"c234f462-94f7-489e-b407-79461b840c6e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/shop/products/public/:productId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","shop","products","public",":productId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"2","key":"productId"}]}},"response":[{"id":"4d6915d2-0721-4d7a-a9f5-721d24a3819c","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/shop/products/public/:productId","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","shop","products","public",":productId"],"variable":[{"key":"productId","value":"2"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Fri, 28 Mar 2025 07:12:25 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"name\": \"Wireless Bluetooth Headphones\",\n        \"description\": \"High-quality noise-canceling wireless headphones with long battery life.\",\n        \"price\": 129.99,\n        \"stock\": 50,\n        \"category\": \"Electronics\",\n        \"imageUrl\": \"https://example.com/images/headphones.jpg\"\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-28T12:42:25.1749305\"\n}"}],"_postman_id":"c234f462-94f7-489e-b407-79461b840c6e"},{"name":"Get all products","id":"dce25a79-34fd-468e-986a-1cc2d000fd0a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/shop/products/public","urlObject":{"protocol":"http","port":"8080","path":["api","v1","shop","products","public"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"8aa423e4-a818-4f3b-9267-6671cfbc3e63","name":"Response","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/shop/products/public"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Fri, 28 Mar 2025 07:13:37 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"name\": \"Wireless Bluetooth Headphones\",\n                \"description\": \"High-quality noise-canceling wireless headphones with long battery life.\",\n                \"price\": 129.99,\n                \"stock\": 50,\n                \"category\": \"Electronics\",\n                \"imageUrl\": \"https://example.com/images/headphones.jpg\"\n            },\n            {\n                \"name\": \"USB-C Charging Cable\",\n                \"description\": \"Durable and fast-charging USB-C cable for smartphones and laptops.\",\n                \"price\": 19.99,\n                \"stock\": 20,\n                \"category\": \"Accessories\",\n                \"imageUrl\": \"https://example.com/images/usb-c-cable.jpg\"\n            },\n            {\n                \"name\": \"Wireless Noise-Canceling Headphones\",\n                \"description\": \"Premium wireless headphones with improved noise cancellation and 40-hour battery life.\",\n                \"price\": 149.99,\n                \"stock\": 30,\n                \"category\": \"Electronics\",\n                \"imageUrl\": \"https://example.com/images/headphones-updated.jpg\"\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 20,\n            \"sort\": {\n                \"empty\": true,\n                \"sorted\": false,\n                \"unsorted\": true\n            },\n            \"offset\": 0,\n            \"paged\": true,\n            \"unpaged\": false\n        },\n        \"last\": true,\n        \"totalPages\": 1,\n        \"totalElements\": 3,\n        \"size\": 20,\n        \"number\": 0,\n        \"sort\": {\n            \"empty\": true,\n            \"sorted\": false,\n            \"unsorted\": true\n        },\n        \"first\": true,\n        \"numberOfElements\": 3,\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-28T12:43:37.4676312\"\n}"}],"_postman_id":"dce25a79-34fd-468e-986a-1cc2d000fd0a"},{"name":"Filter products","id":"88402c20-e4aa-47e6-b540-4d321f084533","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/shop/products/public/filter?category=Electronics&minPrice=120.00&maxPrice=150.00","urlObject":{"protocol":"http","port":"8080","path":["api","v1","shop","products","public","filter"],"host":["localhost"],"query":[{"key":"category","value":"Electronics"},{"key":"minPrice","value":"120.00"},{"key":"maxPrice","value":"150.00"}],"variable":[]}},"response":[{"id":"58a06a1d-1d74-40fa-8d98-53c4d9a978e3","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/shop/products/public/filter?category=Electronics&minPrice=120.00&maxPrice=150.00","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","shop","products","public","filter"],"query":[{"key":"category","value":"Electronics"},{"key":"minPrice","value":"120.00"},{"key":"maxPrice","value":"150.00"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Fri, 28 Mar 2025 07:15:56 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"name\": \"Wireless Bluetooth Headphones\",\n                \"description\": \"High-quality noise-canceling wireless headphones with long battery life.\",\n                \"price\": 129.99,\n                \"stock\": 50,\n                \"category\": \"Electronics\",\n                \"imageUrl\": \"https://example.com/images/headphones.jpg\"\n            },\n            {\n                \"name\": \"Wireless Noise-Canceling Headphones\",\n                \"description\": \"Premium wireless headphones with improved noise cancellation and 40-hour battery life.\",\n                \"price\": 149.99,\n                \"stock\": 30,\n                \"category\": \"Electronics\",\n                \"imageUrl\": \"https://example.com/images/headphones-updated.jpg\"\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 20,\n            \"sort\": {\n                \"empty\": true,\n                \"sorted\": false,\n                \"unsorted\": true\n            },\n            \"offset\": 0,\n            \"paged\": true,\n            \"unpaged\": false\n        },\n        \"last\": true,\n        \"totalPages\": 1,\n        \"totalElements\": 2,\n        \"size\": 20,\n        \"number\": 0,\n        \"sort\": {\n            \"empty\": true,\n            \"sorted\": false,\n            \"unsorted\": true\n        },\n        \"first\": true,\n        \"numberOfElements\": 2,\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-28T12:45:56.0149283\"\n}"}],"_postman_id":"88402c20-e4aa-47e6-b540-4d321f084533"},{"name":"Search product","id":"6e73ff4b-d3d9-4759-a095-42a8fd2d1f95","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/shop/products/public/search?query=headphones","urlObject":{"protocol":"http","port":"8080","path":["api","v1","shop","products","public","search"],"host":["localhost"],"query":[{"key":"query","value":"headphones"}],"variable":[]}},"response":[{"id":"1863e941-d076-48c6-a977-94fa7f78a8ce","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/shop/products/public/search?query=headphones","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","shop","products","public","search"],"query":[{"key":"query","value":"headphones","type":"text"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Fri, 28 Mar 2025 07:18:00 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"name\": \"Wireless Bluetooth Headphones\",\n                \"description\": \"High-quality noise-canceling wireless headphones with long battery life.\",\n                \"price\": 129.99,\n                \"stock\": 50,\n                \"category\": \"Electronics\",\n                \"imageUrl\": \"https://example.com/images/headphones.jpg\"\n            },\n            {\n                \"name\": \"Wireless Noise-Canceling Headphones\",\n                \"description\": \"Premium wireless headphones with improved noise cancellation and 40-hour battery life.\",\n                \"price\": 149.99,\n                \"stock\": 30,\n                \"category\": \"Electronics\",\n                \"imageUrl\": \"https://example.com/images/headphones-updated.jpg\"\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 20,\n            \"sort\": {\n                \"empty\": true,\n                \"sorted\": false,\n                \"unsorted\": true\n            },\n            \"offset\": 0,\n            \"paged\": true,\n            \"unpaged\": false\n        },\n        \"last\": true,\n        \"totalPages\": 1,\n        \"totalElements\": 2,\n        \"size\": 20,\n        \"number\": 0,\n        \"sort\": {\n            \"empty\": true,\n            \"sorted\": false,\n            \"unsorted\": true\n        },\n        \"first\": true,\n        \"numberOfElements\": 2,\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-28T12:48:00.3655185\"\n}"}],"_postman_id":"6e73ff4b-d3d9-4759-a095-42a8fd2d1f95"},{"name":"Update product","id":"5d239128-5621-482a-87ee-d8bcbbfe3450","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"Wireless ANC Headphones\",\r\n  \"description\": \"Upgraded noise-canceling wireless headphones with improved sound quality and 50-hour battery life.\",\r\n  \"price\": 159.99,\r\n  \"stock\": 40,\r\n  \"category\": \"Electronics\",\r\n  \"imageUrl\": \"https://example.com/images/updated-headphones.jpg\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/shop/products/:productId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","shop","products",":productId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"3","key":"productId"}]}},"response":[],"_postman_id":"5d239128-5621-482a-87ee-d8bcbbfe3450"},{"name":"Soft Delete Product","id":"0e12898a-c0c1-44bc-8061-4c15bedeb041","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:8080/api/v1/shop/products/soft-delete/:productId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","shop","products","soft-delete",":productId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"4","key":"productId"}]}},"response":[],"_postman_id":"0e12898a-c0c1-44bc-8061-4c15bedeb041"}],"id":"05f26c97-f09c-473d-9071-f2a44c9316e9","_postman_id":"05f26c97-f09c-473d-9071-f2a44c9316e9","description":""},{"name":"Wishlist","item":[{"name":"Add to wishlist","id":"dfd52ca0-4c81-4dde-a521-d6a441f59caa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"url":"http://localhost:8080/api/v1/shop/wishlist/:productId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","shop","wishlist",":productId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"2","key":"productId"}]}},"response":[],"_postman_id":"dfd52ca0-4c81-4dde-a521-d6a441f59caa"},{"name":"My wishlist","id":"c3dbb46e-1ebb-4451-b8f4-a38fbece7758","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/shop/wishlist","urlObject":{"protocol":"http","port":"8080","path":["api","v1","shop","wishlist"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"3f23ac6f-3b22-4906-a76b-ac901ba28087","name":"My wishlist","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/shop/wishlist"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Fri, 28 Mar 2025 08:20:29 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"userId\": 1,\n                \"productDtos\": [\n                    {\n                        \"name\": \"Wireless ANC Headphones\",\n                        \"description\": \"Upgraded noise-canceling wireless headphones with improved sound quality and 50-hour battery life.\",\n                        \"price\": 159.99,\n                        \"stock\": 40,\n                        \"category\": \"Electronics\",\n                        \"imageUrl\": \"https://example.com/images/updated-headphones.jpg\"\n                    },\n                    {\n                        \"name\": \"Wireless Noise-Canceling Headphones\",\n                        \"description\": \"Premium wireless headphones with improved noise cancellation and 40-hour battery life.\",\n                        \"price\": 149.99,\n                        \"stock\": 30,\n                        \"category\": \"Electronics\",\n                        \"imageUrl\": \"https://example.com/images/headphones-updated.jpg\"\n                    },\n                    {\n                        \"name\": \"Wireless Bluetooth Headphones\",\n                        \"description\": \"High-quality noise-canceling wireless headphones with long battery life.\",\n                        \"price\": 129.99,\n                        \"stock\": 50,\n                        \"category\": \"Electronics\",\n                        \"imageUrl\": \"https://example.com/images/headphones.jpg\"\n                    }\n                ]\n            }\n        ],\n        \"pageable\": {\n            \"pageNumber\": 0,\n            \"pageSize\": 20,\n            \"sort\": {\n                \"empty\": true,\n                \"sorted\": false,\n                \"unsorted\": true\n            },\n            \"offset\": 0,\n            \"paged\": true,\n            \"unpaged\": false\n        },\n        \"last\": true,\n        \"totalElements\": 1,\n        \"totalPages\": 1,\n        \"size\": 20,\n        \"number\": 0,\n        \"sort\": {\n            \"empty\": true,\n            \"sorted\": false,\n            \"unsorted\": true\n        },\n        \"first\": true,\n        \"numberOfElements\": 1,\n        \"empty\": false\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-28T13:50:29.5229372\"\n}"}],"_postman_id":"c3dbb46e-1ebb-4451-b8f4-a38fbece7758"},{"name":"Remove product from wishlist","id":"62ab1b1f-3d4e-4cb5-b738-03c699f3a2ff","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:8080/api/v1/shop/wishlist/:wishlistId?productId=4","urlObject":{"protocol":"http","port":"8080","path":["api","v1","shop","wishlist",":wishlistId"],"host":["localhost"],"query":[{"key":"productId","value":"4"}],"variable":[{"type":"any","value":"1","key":"wishlistId"}]}},"response":[],"_postman_id":"62ab1b1f-3d4e-4cb5-b738-03c699f3a2ff"}],"id":"0dd90321-7aef-4218-9573-9f4586e7c20a","_postman_id":"0dd90321-7aef-4218-9573-9f4586e7c20a","description":""},{"name":"Cart","item":[{"name":"Add items to cart","id":"be183629-7611-4a15-8f0a-8d3c1f280761","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"productId\": 3,\r\n    \"quantity\": 5\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/shop/carts/add/items","urlObject":{"protocol":"http","port":"8080","path":["api","v1","shop","carts","add","items"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"be183629-7611-4a15-8f0a-8d3c1f280761"},{"name":"Cart Total Cost","id":"c3f195a2-6908-4314-8754-d108c9207026","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PUT","header":[],"url":"http://localhost:8080/api/v1/shop/carts/total-cost/update?discountType=quantity&discountPercentage=10.0&minQuantity=4","urlObject":{"protocol":"http","port":"8080","path":["api","v1","shop","carts","total-cost","update"],"host":["localhost"],"query":[{"key":"discountType","value":"quantity"},{"key":"discountPercentage","value":"10.0"},{"key":"minQuantity","value":"4"}],"variable":[]}},"response":[{"id":"c5c943a8-0a78-468f-a8f6-84f4a1ba7b9f","name":"Response","originalRequest":{"method":"PUT","header":[],"url":{"raw":"http://localhost:8080/api/v1/shop/carts/total-cost/update?discountType=quantity&discountPercentage=10.0&minQuantity=4","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","shop","carts","total-cost","update"],"query":[{"key":"discountType","value":"quantity"},{"key":"discountPercentage","value":"10.0"},{"key":"minQuantity","value":"4"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Fri, 28 Mar 2025 14:31:49 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": 584.955,\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-28T20:01:49.5509974\"\n}"}],"_postman_id":"c3f195a2-6908-4314-8754-d108c9207026"},{"name":"Get cart by user","id":"4d2813ec-27d4-4d30-8179-afc4344b469c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/shop/carts","urlObject":{"protocol":"http","port":"8080","path":["api","v1","shop","carts"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"48df4788-0aab-431b-9f8a-94b4bd8f2e91","name":"Get cart by user","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/shop/carts"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Fri, 28 Mar 2025 17:56:27 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"userId\": 1,\n        \"items\": [\n            {\n                \"product\": {\n                    \"name\": \"Wireless Bluetooth Headphones\",\n                    \"description\": \"High-quality noise-canceling wireless headphones with long battery life.\",\n                    \"price\": 129.99,\n                    \"stock\": 50,\n                    \"category\": \"Electronics\",\n                    \"imageUrl\": \"https://example.com/images/headphones.jpg\"\n                },\n                \"quantity\": 5\n            },\n            {\n                \"product\": {\n                    \"name\": \"Wireless ANC Headphones\",\n                    \"description\": \"Upgraded noise-canceling wireless headphones with improved sound quality and 50-hour battery life.\",\n                    \"price\": 159.99,\n                    \"stock\": 40,\n                    \"category\": \"Electronics\",\n                    \"imageUrl\": \"https://example.com/images/updated-headphones.jpg\"\n                },\n                \"quantity\": 5\n            }\n        ]\n    },\n    \"error\": null,\n    \"success\": true,\n    \"timeStamp\": \"2025-03-28T23:26:27.2236077\"\n}"}],"_postman_id":"4d2813ec-27d4-4d30-8179-afc4344b469c"},{"name":"Remove item from cart","id":"e6565dc1-1a29-4070-90a4-a77200e152bd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:8080/api/v1/shop/carts/remove/items/:productId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","shop","carts","remove","items",":productId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"3","key":"productId"}]}},"response":[],"_postman_id":"e6565dc1-1a29-4070-90a4-a77200e152bd"}],"id":"ea506b8a-7ac2-4eda-a876-94f53037cdf2","_postman_id":"ea506b8a-7ac2-4eda-a876-94f53037cdf2","description":""}],"id":"4015f8ff-cd62-4373-bd62-923d842b05fd","description":"<h2 id=\"api-endpoints\">API Endpoints</h2>\n<h3 id=\"product-controller\">Product Controller</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Method</th>\n<th>Endpoint</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>POST</code></td>\n<td><code>/products</code></td>\n<td>Creates a new product.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/products/{productId}</code></td>\n<td>Retrieves a product by its ID.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/products</code></td>\n<td>Retrieves all products (paginated).</td>\n</tr>\n<tr>\n<td><code>PUT</code></td>\n<td><code>/products/{productId}</code></td>\n<td>Updates a product.</td>\n</tr>\n<tr>\n<td><code>DELETE</code></td>\n<td><code>/products/{productId}</code></td>\n<td>Deletes a product.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/products/filter</code></td>\n<td>Filters products based on category, minimum price, and maximum price (paginated).</td>\n</tr>\n<tr>\n<td><code>DELETE</code></td>\n<td><code>/products/soft-delete/{productId}</code></td>\n<td>Soft deletes a product.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/products/search</code></td>\n<td>Searches products based on a query (paginated).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"cart-controller\">Cart Controller</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Method</th>\n<th>Endpoint</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>POST</code></td>\n<td><code>/carts/{userId}/items</code></td>\n<td>Adds an item to a user's cart.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/carts/{userId}</code></td>\n<td>Retrieves a user's cart.</td>\n</tr>\n<tr>\n<td><code>DELETE</code></td>\n<td><code>/carts/{userId}/items/{productId}</code></td>\n<td>Removes an item from a user's cart.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/carts/{userId}/total-cost</code></td>\n<td>Calculates the total cost of a user's cart, with optional discount parameters.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"wishlist-controller\">Wishlist Controller</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Method</th>\n<th>Endpoint</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>POST</code></td>\n<td><code>/wishlist</code></td>\n<td>Adds a product to a user's wishlist.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/wishlist/{userId}</code></td>\n<td>Retrieves a user's wishlist (paginated).</td>\n</tr>\n<tr>\n<td><code>DELETE</code></td>\n<td><code>/wishlist/{wishlistId}</code></td>\n<td>Removes a product from a user's wishlist.</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"4015f8ff-cd62-4373-bd62-923d842b05fd"},{"name":"Payments","item":[{"name":"Booking Payment(gRPC)","id":"07f72d41-eee6-4c33-8d80-6d65667f2861","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"url":"http://localhost:8080/api/v1/payments/core/checkout/bookings/:bookingId?userId=1","urlObject":{"protocol":"http","port":"8080","path":["api","v1","payments","core","checkout","bookings",":bookingId"],"host":["localhost"],"query":[{"key":"userId","value":"1"}],"variable":[{"type":"any","value":"1","key":"bookingId"}]}},"response":[{"id":"03e2ce7d-f162-4d5d-8307-7da7e26528aa","name":"Response","originalRequest":{"method":"POST","header":[],"url":{"raw":"http://localhost:8080/api/v1/payments/core/checkout/bookings/:bookingId?userId=1","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","payments","core","checkout","bookings",":bookingId"],"query":[{"key":"userId","value":"1"}],"variable":[{"key":"bookingId","value":"1"}]}},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Fri, 04 Apr 2025 08:02:02 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"CONFIRMED\",\n    \"message\": \"Your payment was successful! Thank you for your purchase.\",\n    \"session\": \"cs_test_a1yTcaNikTiML8tfzxNtBxC4tqgu30WZyBlyPmQVLbcSD8zYuo5fx3qTEL\",\n    \"sessionUrl\": \"https://checkout.stripe.com/c/pay/cs_test_a1yTcaNikTiML8tfzxNtBxC4tqgu30WZyBlyPmQVLbcSD8zYuo5fx3qTEL#fidkdWxOYHwnPyd1blpxYHZxWjA0VzQ8dH9VNElJc0xyMDxiQkx2X2I3QlZxTHE9cV1gdX91cjxdXVdDPXJ3RENWS3E1XWc3PG9uUVA2VUZzbUN2Z11CMl1DV3RCT2k3a2ZXaD0xSlJmNEFyNTVia1BsbzZIdScpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl\",\n    \"amount\": 499.99,\n    \"booking\": 1\n}"}],"_postman_id":"07f72d41-eee6-4c33-8d80-6d65667f2861"},{"name":"Cart Payment(gRPC)","id":"eae2f027-e206-4da0-9480-4c7fb513a663","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"url":"http://localhost:8080/api/v1/payments/core/checkout/shop/:cartId?userId=1","urlObject":{"protocol":"http","port":"8080","path":["api","v1","payments","core","checkout","shop",":cartId"],"host":["localhost"],"query":[{"key":"userId","value":"1"}],"variable":[{"type":"any","value":"3","key":"cartId"}]}},"response":[{"id":"eb6f7844-60cc-42ed-be5e-3a3f805ff5b1","name":"Response","originalRequest":{"method":"POST","header":[],"url":{"raw":"http://localhost:8080/api/v1/payments/core/checkout/shop/:cartId?userId=1","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","payments","core","checkout","shop",":cartId"],"query":[{"key":"userId","value":"1"}],"variable":[{"key":"cartId","value":"3"}]}},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Fri, 04 Apr 2025 08:02:31 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"CONFIRMED\",\n    \"message\": \"Your payment was successful! Thank you for your purchase.\",\n    \"session\": \"cs_test_a14vPT1D3cFL6m4LVDaH43IS9qDSXFicqzbH5QDPxlJTdljC9L2n9qCc4Q\",\n    \"sessionUrl\": \"https://checkout.stripe.com/c/pay/cs_test_a14vPT1D3cFL6m4LVDaH43IS9qDSXFicqzbH5QDPxlJTdljC9L2n9qCc4Q#fidkdWxOYHwnPyd1blpxYHZxWjA0VzQ8dH9VNElJc0xyMDxiQkx2X2I3QlZxTHE9cV1gdX91cjxdXVdDPXJ3RENWS3E1XWc3PG9uUVA2VUZzbUN2Z11CMl1DV3RCT2k3a2ZXaD0xSlJmNEFyNTVia1BsbzZIdScpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl\",\n    \"amount\": 584.955,\n    \"quantity\": 5,\n    \"productName\": \"Wireless Bluetooth Headphones\",\n    \"currency\": \"USD\"\n}"}],"_postman_id":"eae2f027-e206-4da0-9480-4c7fb513a663"},{"name":"Get all payments(Admin)","id":"fef89d63-e4f3-4d8d-8f4d-b4338c294d9c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/payments/core","urlObject":{"protocol":"http","port":"8080","path":["api","v1","payments","core"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"71acb5ac-b927-44f8-981d-a5b36c667ac9","name":"Response","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/payments/core"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Fri, 04 Apr 2025 08:05:21 GMT"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": 7,\n        \"user\": 1,\n        \"reference\": 1,\n        \"session\": \"cs_test_a1yTcaNikTiML8tfzxNtBxC4tqgu30WZyBlyPmQVLbcSD8zYuo5fx3qTEL\",\n        \"status\": \"CONFIRMED\",\n        \"amount\": 499,\n        \"currency\": \"USD\",\n        \"name\": \"John Doe\",\n        \"category\": \"BOOKING\",\n        \"quantity\": 1,\n        \"createdAt\": \"2025-04-04T13:32:02.869387\"\n    },\n    {\n        \"id\": 8,\n        \"user\": 1,\n        \"reference\": 3,\n        \"session\": \"cs_test_a14vPT1D3cFL6m4LVDaH43IS9qDSXFicqzbH5QDPxlJTdljC9L2n9qCc4Q\",\n        \"status\": \"CONFIRMED\",\n        \"amount\": 584,\n        \"currency\": \"USD\",\n        \"name\": \"Wireless Bluetooth Headphones\",\n        \"category\": \"ECOM\",\n        \"quantity\": 5,\n        \"createdAt\": \"2025-04-04T13:32:31.282555\"\n    }\n]"}],"_postman_id":"fef89d63-e4f3-4d8d-8f4d-b4338c294d9c"},{"name":"Get payments of user(Admin)","id":"909d62cf-799b-4500-a55c-7d63bc12656f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/payments/core/user/:userId","urlObject":{"protocol":"http","port":"8080","path":["api","v1","payments","core","user",":userId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"1","key":"userId"}]}},"response":[{"id":"f9b7ad42-38c5-46c7-b30e-efdbbe716f21","name":"Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/v1/payments/core/user/:userId","protocol":"http","host":["localhost"],"port":"8080","path":["api","v1","payments","core","user",":userId"],"variable":[{"key":"userId","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Fri, 04 Apr 2025 08:06:47 GMT"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": 7,\n        \"user\": 1,\n        \"reference\": 1,\n        \"session\": \"cs_test_a1yTcaNikTiML8tfzxNtBxC4tqgu30WZyBlyPmQVLbcSD8zYuo5fx3qTEL\",\n        \"status\": \"CONFIRMED\",\n        \"amount\": 499,\n        \"currency\": \"USD\",\n        \"name\": \"John Doe\",\n        \"category\": \"BOOKING\",\n        \"quantity\": 1,\n        \"createdAt\": \"2025-04-04T13:32:02.869387\"\n    },\n    {\n        \"id\": 8,\n        \"user\": 1,\n        \"reference\": 3,\n        \"session\": \"cs_test_a14vPT1D3cFL6m4LVDaH43IS9qDSXFicqzbH5QDPxlJTdljC9L2n9qCc4Q\",\n        \"status\": \"CONFIRMED\",\n        \"amount\": 584,\n        \"currency\": \"USD\",\n        \"name\": \"Wireless Bluetooth Headphones\",\n        \"category\": \"ECOM\",\n        \"quantity\": 5,\n        \"createdAt\": \"2025-04-04T13:32:31.282555\"\n    }\n]"}],"_postman_id":"909d62cf-799b-4500-a55c-7d63bc12656f"}],"id":"59c27c5d-28dd-467a-9cda-de7df6829182","description":"<h2 id=\"api-endpoints\">API Endpoints</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Method</th>\n<th>Endpoint</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>POST</code></td>\n<td><code>/core/checkout/shop/{cartId}</code></td>\n<td>Processes checkout for a shopping cart.</td>\n</tr>\n<tr>\n<td><code>POST</code></td>\n<td><code>/core/checkout/bookings/{bookingId}</code></td>\n<td>Processes checkout for a booking.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/core</code></td>\n<td>Retrieves all payment records.</td>\n</tr>\n<tr>\n<td><code>GET</code></td>\n<td><code>/core/user/{userId}</code></td>\n<td>Retrieves payment records for a specific user.</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"59c27c5d-28dd-467a-9cda-de7df6829182"},{"name":"Notifications","item":[{"name":"My notifications","id":"84fa7c30-5a07-4831-995e-7ebc0c6134de","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/api/v1/notifications/core","urlObject":{"protocol":"http","port":"8080","path":["api","v1","notifications","core"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"350562d7-4965-4555-a18d-5aae5d8865e9","name":"Response","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/notifications/core"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Mon, 07 Apr 2025 07:43:58 GMT"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": 8,\n        \"message\": \"Your booking with ID 12 has been updated to status: WAITING\"\n    },\n    {\n        \"id\": 9,\n        \"message\": \"Your booking with ID 12 has been confirmed\"\n    },\n    {\n        \"id\": 10,\n        \"message\": \"New blog created by 1 with ID: 9\"\n    },\n    {\n        \"id\": 11,\n        \"message\": \"Your blog with ID 9 has been liked\"\n    },\n    {\n        \"id\": 12,\n        \"message\": \"Your blog with ID 9 has been commented\"\n    }\n]"}],"_postman_id":"84fa7c30-5a07-4831-995e-7ebc0c6134de"}],"id":"950f4347-9a64-491e-929e-46ca1c91bd7f","_postman_id":"950f4347-9a64-491e-929e-46ca1c91bd7f","description":""},{"name":"Uploader","item":[{"name":"Upload image","id":"f4482624-06bf-4036-9bbe-91cab2088fd2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","uuid":"7422b5ba-6df7-46b1-bdff-ebd1b5657a1d","src":"/C:/Users/ASUS/Pictures/Saved Pictures/GOAT.jpg"}]},"url":"http://localhost:8080/api/v1/uploader/core","urlObject":{"protocol":"http","port":"8080","path":["api","v1","uploader","core"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"29a2f9c9-4fc2-4bb0-8f22-9f576f72a443","name":"Response","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","uuid":"7422b5ba-6df7-46b1-bdff-ebd1b5657a1d","src":"/C:/Users/ASUS/Pictures/Saved Pictures/GOAT.jpg"}],"options":{"raw":{"language":"json"}}},"url":"http://localhost:9050/uploader/core/public"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Wed, 09 Apr 2025 20:01:18 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"public_id\": \"nhwkwo83d1ulmyeksswo\",\n    \"url\": \"https://res.cloudinary.com/dyvjd1dql/image/upload/v1744228892/nhwkwo83d1ulmyeksswo.jpg\"\n}"}],"_postman_id":"f4482624-06bf-4036-9bbe-91cab2088fd2"},{"name":"Delete image","id":"5fb20f16-1e30-4493-955e-749326f38b1b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:8080/api/v1/uploader/core?publicId=ivbfyeoiltforbyrhtxb","urlObject":{"protocol":"http","port":"8080","path":["api","v1","uploader","core"],"host":["localhost"],"query":[{"key":"publicId","value":"ivbfyeoiltforbyrhtxb"}],"variable":[]}},"response":[],"_postman_id":"5fb20f16-1e30-4493-955e-749326f38b1b"}],"id":"0fe4a59e-2024-49e3-98e6-b19ed0abc4e9","_postman_id":"0fe4a59e-2024-49e3-98e6-b19ed0abc4e9","description":""}]}