cocottetech/@platform/codebase/@features/ai-copilot/docs/org-overlay-settings.screen.md

100 lines
6.1 KiB
Markdown
Raw Normal View History

# org-overlay-settings.screen
Org-level settings (members, brands, billing inheritance, data scoping) for org-admins. Implements [brief W](./W-org-overlay.brief.md). P5+ — speculative. Reached from settings-root.screen.md when Quinn-as-org-admin context is active. Voice: working.
## Layout (full-screen sheet)
```
┌─────────────────────────────────────────────────┐
│ ◄ Settings Done │ 56pt
├─────────────────────────────────────────────────┤
│ │
│ Demimonde (back-office) │ org name
│ Owner: Quinn · Members: 1 · Brands: 1 │ summary
│ │
│ ─── Identity ─── │
│ Legal name: Demimonde LLC │
│ Customer-facing brand: Cocotte │
│ Tax ID: ••• · [ Update ] │
│ Compliance jurisdictions: US-CA, DE-BE │
│ │
│ ─── Members ─── │
│ • Quinn (owner) · since 2026-05 │
│ [ + Invite member → ] │
│ │
│ ─── Brands operated ─── │
│ • Cocotte umbrella · cocotte.maison │
│ • ADULT Therapy Tour · adulttherapytour.com │
│ • Futa Waifu Tour · futawaifutour.com │
│ [ + Add brand → ] │
│ │
│ ─── Data scope ─── │
│ Org data visible to all members: [☑ default ] │
│ Per-member private data: [ Member private ▼ ] │
│ │
│ ─── Billing inheritance ─── │
│ Members billed: ● Centrally by Demimonde │
│ Personal plans: ○ Each member pays │
│ Current spend: $49 (1 member) │
│ │
│ ─── Specialist scope ─── │
│ Org-wide specialists: triage, prospect-resolver│
│ Per-member specialists: bookings-*, content-* │
│ [ Edit scoping → ] │
│ │
│ [ Dissolve org ▼ ] │
│ │
└─────────────────────────────────────────────────┘
```
## Components
| Component | Notes |
|---|---|
| Identity | Legal name (back-office), customer-facing brand, tax ID, compliance jurisdictions per [K §K4](./K-safety-blocklist.brief.md). |
| Members | Member list with role + join date + invite CTA. Routes to second-member-invite.screen.md. |
| Brands | Brands operated under this org. Each row + "add brand" CTA. |
| Data scope | Who sees what. Default = all members see all org data; per-member private slice supported. |
| Billing inheritance | Centralized (org pays for everything) or per-member. Per brief Z. |
| Specialist scope | Which specialists are org-wide (shared trust + history) vs per-member (each member has their own). |
| Dissolve org | Destructive — multi-step. |
## States
1. **Single-member org (Quinn alone)** — default; member list has 1 row.
2. **Multi-member org** — member list grows; pending invitations show as separate sub-section with "Resend / Cancel" affordances.
3. **Member-private specialist context** — when this screen is opened by a non-owner, only their per-member specialists shown; org-wide ones read-only.
4. **Brand-add flow active** — sheet over for new brand details.
5. **Compliance jurisdiction conflict** (org operates in jurisdiction X but brand Y is banned there) — inline warning chip on the brand row.
6. **Billing change pending** (switching centralized → per-member) — banner: "Change effective next billing cycle ({date})."
7. **Dissolution in progress** — banner: "Org dissolving on {date}. Members will be migrated to personal accounts. [Cancel]"
8. **VoiceOver** — sections read in declared order; sensitive fields (tax ID) announce as "redacted, double-tap to reveal."
## Interactions
- **Tap "Invite member"** → second-member-invite.screen.md.
- **Tap a member row** → member-detail (own screen if grows).
- **Tap "Add brand"** → brand-config sheet.
- **Tap "Edit scoping"** → specialist-scope editor.
- **Tap "Dissolve org"** → multi-step confirmation; routes through V-style erasure flow for any org-only data.
## Edge cases
- **Removing the only owner** → blocked; chip: "The owner can't be removed without transferring ownership first."
- **Dissolution while billing-failed** — pre-dissolution requires settling outstanding balances or arranging it.
- **Brand sharing with a separately-held Sansonnet org** (per DESIGN brand-family) — Sansonnet has its own org overlay; cross-org brand listing not supported.
- **Member private specialists conflict with org-wide ones** (e.g. one member's `bookings-tryst` vs org's) — per-member wins for that member.
## Related
- [Brief W](./W-org-overlay.brief.md) — parent.
- [Brief Z](./Z-billing-payments.brief.md) — billing inheritance.
- [Brief K §K4](./K-safety-blocklist.brief.md) — jurisdiction.
- [Brief V](./V-data-portability-erasure.brief.md) — dissolution data flows.
- [second-member-invite.screen.md](./second-member-invite.screen.md) — invite target.
- DESIGN.md §7.5 brand-family — the Cocotte / Demimonde / Sansonnet model.
## Out of scope
- Cross-org member sharing (one member working for two orgs — defer).
- Org-level analytics drill-down (separate screen).
- Org migration (one org owner transferring to another — defer).