100 lines
6.1 KiB
Markdown
100 lines
6.1 KiB
Markdown
|
|
# 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).
|