# B2B Controllers

Partner-facing flow for B2B integrations. Partners access the system via authenticated URLs with `partner` and `access` query parameters.

## Base Controllers

| File | Description |
|------|-------------|
| `B2BController` | Base controller; authenticates partner access, detects language, stores partner session data, provides shared view variables and `logError()` |
| `BasePartnerController` | Abstract parent for language-specific partner controllers; handles auth, session, partner data |
| `BranchController` | Entry-point for B2B Branch.io deep links; renders landing page with coupon code and partner email submit URL |

## Language Controllers

Each language directory contains a `PartnerController` that extends `BasePartnerController`:

| Directory | File |
|-----------|------|
| `English/` | `PartnerController.php` |
| `German/` | `PartnerController.php` |
| `Hindi/` | `PartnerController.php` |
| `Japanese/` | `PartnerController.php` |
| `Portuguese/` | `PartnerController.php` |
| `Spanish/` | `PartnerController.php` |

## Flow

1. Partner sends user to a language-prefixed URL with auth params
2. `B2BController` validates the partner credentials against `PartnerQuery`
3. Language-specific `PartnerController` handles the multi-step partner flow
4. Branch.io deep links are handled separately via `BranchController`
