Each club lives behind its own wall.
Each club has its own subdomain and its own row-set. The middleware resolves the tenant from the URL and stamps every server-side query with that tenant id. A booking, member or audit row from one club is unreachable from another, even if a request asks for it directly.