[03:39:05.000] INFO: HTTP Server is running on port 3000
[03:40:00.000] INFO: No unpaid bookings found for auto-cancellation.
[03:45:00.000] INFO: No unpaid bookings found for auto-cancellation.
[03:50:00.000] INFO: No unpaid bookings found for auto-cancellation.
[03:55:00.000] INFO: No unpaid bookings found for auto-cancellation.
[04:39:35.000] INFO: HTTP Server is running on port 3000
[04:39:35.000] ERROR: Server Error: Not authenticated{"status":401,"message":"Not authenticated","stack":"Error: Not authenticated\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at module.exports (/home/aircamp/api-dev.aircamp.ph/middlewares/authorization.js:12:14)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:284:15\n    at Function.process_params (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:346:12)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:280:10)\n    at Function.handle (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:175:3)","error":{"statusCode":401}}
[04:39:37.000] ERROR: Server Error: Not authenticated{"status":401,"message":"Not authenticated","stack":"Error: Not authenticated\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at module.exports (/home/aircamp/api-dev.aircamp.ph/middlewares/authorization.js:12:14)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:284:15\n    at Function.process_params (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:346:12)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:280:10)\n    at Function.handle (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:175:3)","error":{"statusCode":401}}
[04:39:39.000] ERROR: Server Error: Not authenticated{"status":401,"message":"Not authenticated","stack":"Error: Not authenticated\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at module.exports (/home/aircamp/api-dev.aircamp.ph/middlewares/authorization.js:12:14)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:284:15\n    at Function.process_params (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:346:12)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:280:10)\n    at Function.handle (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:175:3)","error":{"statusCode":401}}
[04:39:43.000] ERROR: Server Error: Not authenticated{"status":401,"message":"Not authenticated","stack":"Error: Not authenticated\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at module.exports (/home/aircamp/api-dev.aircamp.ph/middlewares/authorization.js:12:14)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:284:15\n    at Function.process_params (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:346:12)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:280:10)\n    at Function.handle (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:175:3)","error":{"statusCode":401}}
[04:40:00.000] INFO: No unpaid bookings found for auto-cancellation.
[04:40:02.000] ERROR: Server Error: Not authenticated{"status":401,"message":"Not authenticated","stack":"Error: Not authenticated\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at module.exports (/home/aircamp/api-dev.aircamp.ph/middlewares/authorization.js:12:14)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:284:15\n    at Function.process_params (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:346:12)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:280:10)\n    at Function.handle (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:175:3)","error":{"statusCode":401}}
[04:40:22.000] INFO: HTTP Server is running on port 3000
[04:40:54.000] INFO: PayMongo checkout session created: {
  "data": {
    "id": "cs_123624a1dd395e6f5dd1e7a6",
    "type": "checkout_session",
    "attributes": {
      "billing": {
        "address": {
          "city": null,
          "country": null,
          "line1": null,
          "line2": null,
          "postal_code": null,
          "state": null
        },
        "email": null,
        "name": null,
        "phone": null
      },
      "billing_information_fields_editable": "enabled",
      "cancel_url": "https://uat.aircamp.ph/reservations?status=Unpaid",
      "checkout_url": "https://checkout.paymongo.com/123624a1dd395e6f5dd1e7a6",
      "client_key": "cs_123624a1dd395e6f5dd1e7a6_client_c8372532a686664ed7149a33",
      "collection": {
        "customer_info": {
          "email": {
            "state": "auto"
          },
          "name": {
            "state": "auto"
          },
          "mobile_phone": {
            "state": "auto"
          },
          "address": {
            "state": "auto"
          }
        }
      },
      "customer_email": null,
      "customer_id": null,
      "description": "AirCamp Booking ACPH-258235 - Wave & Tent Surf Camp",
      "line_items": [
        {
          "amount": 18700,
          "currency": "PHP",
          "description": null,
          "images": [],
          "name": "AirCamp Booking ACPH-258235 - Wave & Tent Surf Camp",
          "quantity": 1
        }
      ],
      "livemode": false,
      "merchant": "Aircamp ",
      "metadata": {
        "booking_no": "ACPH-258235"
      },
      "organization_id": "org_zJnDXbyebLasmB63yeNxBYN5",
      "pass_on_fees": false,
      "payment_intent": {
        "id": "pi_cpu1zh1NpTtTbE9deSbiiJ4M",
        "type": "payment_intent",
        "attributes": {
          "amount": 18700,
          "capture_type": "automatic",
          "client_key": "pi_cpu1zh1NpTtTbE9deSbiiJ4M_client_wygFwssEqTxTbwXSPu4R6zrR",
          "currency": "PHP",
          "description": "AirCamp Booking ACPH-258235 - Wave & Tent Surf Camp",
          "last_payment_error": null,
          "livemode": false,
          "metadata": {
            "booking_no": "ACPH-258235"
          },
          "next_action": null,
          "original_amount": 18700,
          "payment_method_allowed": [
            "card",
            "billease",
            "dob",
            "gcash",
            "grab_pay",
            "qrph",
            "paymaya"
          ],
          "payment_method_options": {
            "card": {
              "request_three_d_secure": "any"
            }
          },
          "payments": [],
          "setup_future_usage": null,
          "statement_descriptor": "Aircamp ",
          "status": "awaiting_payment_method",
          "created_at": 1775421653,
          "updated_at": 1775421653
        }
      },
      "payment_method_types": [
        "qrph",
        "card",
        "dob",
        "gcash",
        "grab_pay",
        "billease",
        "paymaya"
      ],
      "payments": [],
      "public_key": "pk_test_7n4hc82YY5Y4nvFGQS9FNr6P",
      "reference_number": null,
      "send_email_receipt": false,
      "show_description": true,
      "show_line_items": true,
      "status": "active",
      "success_url": "https://uat.aircamp.ph/booking/012f19bc-9787-452c-932e-3dc4e755a4b8/successful-booking?referenceNo=ACPH-258235",
      "created_at": 1775421653,
      "updated_at": 1775421653
    }
  }
}
[04:40:54.000] INFO: Payment checkout created for booking ACPH-258235. URL: https://checkout.paymongo.com/123624a1dd395e6f5dd1e7a6
[04:45:00.000] INFO: No unpaid bookings found for auto-cancellation.
[04:50:00.000] INFO: No unpaid bookings found for auto-cancellation.
[04:55:00.000] INFO: No unpaid bookings found for auto-cancellation.
[04:58:08.000] INFO: trigrring hooks :
[04:58:08.000] ERROR: Invalid PayMongo webhook signature
[04:59:15.000] INFO: trigrring hooks :
[04:59:15.000] ERROR: Invalid PayMongo webhook signature
[05:00:00.000] INFO: Bookings cancelled (For Approval, past check-in): 0
[05:00:00.000] INFO: No unpaid bookings found for auto-cancellation.
[05:03:59.000] INFO: trigrring hooks :
[05:03:59.000] ERROR: Missing timestamp or signature in header
[05:03:59.000] ERROR: Invalid PayMongo webhook signature
[05:05:00.000] INFO: No unpaid bookings found for auto-cancellation.
[05:07:01.000] INFO: PayMongo checkout session created: {
  "data": {
    "id": "cs_48fa9f70bf2a1a3696d89ab1",
    "type": "checkout_session",
    "attributes": {
      "billing": {
        "address": {
          "city": null,
          "country": null,
          "line1": null,
          "line2": null,
          "postal_code": null,
          "state": null
        },
        "email": null,
        "name": null,
        "phone": null
      },
      "billing_information_fields_editable": "enabled",
      "cancel_url": "https://uat.aircamp.ph/reservations?status=Unpaid",
      "checkout_url": "https://checkout.paymongo.com/48fa9f70bf2a1a3696d89ab1",
      "client_key": "cs_48fa9f70bf2a1a3696d89ab1_client_c02f364822f47caf92bc5d7b",
      "collection": {
        "customer_info": {
          "email": {
            "state": "auto"
          },
          "name": {
            "state": "auto"
          },
          "mobile_phone": {
            "state": "auto"
          },
          "address": {
            "state": "auto"
          }
        }
      },
      "customer_email": null,
      "customer_id": null,
      "description": "AirCamp Booking ACPH-991529 - Tropical Glamping Haven",
      "line_items": [
        {
          "amount": 16500,
          "currency": "PHP",
          "description": null,
          "images": [],
          "name": "AirCamp Booking ACPH-991529 - Tropical Glamping Haven",
          "quantity": 1
        }
      ],
      "livemode": false,
      "merchant": "Aircamp ",
      "metadata": {
        "booking_no": "ACPH-991529"
      },
      "organization_id": "org_zJnDXbyebLasmB63yeNxBYN5",
      "pass_on_fees": false,
      "payment_intent": {
        "id": "pi_GMXmRJc96j7AGaL3Q9dDzehd",
        "type": "payment_intent",
        "attributes": {
          "amount": 16500,
          "capture_type": "automatic",
          "client_key": "pi_GMXmRJc96j7AGaL3Q9dDzehd_client_MD5LC9L1jDmhJQTK6tCkchE5",
          "currency": "PHP",
          "description": "AirCamp Booking ACPH-991529 - Tropical Glamping Haven",
          "last_payment_error": null,
          "livemode": false,
          "metadata": {
            "booking_no": "ACPH-991529"
          },
          "next_action": null,
          "original_amount": 16500,
          "payment_method_allowed": [
            "card",
            "paymaya",
            "gcash",
            "billease",
            "qrph",
            "grab_pay",
            "dob"
          ],
          "payment_method_options": {
            "card": {
              "request_three_d_secure": "any"
            }
          },
          "payments": [],
          "setup_future_usage": null,
          "statement_descriptor": "Aircamp ",
          "status": "awaiting_payment_method",
          "created_at": 1775423221,
          "updated_at": 1775423221
        }
      },
      "payment_method_types": [
        "qrph",
        "card",
        "dob",
        "gcash",
        "grab_pay",
        "billease",
        "paymaya"
      ],
      "payments": [],
      "public_key": "pk_test_7n4hc82YY5Y4nvFGQS9FNr6P",
      "reference_number": null,
      "send_email_receipt": false,
      "show_description": true,
      "show_line_items": true,
      "status": "active",
      "success_url": "https://uat.aircamp.ph/booking/95ffa59c-0b6c-4954-80b4-60d0f6b9451f/successful-booking?referenceNo=ACPH-991529",
      "created_at": 1775423221,
      "updated_at": 1775423221
    }
  }
}
[05:07:01.000] INFO: Payment checkout created for booking ACPH-991529. URL: https://checkout.paymongo.com/48fa9f70bf2a1a3696d89ab1
[05:10:00.000] INFO: No unpaid bookings found for auto-cancellation.
[05:15:00.000] INFO: Bookings set to Ongoing (check-in started, not yet checked out): 0
[05:15:00.000] INFO: Auto-cancelled 1 unpaid bookings (older than 30 minutes). Transactions updated.
[05:17:11.000] INFO: trigrring hooks :
[05:17:11.000] ERROR: Invalid PayMongo webhook signature
[05:18:36.000] INFO: trigrring hooks :
[05:18:36.000] ERROR: Unhandled event type:
[05:20:00.000] INFO: No unpaid bookings found for auto-cancellation.
[05:23:27.000] INFO: PayMongo checkout session created: {
  "data": {
    "id": "cs_69f0dd8508b8be5aa4aacc0f",
    "type": "checkout_session",
    "attributes": {
      "billing": {
        "address": {
          "city": null,
          "country": null,
          "line1": null,
          "line2": null,
          "postal_code": null,
          "state": null
        },
        "email": null,
        "name": null,
        "phone": null
      },
      "billing_information_fields_editable": "enabled",
      "cancel_url": "https://uat.aircamp.ph/reservations?status=Unpaid",
      "checkout_url": "https://checkout.paymongo.com/69f0dd8508b8be5aa4aacc0f",
      "client_key": "cs_69f0dd8508b8be5aa4aacc0f_client_943e84968a3346c853d3c037",
      "collection": {
        "customer_info": {
          "email": {
            "state": "auto"
          },
          "name": {
            "state": "auto"
          },
          "mobile_phone": {
            "state": "auto"
          },
          "address": {
            "state": "auto"
          }
        }
      },
      "customer_email": null,
      "customer_id": null,
      "description": "AirCamp Booking ACPH-247317 - Island Breeze Glamp",
      "line_items": [
        {
          "amount": 22000,
          "currency": "PHP",
          "description": null,
          "images": [],
          "name": "AirCamp Booking ACPH-247317 - Island Breeze Glamp",
          "quantity": 1
        }
      ],
      "livemode": false,
      "merchant": "Aircamp ",
      "metadata": {
        "booking_no": "ACPH-247317"
      },
      "organization_id": "org_zJnDXbyebLasmB63yeNxBYN5",
      "pass_on_fees": false,
      "payment_intent": {
        "id": "pi_NCzW9sUrDdWfLejmANCD5NTy",
        "type": "payment_intent",
        "attributes": {
          "amount": 22000,
          "capture_type": "automatic",
          "client_key": "pi_NCzW9sUrDdWfLejmANCD5NTy_client_aTnCVJjSZunZkpJF8zrfFq77",
          "currency": "PHP",
          "description": "AirCamp Booking ACPH-247317 - Island Breeze Glamp",
          "last_payment_error": null,
          "livemode": false,
          "metadata": {
            "booking_no": "ACPH-247317"
          },
          "next_action": null,
          "original_amount": 22000,
          "payment_method_allowed": [
            "card",
            "qrph",
            "paymaya",
            "dob",
            "billease",
            "gcash",
            "grab_pay"
          ],
          "payment_method_options": {
            "card": {
              "request_three_d_secure": "any"
            }
          },
          "payments": [],
          "setup_future_usage": null,
          "statement_descriptor": "Aircamp ",
          "status": "awaiting_payment_method",
          "created_at": 1775424207,
          "updated_at": 1775424207
        }
      },
      "payment_method_types": [
        "qrph",
        "card",
        "dob",
        "gcash",
        "grab_pay",
        "billease",
        "paymaya"
      ],
      "payments": [],
      "public_key": "pk_test_7n4hc82YY5Y4nvFGQS9FNr6P",
      "reference_number": null,
      "send_email_receipt": false,
      "show_description": true,
      "show_line_items": true,
      "status": "active",
      "success_url": "https://uat.aircamp.ph/booking/791ce89e-6878-42f0-a18b-9c5652b4a969/successful-booking?referenceNo=ACPH-247317",
      "created_at": 1775424207,
      "updated_at": 1775424207
    }
  }
}
[05:23:27.000] INFO: Payment checkout created for booking ACPH-247317. URL: https://checkout.paymongo.com/69f0dd8508b8be5aa4aacc0f
[05:25:00.000] INFO: No unpaid bookings found for auto-cancellation.
[05:29:15.000] INFO: trigrring hooks :
[05:29:15.000] ERROR: Invalid PayMongo webhook signature
[05:30:00.000] INFO: Bookings set to Done (past check-out, Upcoming/Ongoing): 0
[05:30:00.000] INFO: No unpaid bookings found for auto-cancellation.
[05:30:52.000] INFO: trigrring hooks :
[05:30:52.000] INFO: paid :
[05:31:25.000] INFO: trigrring hooks :
[05:31:25.000] ERROR: Unhandled event type:
[05:32:59.000] INFO: PayMongo checkout session created: {
  "data": {
    "id": "cs_437f8d397f7b252af65d20f1",
    "type": "checkout_session",
    "attributes": {
      "billing": {
        "address": {
          "city": null,
          "country": null,
          "line1": null,
          "line2": null,
          "postal_code": null,
          "state": null
        },
        "email": null,
        "name": null,
        "phone": null
      },
      "billing_information_fields_editable": "enabled",
      "cancel_url": "https://uat.aircamp.ph/reservations?status=Unpaid",
      "checkout_url": "https://checkout.paymongo.com/437f8d397f7b252af65d20f1",
      "client_key": "cs_437f8d397f7b252af65d20f1_client_4b29c63fd3ab0f8eed5013f6",
      "collection": {
        "customer_info": {
          "email": {
            "state": "auto"
          },
          "name": {
            "state": "auto"
          },
          "mobile_phone": {
            "state": "auto"
          },
          "address": {
            "state": "auto"
          }
        }
      },
      "customer_email": null,
      "customer_id": null,
      "description": "AirCamp Booking ACPH-422655 - Pine Grove Camp",
      "line_items": [
        {
          "amount": 19800,
          "currency": "PHP",
          "description": null,
          "images": [],
          "name": "AirCamp Booking ACPH-422655 - Pine Grove Camp",
          "quantity": 1
        }
      ],
      "livemode": false,
      "merchant": "Aircamp ",
      "metadata": {
        "booking_no": "ACPH-422655"
      },
      "organization_id": "org_zJnDXbyebLasmB63yeNxBYN5",
      "pass_on_fees": false,
      "payment_intent": {
        "id": "pi_EwfTrj983kAJnZu5AD6ARgJK",
        "type": "payment_intent",
        "attributes": {
          "amount": 19800,
          "capture_type": "automatic",
          "client_key": "pi_EwfTrj983kAJnZu5AD6ARgJK_client_G7qfkkY1oWJkkX5Kqz8HRMjp",
          "currency": "PHP",
          "description": "AirCamp Booking ACPH-422655 - Pine Grove Camp",
          "last_payment_error": null,
          "livemode": false,
          "metadata": {
            "booking_no": "ACPH-422655"
          },
          "next_action": null,
          "original_amount": 19800,
          "payment_method_allowed": [
            "grab_pay",
            "qrph",
            "paymaya",
            "billease",
            "card",
            "dob",
            "gcash"
          ],
          "payment_method_options": {
            "card": {
              "request_three_d_secure": "any"
            }
          },
          "payments": [],
          "setup_future_usage": null,
          "statement_descriptor": "Aircamp ",
          "status": "awaiting_payment_method",
          "created_at": 1775424779,
          "updated_at": 1775424779
        }
      },
      "payment_method_types": [
        "qrph",
        "card",
        "dob",
        "gcash",
        "grab_pay",
        "billease",
        "paymaya"
      ],
      "payments": [],
      "public_key": "pk_test_7n4hc82YY5Y4nvFGQS9FNr6P",
      "reference_number": null,
      "send_email_receipt": false,
      "show_description": true,
      "show_line_items": true,
      "status": "active",
      "success_url": "https://uat.aircamp.ph/booking/21e74992-497a-4956-a7b3-f2b76fdbef05/successful-booking?referenceNo=ACPH-422655",
      "created_at": 1775424779,
      "updated_at": 1775424779
    }
  }
}
[05:32:59.000] INFO: Payment checkout created for booking ACPH-422655. URL: https://checkout.paymongo.com/437f8d397f7b252af65d20f1
[05:33:10.000] INFO: trigrring hooks :
[05:33:10.000] INFO: paid :
[05:33:11.000] INFO: trigrring hooks :
[05:33:11.000] ERROR: Unhandled event type:
[05:34:17.000] INFO: trigrring hooks :
[05:34:17.000] INFO: paid :
[05:34:17.000] INFO: Booking ACPH-422655 already marked as paid for intent pi_EwfTrj983kAJnZu5AD6ARgJK, skipping duplicate webhook
[05:34:59.000] ERROR: Server Error: Invalid or expired refresh token{"status":401,"message":"Invalid or expired refresh token","stack":"Error: Invalid or expired refresh token\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at /home/aircamp/api-dev.aircamp.ph/controllers/users/refresh-token.js:10:14\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:190:16\n    at getSecret (/home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:97:14)\n    at Object.module.exports [as verify] (/home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:101:10)\n    at exports.refreshAccessToken (/home/aircamp/api-dev.aircamp.ph/controllers/users/refresh-token.js:8:7)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)","error":{"statusCode":401}}
[05:35:00.000] INFO: No unpaid bookings found for auto-cancellation.
[05:35:02.000] ERROR: Server Error: Invalid or expired refresh token{"status":401,"message":"Invalid or expired refresh token","stack":"Error: Invalid or expired refresh token\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at /home/aircamp/api-dev.aircamp.ph/controllers/users/refresh-token.js:10:14\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:190:16\n    at getSecret (/home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:97:14)\n    at Object.module.exports [as verify] (/home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:101:10)\n    at exports.refreshAccessToken (/home/aircamp/api-dev.aircamp.ph/controllers/users/refresh-token.js:8:7)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)","error":{"statusCode":401}}
[05:35:02.000] ERROR: Server Error: Invalid or expired refresh token{"status":401,"message":"Invalid or expired refresh token","stack":"Error: Invalid or expired refresh token\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at /home/aircamp/api-dev.aircamp.ph/controllers/users/refresh-token.js:10:14\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:190:16\n    at getSecret (/home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:97:14)\n    at Object.module.exports [as verify] (/home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:101:10)\n    at exports.refreshAccessToken (/home/aircamp/api-dev.aircamp.ph/controllers/users/refresh-token.js:8:7)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)","error":{"statusCode":401}}
[05:35:02.000] ERROR: Server Error: Invalid or expired refresh token{"status":401,"message":"Invalid or expired refresh token","stack":"Error: Invalid or expired refresh token\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at /home/aircamp/api-dev.aircamp.ph/controllers/users/refresh-token.js:10:14\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:190:16\n    at getSecret (/home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:97:14)\n    at Object.module.exports [as verify] (/home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:101:10)\n    at exports.refreshAccessToken (/home/aircamp/api-dev.aircamp.ph/controllers/users/refresh-token.js:8:7)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)","error":{"statusCode":401}}
[05:35:02.000] ERROR: Server Error: Invalid or expired refresh token{"status":401,"message":"Invalid or expired refresh token","stack":"Error: Invalid or expired refresh token\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at /home/aircamp/api-dev.aircamp.ph/controllers/users/refresh-token.js:10:14\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:190:16\n    at getSecret (/home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:97:14)\n    at Object.module.exports [as verify] (/home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:101:10)\n    at exports.refreshAccessToken (/home/aircamp/api-dev.aircamp.ph/controllers/users/refresh-token.js:8:7)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)","error":{"statusCode":401}}
[05:35:02.000] ERROR: Server Error: Invalid or expired refresh token{"status":401,"message":"Invalid or expired refresh token","stack":"Error: Invalid or expired refresh token\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at /home/aircamp/api-dev.aircamp.ph/controllers/users/refresh-token.js:10:14\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:190:16\n    at getSecret (/home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:97:14)\n    at Object.module.exports [as verify] (/home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:101:10)\n    at exports.refreshAccessToken (/home/aircamp/api-dev.aircamp.ph/controllers/users/refresh-token.js:8:7)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)","error":{"statusCode":401}}
[05:35:03.000] ERROR: Server Error: Invalid or expired refresh token{"status":401,"message":"Invalid or expired refresh token","stack":"Error: Invalid or expired refresh token\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at /home/aircamp/api-dev.aircamp.ph/controllers/users/refresh-token.js:10:14\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:190:16\n    at getSecret (/home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:97:14)\n    at Object.module.exports [as verify] (/home/aircamp/api-dev.aircamp.ph/node_modules/jsonwebtoken/verify.js:101:10)\n    at exports.refreshAccessToken (/home/aircamp/api-dev.aircamp.ph/controllers/users/refresh-token.js:8:7)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)","error":{"statusCode":401}}
[05:35:53.000] INFO: PayMongo checkout session created: {
  "data": {
    "id": "cs_d4873bb9fb00ee0417fcdaf8",
    "type": "checkout_session",
    "attributes": {
      "billing": {
        "address": {
          "city": null,
          "country": null,
          "line1": null,
          "line2": null,
          "postal_code": null,
          "state": null
        },
        "email": null,
        "name": null,
        "phone": null
      },
      "billing_information_fields_editable": "enabled",
      "cancel_url": "https://uat.aircamp.ph/bookings/app/?success=false&bookingNo=ACPH-126524&status=For+Approval&listing=Christine+Camp+&guestName=VINCE+HARVY+MORESCA&listingType=Public&spot=Riverside+Tent&dateCreated=4%2F6%2F2026%2C+5%3A35%3A52+AM&checkIn=April+6%2C+2026&checkOut=April+7%2C+2026&paymentStatus=Unpaid&price=100.00&guestFee=10&discount=0&paymentMethod=online&subtotal=110&totalPayment=110&address=CAINTA%2C+Philippines&userImage=&firstname=VINCE+HARVY&lastname=MORESCA",
      "checkout_url": "https://checkout.paymongo.com/d4873bb9fb00ee0417fcdaf8",
      "client_key": "cs_d4873bb9fb00ee0417fcdaf8_client_6dadc99e951e97a4a0191614",
      "collection": {
        "customer_info": {
          "email": {
            "state": "auto"
          },
          "name": {
            "state": "auto"
          },
          "mobile_phone": {
            "state": "auto"
          },
          "address": {
            "state": "auto"
          }
        }
      },
      "customer_email": null,
      "customer_id": null,
      "description": "AirCamp Booking ACPH-126524 - Christine Camp  - Riverside Tent",
      "line_items": [
        {
          "amount": 11000,
          "currency": "PHP",
          "description": null,
          "images": [],
          "name": "AirCamp Booking ACPH-126524 - Christine Camp  - Riverside Tent",
          "quantity": 1
        }
      ],
      "livemode": false,
      "merchant": "Aircamp ",
      "metadata": {
        "booking_no": "ACPH-126524"
      },
      "organization_id": "org_zJnDXbyebLasmB63yeNxBYN5",
      "pass_on_fees": false,
      "payment_intent": {
        "id": "pi_tTAjiwpF9WdfpBeEhWEYdL1L",
        "type": "payment_intent",
        "attributes": {
          "amount": 11000,
          "capture_type": "automatic",
          "client_key": "pi_tTAjiwpF9WdfpBeEhWEYdL1L_client_a2V8UmGPcfwcCCSKYXiaD7jX",
          "currency": "PHP",
          "description": "AirCamp Booking ACPH-126524 - Christine Camp  - Riverside Tent",
          "last_payment_error": null,
          "livemode": false,
          "metadata": {
            "booking_no": "ACPH-126524"
          },
          "next_action": null,
          "original_amount": 11000,
          "payment_method_allowed": [
            "dob",
            "qrph",
            "gcash",
            "paymaya",
            "billease",
            "grab_pay",
            "card"
          ],
          "payment_method_options": {
            "card": {
              "request_three_d_secure": "any"
            }
          },
          "payments": [],
          "setup_future_usage": null,
          "statement_descriptor": "Aircamp ",
          "status": "awaiting_payment_method",
          "created_at": 1775424952,
          "updated_at": 1775424952
        }
      },
      "payment_method_types": [
        "qrph",
        "card",
        "dob",
        "gcash",
        "grab_pay",
        "billease",
        "paymaya"
      ],
      "payments": [],
      "public_key": "pk_test_7n4hc82YY5Y4nvFGQS9FNr6P",
      "reference_number": null,
      "send_email_receipt": false,
      "show_description": true,
      "show_line_items": true,
      "status": "active",
      "success_url": "https://uat.aircamp.ph/bookings/app/?success=true&bookingNo=ACPH-126524&status=For+Approval&listing=Christine+Camp+&guestName=VINCE+HARVY+MORESCA&listingType=Public&spot=Riverside+Tent&dateCreated=4%2F6%2F2026%2C+5%3A35%3A52+AM&checkIn=April+6%2C+2026&checkOut=April+7%2C+2026&paymentStatus=Paid&price=100.00&guestFee=10&discount=0&paymentMethod=online&subtotal=110&totalPayment=110&address=CAINTA%2C+Philippines&userImage=&firstname=VINCE+HARVY&lastname=MORESCA",
      "created_at": 1775424952,
      "updated_at": 1775424952
    }
  }
}
[05:35:53.000] INFO: Payment checkout created for booking ACPH-126524. URL: https://checkout.paymongo.com/d4873bb9fb00ee0417fcdaf8
[05:40:00.000] INFO: Auto-cancelled 1 unpaid bookings (older than 30 minutes). Transactions updated.
[05:45:00.000] INFO: No unpaid bookings found for auto-cancellation.
[05:50:00.000] INFO: No unpaid bookings found for auto-cancellation.
[05:55:00.000] INFO: No unpaid bookings found for auto-cancellation.
[06:00:00.000] INFO: Bookings cancelled (For Approval, past check-in): 0
[06:00:00.000] INFO: No unpaid bookings found for auto-cancellation.
[06:04:54.000] INFO: HTTP Server is running on port 3000
[06:05:01.000] INFO: No unpaid bookings found for auto-cancellation.
[06:10:00.000] INFO: Auto-cancelled 1 unpaid bookings (older than 30 minutes). Transactions updated.
[06:15:00.000] INFO: Bookings set to Ongoing (check-in started, not yet checked out): 0
[06:15:00.000] INFO: No unpaid bookings found for auto-cancellation.
[06:20:00.000] INFO: No unpaid bookings found for auto-cancellation.
[06:25:00.000] INFO: No unpaid bookings found for auto-cancellation.
[06:30:00.000] INFO: Bookings set to Done (past check-out, Upcoming/Ongoing): 0
[06:30:00.000] INFO: No unpaid bookings found for auto-cancellation.
[06:59:28.000] INFO: HTTP Server is running on port 3000
[13:03:54.000] INFO: HTTP Server is running on port 3000
[13:03:54.000] ERROR: Server Error: Not authenticated{"status":401,"message":"Not authenticated","stack":"Error: Not authenticated\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at module.exports (/home/aircamp/api-dev.aircamp.ph/middlewares/authorization.js:12:14)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:284:15\n    at Function.process_params (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:346:12)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:280:10)\n    at Function.handle (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:175:3)","error":{"statusCode":401}}
[13:03:54.000] ERROR: Server Error: Not authenticated{"status":401,"message":"Not authenticated","stack":"Error: Not authenticated\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at module.exports (/home/aircamp/api-dev.aircamp.ph/middlewares/authorization.js:12:14)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:284:15\n    at Function.process_params (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:346:12)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:280:10)\n    at Function.handle (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:175:3)","error":{"statusCode":401}}
[13:05:00.000] INFO: No unpaid bookings found for auto-cancellation.
[13:10:00.000] INFO: No unpaid bookings found for auto-cancellation.
[13:15:00.000] INFO: Bookings set to Ongoing (check-in started, not yet checked out): 0
[13:15:00.000] INFO: No unpaid bookings found for auto-cancellation.
[14:25:26.000] INFO: HTTP Server is running on port 3000
[14:29:27.000] ERROR: Server Error: Not authenticated{"status":401,"message":"Not authenticated","stack":"Error: Not authenticated\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at module.exports (/home/aircamp/api-dev.aircamp.ph/middlewares/authorization.js:12:14)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:284:15\n    at Function.process_params (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:346:12)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:280:10)\n    at Function.handle (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:175:3)","error":{"statusCode":401}}
[14:29:27.000] ERROR: Server Error: Not authenticated{"status":401,"message":"Not authenticated","stack":"Error: Not authenticated\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at module.exports (/home/aircamp/api-dev.aircamp.ph/middlewares/authorization.js:12:14)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:284:15\n    at Function.process_params (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:346:12)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:280:10)\n    at Function.handle (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:175:3)","error":{"statusCode":401}}
[14:30:00.000] INFO: Bookings set to Done (past check-out, Upcoming/Ongoing): 0
[14:30:00.000] INFO: No unpaid bookings found for auto-cancellation.
[14:30:37.000] INFO: HTTP Server is running on port 3000
[14:32:43.000] ERROR: Server Error: Invalid request!{"status":422,"message":"Invalid request!","data":[{"type":"field","value":"2026-04-05","msg":"Check in must be today or a future date.","path":"data.checkIn","location":"body"}],"stack":"Error: Invalid request!\n    at module.exports (/home/aircamp/api-dev.aircamp.ph/middlewares/route-validation.js:7:19)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at middleware (/home/aircamp/api-dev.aircamp.ph/node_modules/express-validator/lib/middlewares/check.js:16:13)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)","error":{"statusCode":422,"data":[{"type":"field","value":"2026-04-05","msg":"Check in must be today or a future date.","path":"data.checkIn","location":"body"}]}}
[14:33:15.000] ERROR: Server Error: Invalid request!{"status":422,"message":"Invalid request!","data":[{"type":"field","value":"2026-04-05","msg":"Check in must be today or a future date.","path":"data.checkIn","location":"body"}],"stack":"Error: Invalid request!\n    at module.exports (/home/aircamp/api-dev.aircamp.ph/middlewares/route-validation.js:7:19)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at middleware (/home/aircamp/api-dev.aircamp.ph/node_modules/express-validator/lib/middlewares/check.js:16:13)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)","error":{"statusCode":422,"data":[{"type":"field","value":"2026-04-05","msg":"Check in must be today or a future date.","path":"data.checkIn","location":"body"}]}}
[14:34:48.000] INFO: PayMongo checkout session created: {
  "data": {
    "id": "cs_41e657b0944a99060e562224",
    "type": "checkout_session",
    "attributes": {
      "billing": {
        "address": {
          "city": null,
          "country": null,
          "line1": null,
          "line2": null,
          "postal_code": null,
          "state": null
        },
        "email": null,
        "name": null,
        "phone": null
      },
      "billing_information_fields_editable": "enabled",
      "cancel_url": "https://uat.aircamp.ph/bookings/app/?success=false&bookingNo=ACPH-964588&status=Upcoming&listing=Highland+View+Eco+Camp&guestName=John+Doe&listingType=Public&spot=test1&dateCreated=4%2F6%2F2026%2C+2%3A34%3A47+PM&checkIn=April+9%2C+2026&checkOut=April+13%2C+2026&paymentStatus=Unpaid&price=20.00&guestFee=8&discount=0&paymentMethod=online&subtotal=88&totalPayment=88&address=San+Raf*ael%2C+Philippines*&userImage=https%3A%2F%2Fapi.aircamp.ph%2Fpublic%2Fuser-uploads%2Ftest_profile1.jpg&firstname=John&lastname=Doe",
      "checkout_url": "https://checkout.paymongo.com/41e657b0944a99060e562224",
      "client_key": "cs_41e657b0944a99060e562224_client_069f241221cc930462acce87",
      "collection": {
        "customer_info": {
          "email": {
            "state": "auto"
          },
          "name": {
            "state": "auto"
          },
          "mobile_phone": {
            "state": "auto"
          },
          "address": {
            "state": "auto"
          }
        }
      },
      "customer_email": null,
      "customer_id": null,
      "description": "AirCamp Booking ACPH-964588 - Highland View Eco Camp - test1",
      "line_items": [
        {
          "amount": 8800,
          "currency": "PHP",
          "description": null,
          "images": [],
          "name": "AirCamp Booking ACPH-964588 - Highland View Eco Camp - test1",
          "quantity": 1
        }
      ],
      "livemode": false,
      "merchant": "Aircamp ",
      "metadata": {
        "booking_no": "ACPH-964588"
      },
      "organization_id": "org_zJnDXbyebLasmB63yeNxBYN5",
      "pass_on_fees": false,
      "payment_intent": {
        "id": "pi_FSZEMRX6L1716EENnAzPyeYb",
        "type": "payment_intent",
        "attributes": {
          "amount": 8800,
          "capture_type": "automatic",
          "client_key": "pi_FSZEMRX6L1716EENnAzPyeYb_client_TDB4iemPanEUGjFNgKhAyajr",
          "currency": "PHP",
          "description": "AirCamp Booking ACPH-964588 - Highland View Eco Camp - test1",
          "last_payment_error": null,
          "livemode": false,
          "metadata": {
            "booking_no": "ACPH-964588"
          },
          "next_action": null,
          "original_amount": 8800,
          "payment_method_allowed": [
            "grab_pay",
            "qrph",
            "dob",
            "card",
            "gcash",
            "paymaya",
            "billease"
          ],
          "payment_method_options": {
            "card": {
              "request_three_d_secure": "any"
            }
          },
          "payments": [],
          "setup_future_usage": null,
          "statement_descriptor": "Aircamp ",
          "status": "awaiting_payment_method",
          "created_at": 1775457288,
          "updated_at": 1775457288
        }
      },
      "payment_method_types": [
        "qrph",
        "card",
        "dob",
        "gcash",
        "grab_pay",
        "billease",
        "paymaya"
      ],
      "payments": [],
      "public_key": "pk_test_7n4hc82YY5Y4nvFGQS9FNr6P",
      "reference_number": null,
      "send_email_receipt": false,
      "show_description": true,
      "show_line_items": true,
      "status": "active",
      "success_url": "https://uat.aircamp.ph/bookings/app/?success=true&bookingNo=ACPH-964588&status=Upcoming&listing=Highland+View+Eco+Camp&guestName=John+Doe&listingType=Public&spot=test1&dateCreated=4%2F6%2F2026%2C+2%3A34%3A47+PM&checkIn=April+9%2C+2026&checkOut=April+13%2C+2026&paymentStatus=Paid&price=20.00&guestFee=8&discount=0&paymentMethod=online&subtotal=88&totalPayment=88&address=San+Raf*ael%2C+Philippines*&userImage=https%3A%2F%2Fapi.aircamp.ph%2Fpublic%2Fuser-uploads%2Ftest_profile1.jpg&firstname=John&lastname=Doe",
      "created_at": 1775457288,
      "updated_at": 1775457288
    }
  }
}
[14:34:48.000] INFO: Payment checkout created for booking ACPH-964588. URL: https://checkout.paymongo.com/41e657b0944a99060e562224
[14:35:00.000] INFO: No unpaid bookings found for auto-cancellation.
[14:40:00.000] INFO: No unpaid bookings found for auto-cancellation.
[14:45:00.000] INFO: No unpaid bookings found for auto-cancellation.
[14:50:00.000] INFO: No unpaid bookings found for auto-cancellation.
[14:55:00.000] INFO: No unpaid bookings found for auto-cancellation.
[15:00:00.000] INFO: No unpaid bookings found for auto-cancellation.
[15:00:00.000] INFO: Bookings cancelled (For Approval, past check-in): 1
[15:05:00.000] INFO: Auto-cancelled 1 unpaid bookings (older than 30 minutes). Transactions updated.
[15:08:07.000] INFO: PayMongo checkout session created: {
  "data": {
    "id": "cs_505e6b4de1990b109a379260",
    "type": "checkout_session",
    "attributes": {
      "billing": {
        "address": {
          "city": null,
          "country": null,
          "line1": null,
          "line2": null,
          "postal_code": null,
          "state": null
        },
        "email": null,
        "name": null,
        "phone": null
      },
      "billing_information_fields_editable": "enabled",
      "cancel_url": "https://uat.aircamp.ph/bookings/app/?success=false&bookingNo=ACPH-441352&status=For+Approval&listing=Tanay+camp&guestName=John+Doe&listingType=Public&spot=sadasdas&dateCreated=4%2F6%2F2026%2C+3%3A08%3A06+PM&checkIn=April+6%2C+2026&checkOut=April+7%2C+2026&paymentStatus=Unpaid&price=100.00&guestFee=10&discount=0&paymentMethod=online&subtotal=110&totalPayment=110&address=San+Raf*ael%2C+Philippines*&userImage=https%3A%2F%2Fapi.aircamp.ph%2Fpublic%2Fuser-uploads%2Ftest_profile1.jpg&firstname=John&lastname=Doe",
      "checkout_url": "https://checkout.paymongo.com/505e6b4de1990b109a379260",
      "client_key": "cs_505e6b4de1990b109a379260_client_d6ea4423fccf604a909effe8",
      "collection": {
        "customer_info": {
          "email": {
            "state": "auto"
          },
          "name": {
            "state": "auto"
          },
          "mobile_phone": {
            "state": "auto"
          },
          "address": {
            "state": "auto"
          }
        }
      },
      "customer_email": null,
      "customer_id": null,
      "description": "AirCamp Booking ACPH-441352 - Tanay camp - sadasdas",
      "line_items": [
        {
          "amount": 11000,
          "currency": "PHP",
          "description": null,
          "images": [],
          "name": "AirCamp Booking ACPH-441352 - Tanay camp - sadasdas",
          "quantity": 1
        }
      ],
      "livemode": false,
      "merchant": "Aircamp ",
      "metadata": {
        "booking_no": "ACPH-441352"
      },
      "organization_id": "org_zJnDXbyebLasmB63yeNxBYN5",
      "pass_on_fees": false,
      "payment_intent": {
        "id": "pi_ePturU6GgRvQfbkbmYeLVHmF",
        "type": "payment_intent",
        "attributes": {
          "amount": 11000,
          "capture_type": "automatic",
          "client_key": "pi_ePturU6GgRvQfbkbmYeLVHmF_client_XrDBKdhsCToiUrKTj7RenhWT",
          "currency": "PHP",
          "description": "AirCamp Booking ACPH-441352 - Tanay camp - sadasdas",
          "last_payment_error": null,
          "livemode": false,
          "metadata": {
            "booking_no": "ACPH-441352"
          },
          "next_action": null,
          "original_amount": 11000,
          "payment_method_allowed": [
            "gcash",
            "billease",
            "qrph",
            "dob",
            "paymaya",
            "grab_pay",
            "card"
          ],
          "payment_method_options": {
            "card": {
              "request_three_d_secure": "any"
            }
          },
          "payments": [],
          "setup_future_usage": null,
          "statement_descriptor": "Aircamp ",
          "status": "awaiting_payment_method",
          "created_at": 1775459287,
          "updated_at": 1775459287
        }
      },
      "payment_method_types": [
        "qrph",
        "card",
        "dob",
        "gcash",
        "grab_pay",
        "billease",
        "paymaya"
      ],
      "payments": [],
      "public_key": "pk_test_7n4hc82YY5Y4nvFGQS9FNr6P",
      "reference_number": null,
      "send_email_receipt": false,
      "show_description": true,
      "show_line_items": true,
      "status": "active",
      "success_url": "https://uat.aircamp.ph/bookings/app/?success=true&bookingNo=ACPH-441352&status=For+Approval&listing=Tanay+camp&guestName=John+Doe&listingType=Public&spot=sadasdas&dateCreated=4%2F6%2F2026%2C+3%3A08%3A06+PM&checkIn=April+6%2C+2026&checkOut=April+7%2C+2026&paymentStatus=Paid&price=100.00&guestFee=10&discount=0&paymentMethod=online&subtotal=110&totalPayment=110&address=San+Raf*ael%2C+Philippines*&userImage=https%3A%2F%2Fapi.aircamp.ph%2Fpublic%2Fuser-uploads%2Ftest_profile1.jpg&firstname=John&lastname=Doe",
      "created_at": 1775459287,
      "updated_at": 1775459287
    }
  }
}
[15:08:07.000] INFO: Payment checkout created for booking ACPH-441352. URL: https://checkout.paymongo.com/505e6b4de1990b109a379260
[15:10:01.000] INFO: No unpaid bookings found for auto-cancellation.
[15:15:00.000] INFO: No unpaid bookings found for auto-cancellation.
[15:15:00.000] INFO: Bookings set to Ongoing (check-in started, not yet checked out): 1
[15:20:00.000] INFO: No unpaid bookings found for auto-cancellation.
[15:25:00.000] INFO: No unpaid bookings found for auto-cancellation.
[15:25:06.000] ERROR: Server Error: Not authenticated{"status":401,"message":"Not authenticated","stack":"Error: Not authenticated\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at module.exports (/home/aircamp/api-dev.aircamp.ph/middlewares/authorization.js:12:14)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:284:15\n    at Function.process_params (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:346:12)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:280:10)\n    at Function.handle (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:175:3)","error":{"statusCode":401}}
[15:25:06.000] ERROR: Server Error: Not authenticated{"status":401,"message":"Not authenticated","stack":"Error: Not authenticated\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at module.exports (/home/aircamp/api-dev.aircamp.ph/middlewares/authorization.js:12:14)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:284:15\n    at Function.process_params (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:346:12)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:280:10)\n    at Function.handle (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:175:3)","error":{"statusCode":401}}
[15:30:00.000] INFO: No unpaid bookings found for auto-cancellation.
[15:30:00.000] INFO: Bookings set to Done (past check-out, Upcoming/Ongoing): 0
[15:33:16.000] ERROR: Server Error: Not authenticated{"status":401,"message":"Not authenticated","stack":"Error: Not authenticated\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at module.exports (/home/aircamp/api-dev.aircamp.ph/middlewares/authorization.js:12:14)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:284:15\n    at Function.process_params (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:346:12)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:280:10)\n    at Function.handle (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:175:3)","error":{"statusCode":401}}
[15:33:17.000] ERROR: Server Error: Not authenticated{"status":401,"message":"Not authenticated","stack":"Error: Not authenticated\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at module.exports (/home/aircamp/api-dev.aircamp.ph/middlewares/authorization.js:12:14)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:284:15\n    at Function.process_params (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:346:12)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:280:10)\n    at Function.handle (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:175:3)","error":{"statusCode":401}}
[15:35:00.000] INFO: No unpaid bookings found for auto-cancellation.
[15:40:00.000] INFO: Auto-cancelled 1 unpaid bookings (older than 30 minutes). Transactions updated.
[15:44:52.000] ERROR: Server Error: Not authenticated{"status":401,"message":"Not authenticated","stack":"Error: Not authenticated\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at module.exports (/home/aircamp/api-dev.aircamp.ph/middlewares/authorization.js:12:14)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:284:15\n    at Function.process_params (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:346:12)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:280:10)\n    at Function.handle (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:175:3)","error":{"statusCode":401}}
[15:44:54.000] ERROR: Server Error: Not authenticated{"status":401,"message":"Not authenticated","stack":"Error: Not authenticated\n    at errorHandler (/home/aircamp/api-dev.aircamp.ph/util/errorHandler.js:2:17)\n    at module.exports (/home/aircamp/api-dev.aircamp.ph/middlewares/authorization.js:12:14)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/route.js:119:3)\n    at Layer.handle [as handle_request] (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/layer.js:95:5)\n    at /home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:284:15\n    at Function.process_params (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:346:12)\n    at next (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:280:10)\n    at Function.handle (/home/aircamp/api-dev.aircamp.ph/node_modules/express/lib/router/index.js:175:3)","error":{"statusCode":401}}
[15:45:00.000] INFO: No unpaid bookings found for auto-cancellation.
[15:46:26.000] INFO: PayMongo checkout session created: {
  "data": {
    "id": "cs_c1b3f2a343d57b5771727292",
    "type": "checkout_session",
    "attributes": {
      "billing": {
        "address": {
          "city": null,
          "country": null,
          "line1": null,
          "line2": null,
          "postal_code": null,
          "state": null
        },
        "email": null,
        "name": null,
        "phone": null
      },
      "billing_information_fields_editable": "enabled",
      "cancel_url": "https://uat.aircamp.ph/bookings/app/?success=false&bookingNo=ACPH-683080&status=For+Approval&listing=Christine+Camp+&guestName=Sebastian+Parohinog&listingType=Public&spot=Riverside+Tent&dateCreated=4%2F6%2F2026%2C+3%3A46%3A25+PM&checkIn=April+9%2C+2026&checkOut=April+10%2C+2026&paymentStatus=Unpaid&price=100.00&guestFee=10&discount=0&paymentMethod=online&subtotal=110&totalPayment=110&address=Naval+%2C+Philippines&userImage=&firstname=Sebastian&lastname=Parohinog",
      "checkout_url": "https://checkout.paymongo.com/c1b3f2a343d57b5771727292",
      "client_key": "cs_c1b3f2a343d57b5771727292_client_2f2752ddb72589acf1e25536",
      "collection": {
        "customer_info": {
          "email": {
            "state": "auto"
          },
          "name": {
            "state": "auto"
          },
          "mobile_phone": {
            "state": "auto"
          },
          "address": {
            "state": "auto"
          }
        }
      },
      "customer_email": null,
      "customer_id": null,
      "description": "AirCamp Booking ACPH-683080 - Christine Camp  - Riverside Tent",
      "line_items": [
        {
          "amount": 11000,
          "currency": "PHP",
          "description": null,
          "images": [],
          "name": "AirCamp Booking ACPH-683080 - Christine Camp  - Riverside Tent",
          "quantity": 1
        }
      ],
      "livemode": false,
      "merchant": "Aircamp ",
      "metadata": {
        "booking_no": "ACPH-683080"
      },
      "organization_id": "org_zJnDXbyebLasmB63yeNxBYN5",
      "pass_on_fees": false,
      "payment_intent": {
        "id": "pi_YJmyJCj4qKvnwfL1PQVHw6He",
        "type": "payment_intent",
        "attributes": {
          "amount": 11000,
          "capture_type": "automatic",
          "client_key": "pi_YJmyJCj4qKvnwfL1PQVHw6He_client_fP2iG6Bkzo8b32JhFZn3XWzh",
          "currency": "PHP",
          "description": "AirCamp Booking ACPH-683080 - Christine Camp  - Riverside Tent",
          "last_payment_error": null,
          "livemode": false,
          "metadata": {
            "booking_no": "ACPH-683080"
          },
          "next_action": null,
          "original_amount": 11000,
          "payment_method_allowed": [
            "card",
            "billease",
            "dob",
            "paymaya",
            "qrph",
            "grab_pay",
            "gcash"
          ],
          "payment_method_options": {
            "card": {
              "request_three_d_secure": "any"
            }
          },
          "payments": [],
          "setup_future_usage": null,
          "statement_descriptor": "Aircamp ",
          "status": "awaiting_payment_method",
          "created_at": 1775461586,
          "updated_at": 1775461586
        }
      },
      "payment_method_types": [
        "qrph",
        "card",
        "dob",
        "gcash",
        "grab_pay",
        "billease",
        "paymaya"
      ],
      "payments": [],
      "public_key": "pk_test_7n4hc82YY5Y4nvFGQS9FNr6P",
      "reference_number": null,
      "send_email_receipt": false,
      "show_description": true,
      "show_line_items": true,
      "status": "active",
      "success_url": "https://uat.aircamp.ph/bookings/app/?success=true&bookingNo=ACPH-683080&status=For+Approval&listing=Christine+Camp+&guestName=Sebastian+Parohinog&listingType=Public&spot=Riverside+Tent&dateCreated=4%2F6%2F2026%2C+3%3A46%3A25+PM&checkIn=April+9%2C+2026&checkOut=April+10%2C+2026&paymentStatus=Paid&price=100.00&guestFee=10&discount=0&paymentMethod=online&subtotal=110&totalPayment=110&address=Naval+%2C+Philippines&userImage=&firstname=Sebastian&lastname=Parohinog",
      "created_at": 1775461586,
      "updated_at": 1775461586
    }
  }
}
[15:46:26.000] INFO: Payment checkout created for booking ACPH-683080. URL: https://checkout.paymongo.com/c1b3f2a343d57b5771727292
[15:46:55.000] INFO: trigrring hooks :
[15:46:55.000] INFO: paid :
[15:46:56.000] INFO: trigrring hooks :
[15:46:56.000] ERROR: Unhandled event type:
[15:50:00.000] INFO: No unpaid bookings found for auto-cancellation.
[15:55:00.000] INFO: No unpaid bookings found for auto-cancellation.
[16:02:16.000] INFO: HTTP Server is running on port 3000
[16:05:00.000] INFO: No unpaid bookings found for auto-cancellation.
[16:10:00.000] INFO: No unpaid bookings found for auto-cancellation.
[19:51:53.000] INFO: HTTP Server is running on port 3000
[19:55:00.000] INFO: No unpaid bookings found for auto-cancellation.
[20:12:28.000] INFO: HTTP Server is running on port 3000
