Deliver role-aware shell (sidebar, breadcrumbs, quick search, tables, detail/create layouts), locale-ready pages, shared backend/feature docs, and Vercel project config so HR, finance, and members can demo against typed mocks. Co-authored-by: Cursor <cursoragent@cursor.com>
89 lines
2.5 KiB
Markdown
89 lines
2.5 KiB
Markdown
# Feature: Packages & entitlements
|
|
|
|
Corporate benefit plans — allowance, co-pay, categories, perks, caps, exclusions, and per-member overrides.
|
|
|
|
**Workspace:** `/Users/kirukib/Desktop/Yaltopia Project/Gishen-B2B`
|
|
|
|
## Pages
|
|
|
|
| Route | Purpose |
|
|
|-------|---------|
|
|
| `/packages` | Package list with search/status filter |
|
|
| `/packages/new` | Create corporate package (allowance, co-pay, categories, perks) |
|
|
| `/packages/[id]` | Package detail/edit — rules, assigned members |
|
|
| `/me` | Member view of assigned package + allowance (see member-experience) |
|
|
|
|
## Entities
|
|
|
|
- [`Package`](../backend/entities/package.md)
|
|
- [`Member.overrides`](../backend/entities/member.md)
|
|
|
|
## Endpoints
|
|
|
|
- [`packages.md`](../backend/endpoints/packages.md)
|
|
- `GET /v1/me/package` — member allowance view
|
|
|
|
## Package structure
|
|
|
|
| Component | Purpose |
|
|
|-----------|---------|
|
|
| Allowance | Monthly/quarterly/annual cap per member |
|
|
| Co-pay % | Member pays remainder on covered items |
|
|
| Category rules | Coverage % per product category (chronic, OTC, etc.) |
|
|
| Perks | Custom benefits (free delivery, priority dispense) |
|
|
| Caps | Max order amount, orders/month, Rx fills/month |
|
|
| Exclusions | Blocked SKUs or categories |
|
|
|
|
## Status lifecycle
|
|
|
|
```
|
|
draft → active → archived
|
|
```
|
|
|
|
Pending orgs: packages saved as `draft` only until Admin activates org.
|
|
|
|
## Per-member overrides
|
|
|
|
Set on member detail (`/members/[id]`):
|
|
|
|
- Allowance cap override
|
|
- Co-pay override
|
|
- Extra categories or perks
|
|
- Exclusions
|
|
|
|
Overrides layer on top of base package at entitlement calculation time.
|
|
|
|
## Validation / errors
|
|
|
|
| Scenario | Code |
|
|
|----------|------|
|
|
| Duplicate package code | `DUPLICATE_PACKAGE` |
|
|
| Archive with assigned members | `PACKAGE_IN_USE` |
|
|
| Activate while org pending | `ORG_PENDING` |
|
|
| No category rules | `VALIDATION_FAILED` |
|
|
|
|
## Clinical withhold
|
|
|
|
Packages define coverage rules only — visible to all roles. No patient data.
|
|
|
|
## Checkout integration
|
|
|
|
Remaining allowance computed from:
|
|
|
|
```
|
|
allowance_remaining = package.allowance - allowance_used + overrides
|
|
```
|
|
|
|
Displayed on B2B `/me`. Actual basket split at checkout is **Ecom** — see [`gishen-ecom.md`](../coordination/gishen-ecom.md).
|
|
|
|
## UI components
|
|
|
|
- Package list cards/table with status badges
|
|
- Detail form: allowance input, co-pay slider, category rule builder, caps section
|
|
- Assigned members tab with reassign action
|
|
|
|
## Related
|
|
|
|
- [migration.md](migration.md) — bulk package import
|
|
- [finance.md](finance.md) — spend by category reflects package rules
|