OLIVO POS — CURRENT CPANEL TEST PACKAGE
=======================================

This is a clean, first-install package for testing on cPanel. The browser
installer creates the private database configuration and install lock.

This revision also fixes nested route-prefix ordering (including
`/app/restaurant/menu`), the account-menu outside-click behavior,
notification-list rendering, tenant-list data, POS category/search filtering,
and the historical `/products/{id}/edit` URL. Platform tenant details now
support business-profile editing and subscription/access actions. Platform
settings can configure Manual UPI, bank transfer, and PayPal-by-email
instructions; these are disabled by default and are not processor/API
integrations. Tenant references remain pending until platform staff independently
verify receipt. The self-service 30-day Starter trial is preserved; signup does
not require payment or platform-admin approval.

REQUIREMENTS
------------
- PHP 8.2 or later
- MySQL 8+ or MariaDB 10.6+
- PHP extensions: PDO MySQL (pdo_mysql), mbstring, JSON, OpenSSL
- HTTPS enabled (AutoSSL recommended)
- Apache/LiteSpeed with mod_rewrite for clean URLs

RECOMMENDED INSTALL (DOMAIN OR SUBDOMAIN)
-----------------------------------------
1. In cPanel File Manager, upload this ZIP to your home directory OUTSIDE
   public_html, then extract it. It creates an `olivo/` folder.
2. In cPanel > MySQL Databases, create a database and database user. Grant that
   user ALL PRIVILEGES on the database. Keep the credentials private.
3. In cPanel > Domains, set the domain/subdomain document root to:
      /home/CPANEL_USERNAME/olivo/public
   Replace CPANEL_USERNAME with your actual cPanel username.
4. Open https://your-domain/install and complete the setup wizard. The database
   host is commonly `localhost`; use the exact prefixed database and username
   shown in cPanel.
5. Create a strong, unique platform-owner password. There are no default logins
   or demo credentials. This account manages the platform; it is not a business
   owner account and has no tenant membership.
6. Sign out, then register the first business at `/register` using a separate,
   unique email for its business owner. Choose the business industry at onboarding
   step 3, then complete setup and test using non-production data.

If your cPanel account cannot change a domain's document root, use the
subdirectory procedure in `docs/04-INSTALLATION.md` (Shape C). Keep the project
outside the public web root; only copy the contents of `olivo/public/` into the
public subdirectory and set OLIVO_APP_ROOT in its index.php and install.php.

PACKAGE SAFETY
--------------
- This ZIP intentionally omits config/config.php, storage/framework/install.lock,
  runtime logs, uploads, backups, caches, and the Composer vendor directory. Empty
  `.gitkeep` placeholders preserve the private writable storage directories.
- The installer will create config/config.php and install.lock during setup.
  Never share or place config/config.php in a public web directory.
- Composer is not required for the application: the standalone autoloader is
  included and there are no required runtime Composer packages.
- MFA is an optional account-security feature. Accounts that enable it receive
  a sign-in challenge; enrollment is never forced. The setup QR is generated
  locally and the manual secret remains available.
- `composer.json`, `composer.lock`, the test suite, and the migration files are
  included. PHPUnit is optional; this ZIP does not include vendor dependencies.
- The PHPUnit bootstrap rebuilds (drops and recreates tables in) the database
  named by OLIVO_TEST_DB. Never point automated tests at a live or valuable DB.

TESTING NOTE
------------
This is a cPanel test package, not a claim that the latest changes passed
end-to-end on your cPanel host. In the build workspace, a PHP 8.2 grammar parser
accepted all 266 PHP files and all 9 JavaScript tests passed; PHP CLI, PHPUnit,
and MySQL/MariaDB were unavailable, so PHP lint, database migrations, PHP tests,
and authenticated production behavior could not be exercised. In particular,
verify `/olivo/public/app/restaurant/menu` in an authenticated tenant session.
Install against a new, disposable database, test the flows you need, and keep a
backup before any upgrade. The complete installation guide is
`docs/04-INSTALLATION.md`.
