HandyCafe Docs
owner cashier

Member Management

Members are registered customers in your internet cafe or gaming center. A member profile stores the customer's identity, contact information, login credentials, and billing preferences. Members can log in from client PCs, accumulate wallet balances, purchase time packages, earn loyalty points, and receive tier-based discounts on sessions and orders.

Member Profile Fields

Every member record contains the following information:

  • Username: A unique, case-insensitive identifier the member uses to sign in at client PCs. Once created, the username cannot be duplicated across the system.
  • Display name: The name shown in the Admin Panel, session lists, and client-side greeting. This is a required field.
  • Password: Members can set a password for self-service login at client PCs. The password is stored as a hash and can be left blank initially (the member sets it on first login).
  • Email: Optional email address. Visibility is controlled by the DISPLAY_EMAIL permission.
  • Mobile: Optional phone number. Visibility is controlled by the DISPLAY_GSM permission.
  • Avatar: A profile image URL displayed on the client lock screen and in member lists.
  • Gender: Defaults to "unknown". Can be set to male, female, or other for demographic filtering.
  • Memo: A free-text note field for internal use. Only visible to staff, not to the member.

Member States

Each member has two independent state flags:

Active / Inactive

The active/inactive toggle controls whether the member appears in standard search results and can interact with the system. Deactivating a member is a soft delete. The profile and all associated data (wallet credits, time credits, session history) are preserved but the member is hidden from day-to-day operations.

Login Permission

The can_login flag controls whether the member is allowed to sign in from client PCs. A member can be active (visible in the system) but have login disabled, which is useful for members with outstanding debts or policy violations.

Tier Assignment

Each member can be assigned to a loyalty tier. The tier determines:

  • Discount in BPS: A basis-point discount applied to session pricing. For example, a tier with discount_bps = 500 gives the member a 5% discount on the hourly rate.
  • Role label: A descriptive label (such as Silver, Gold, VIP) shown in the member's profile card and in session panels.

Tier assignment can be manual or automatic based on the loyalty points system. See the Loyalty Tiers page for details on how tiers are configured and how members progress through them.

Concurrent Connection Limit

The max_connection field sets the maximum number of simultaneous active sessions a member can have across all client PCs. The default value is 1, meaning the member can only be logged into one PC at a time. If a member attempts to log in on a second PC while already in an active session, the system will reject the login.

Increasing this value is useful for members who manage multiple machines (such as staff accounts) or for special membership tiers that allow multi-device usage.

Searching and Filtering Members

The Members page provides a virtual-scrolling list that handles large member databases efficiently. You can:

  • Search: Type in the search bar to filter by username, display name, email, or mobile number. The search is case-insensitive and updates results in real time.
  • Filter by status: Toggle between showing all members, only active members, or only inactive members.
  • Sort: Click column headers to sort by name, last seen date, or creation date.

The virtual scrolling implementation loads only the visible portion of the member list into memory so performance remains smooth even with tens of thousands of registered members.

Online Status Indicator

When a member is currently logged into a client PC or has an active console session, their profile shows a green online indicator in the member list. The indicator also displays which specific client or console the member is currently using so staff can quickly locate a customer.

Creating a New Member

To create a new member:

  1. Navigate to the Members page from the sidebar.
  2. Click the Add Member button in the toolbar.
  3. Fill in at least the display name (required) and optionally a username for login.
  4. Set a tier if applicable, or leave it at the default.
  5. Adjust the max connections value if the default of 1 is not appropriate.
  6. Click Save to create the member.

The system automatically generates a unique ID for the member and records the creating cashier's identity.

Editing a Member

Select a member from the list to open their profile detail view. From here you can:

  • Update any profile field (display name, email, mobile, gender, memo).
  • Change the member's tier assignment.
  • Toggle the active and can_login flags.
  • Reset or change the member's password.
  • Adjust the concurrent connection limit.

All changes are saved immediately and an audit log entry is created.

Deleting a Member

Deleting a member removes their profile from the active system. This action requires the MEMBER_DELETE permission. Associated data such as session history and wallet records are preserved for reporting purposes but are no longer linked to an active member profile.

Permission Requirements

Access to member management features is controlled by the following permissions on the cashier role:

Permission Grants
MEMBER_VIEW View the member list and search members
MEMBER_ADD Create new member profiles
MEMBER_UPDATE Edit existing member profiles
MEMBER_DELETE Delete member profiles
DISPLAY_EMAIL See the member's email address in the detail view
DISPLAY_GSM See the member's mobile number in the detail view

If a cashier's role does not include DISPLAY_EMAIL or DISPLAY_GSM, those fields are hidden in the member detail panel even though the data exists in the database.