Configuring access rights in the CRM Super Admin
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# BillingAccount + Modules Implementation Plan
|
||||
|
||||
> **For agentic workers:** Execute task-by-task. Checkboxes track progress.
|
||||
|
||||
**Goal:** Owner-level `BillingAccount` (plans/expiry/max orgs), per-org `enabledModules`, CRM enforcement + remaining-days UI, `/adm` controls and polish.
|
||||
|
||||
**Architecture:** Shared module catalog; Prisma `BillingAccount` + `Organization.enabledModules`; billing checks on login/org-create; module guards on API + filtered nav; platform admin APIs/UI for plans and modules.
|
||||
|
||||
**Tech Stack:** NestJS, Prisma, Vue 3, `@mento/shared`, existing CRM CSS tokens.
|
||||
|
||||
## Global Constraints
|
||||
|
||||
- Manual activation only (no payment gateway).
|
||||
- Existing owners: trial 15 days; `maxOrganizations >=` current owned org count.
|
||||
- Expiry: block CRM login; header days remaining; warn ≤3 days.
|
||||
- Vue + CRM CSS only for `/adm`.
|
||||
|
||||
---
|
||||
|
||||
## Task 1: Shared catalog + DTOs
|
||||
|
||||
- [ ] Add `ORG_MODULE_KEYS`, labels, plan presets, billing DTOs to `packages/shared/src/index.ts`
|
||||
- [ ] Extend org/login DTOs with `enabledModules` + `subscription` summary
|
||||
|
||||
## Task 2: Prisma
|
||||
|
||||
- [ ] `BillingAccount` model; `Organization.enabledModules String[]`
|
||||
- [ ] Migration SQL + data backfill (trial 15d, full modules)
|
||||
|
||||
## Task 3: Billing service + auth/org enforcement
|
||||
|
||||
- [ ] `BillingService` resolve/require active for org; apply plan; ensure account
|
||||
- [ ] Hook login / switch org / create org
|
||||
- [ ] Module require helper for key controllers (or lightweight guard)
|
||||
|
||||
## Task 4: Platform API + /adm UI
|
||||
|
||||
- [ ] Endpoints: get/apply billing, patch org modules
|
||||
- [ ] Adm users: billing card; adm orgs: module checklist; light shell polish
|
||||
|
||||
## Task 5: Web CRM
|
||||
|
||||
- [ ] Filter nav hubs by modules
|
||||
- [ ] Header subscription chip + warn
|
||||
- [ ] Router guard for disabled modules
|
||||
Reference in New Issue
Block a user