Yes, this is definitely possible in Bubble.
For example, in your data structure you can create a new field under the User Data Type called “Visits Available” (Type: Number, List: No).
Then when the gym pulls up a User’s information, they can click a button called “Check-In User”. The workflow for that button could be:
“When the Check-In-User button is clicked” --> Data --> Make Changes to Thing --> Thing to Change: Current Page User --> Field to change --> Visits Available: Current Page User’s Visit’s Available’s value - 1. That will deduct one visit from their Visits Available quantity. (As long as the Check-In page’s Type of Content is User, the option to select “Current Page User” will be shown)
You can also add another workflow to that which allows the User to view which gyms they have checked into (a Visit History function). So, when a User checks into a gym – that visit will be recorded in their History of Visits (including information such as Time of Check-In, and Gym they checked into).
As for the subscription plan part of things, you can set this up using Stripe. Users can either purchase a one-time-package fee of Gym Visits, or pay for visits on a monthly subscription plan.