Э0.1 · Спека фундамента · субстрат №1 из 7

Тенант · доступ · аудит

Граница кабинета, роли, владение, аудит. Корень фундамента — на нём стоят все домены; каждая спека продукта открывается строкой «граница кабинета». Эта спека её задаёт.

СИСТЕМА · 100% Этап Э1 (скелет) Корень графа core/tenancy-access Продуктовый уровень

Зачем это несущее

01Кабинет — мир специалиста

Практика принадлежит специалисту, а не площадке: его клиенты, записи, бренд, деньги. Домен даёт три вещи, без которых продукта нет вообще.

изоляция

Данные не текут

Кабинет физически недостижим из другого. Фундамент доверия: без него нельзя доверить ни одной чувствительной записи.

роли + владение

Команда без утечек

Кто что может внутри и его ли это конкретная запись. Без этого нельзя пустить в кабинет второго человека.

аудит

Доказуемая приватность

Неизменяемый след привилегированных действий. Без него нельзя обещать, что никто не смотрел лишнего.

Тест боли: не украшение — несущий капитал. Не «даёт клиентов» напрямую, но без него клиент не доверит дневник → уйдёт; клиника не пустит второго специалиста → не вырастет; утечка между кабинетами → смерть продукта.

Единый логичный круг

02Карта ролей — три уровня

Внутри кабинета роль — свойство пары «человек × кабинет» (членство), а не человека. Один человек бывает специалистом в одном кабинете и клиентом в другом.

Над кабинетами
platform Платформа (мы) Выдаём кабинеты, тарифы, тумблеры. Заход-поддержка — под аудитом, по умолчанию только чтение, владельцу видно. Внутрь данных не лезем. Со сплита не берём — живём с подписки.
Кабинет = покупатель
owner Владелец кабинета Психолог-соло, клиника или партнёр-в-своём-кабинете. Деньги, бренд, модули, доли, заводит команду, передача владения. Соло = owner + specialist (2 шляпы), не три.
admin Со-управленец = «главврач» «Админ» и «главврач» — одна роль. Клинический надзор над ВСЕМ штатом (супервизия) + операционка. НЕ трогает деньги/бренд/доли. Только в клинике со штатом — соло её НЕ носит.
Внутри кабинета
specialist Специалист (наш сотрудник) Под брендом кабинета; клиенты кабинета; клинический доступ только к своим; доля с оплат.
assistant Ресепшн Записи, календарь, финансы (оплаты/счета/возвраты), документы. Клиническое НЕ видит. Пресет прав настраиваем.
client Клиент Своя сторона: самозапись, оплаты, документы, переписка, свои дневники (видимостью управляет сам).
recipient Ребёнок / подросток Имеет СВОЙ доступ к своей стороне (записи, чат со специалистом, дневники) — приватно от опекуна. Малолетний — через опекуна; порог возраста — настройка.
payer Опекун / плательщик Врата входа: регистрация, согласия, оплата + организационное. Терапевтическое содержимое ребёнка НЕ видит.

Кабинет-площадка

Клиника размещает партнёра на витрине, шлёт клиентов.

⇄ партнёрское соглашение ⇄
витрина · направление · доля

Кабинет партнёра partner = owner

Свой изолированный кабинет, свой бренд/клиенты/услуги. Хозяин сам — платит долю кабинету-родителю за поток. Не заходит внутрь площадки: связь = отношение между кабинетами.

Два инструмента под две ситуации

03Специалист или партнёр?

К клинике «Гармония» просится массажист. Подключить можно двумя принципиально разными способами — и это ровно наши две роли.

specialist · в штат

Сотрудник клиники

  • Своего кабинета нет — работает внутри «Гармонии»
  • Под брендом клиники; клиенты — клиники
  • Заводится напрямую, сразу активен (доверенный)
  • Уйдёт — уйдёт с пустыми руками
  • Доля с оплат (внутрикабинетный сплит)
partner · свой кабинет + договор

Самостоятельный профи

  • Заводит свой кабинет — свой бренд/клиенты/подписка
  • Клиника его на витрине, шлёт клиентов; он отдаёт долю
  • Никакой модерации его действий — сам себе хозяин
  • Уйдёт — забирает свой кабинет целиком
  • Может быть другой профессии (массаж): своя вертикаль/функции

Ключ: нужен человек в команду под свой бренд → specialist. Пришёл самостоятельный профи за твоим потоком, но остаётся собой → partner со своим кабинетом.

Терминология разведена: «доля кабинета», не «доля площадки»

04Денежный круг — два вида дележа

1
Клиент → кабинет. Платит фиксированную цену за услугу.
A
Сплит внутрикабинетный — 2 слоя. Штатный специалист ↔ доля кабинета. База % (на специалисте) + доп % (на услуге) — суммируются, специалисту остаток. Два слоя = гибкость под разные услуги. Снапшот на момент счёта.
Б
Сплит межкабинетный — 1 слой. Кабинет-партнёр → одна доля кабинету-площадке. Партнёр самостоятелен: свои цены ставит у себя, площадке платит единую ставку за поток. Владелец-площадка ставит, партнёр подтверждает. Глубже не идём.
2
Каждый кабинет → мы (подписка). Платформа со сплита не берёт ничего — ДНК «0% комиссии, 100% твои».

Здесь — только кто кому и на каком основании. Сам расчёт (суб-счета, проводки, точность) — соседний домен money.

Сердце домена — не смешивать

05Три разных вопроса доступа

роль

RBAC

Позволяет ли роль это действие вообще? Ресепшн не открывает клинические заметки.

владение объектом

BOLA → «не найдено»

Его ли эта конкретная запись? Даже у специалиста — только свои клиенты. Чужое отвечает «не существует», а не «запрещено».

модуль включён?

Изоляция + тумблер

Изоляция отделяет кабинет от кабинета (последний рубеж). Плюс: доступ = роль ∩ включённый модуль (capabilities).

По умолчанию; тонкая настройка — движком политик

06Матрица «роль → что может»

Действие platform owner adminглавврач specialist assistant client
Кабинеты / тарифы
Биллинг, бренд, удаление, передача владения
Заводить команду, ставить доли~
Клинический надзор над ВСЕМ штатом
Вести своих клиентов (клинически)
Записи, оплаты/счета/возвраты, документы~
Видеть клиническое (заметки/дневники/тесты)своисвоё
Своя сторона (записаться / платить)

может · нет · ~ частично/с условием · неприменимо. Платформа «внутри кабинета» намеренно пуста: её единственный вход — заход-поддержка.

Обе стороны — специалист И клиент

07Ключевые сценарии

Вход клиента двумя путями. Приглашение (специалист шлёт ссылку) ИЛИ самозапись с публичной страницы; дубли сливаются в одного клиента с общей историей.
Клиника растит команду. Владелец заводит специалиста — сразу своё расписание и клиенты; передаёт клиента другому специалисту с досье. Главврач надзирает клинически.
Партнёрское соглашение. Площадка предлагает долю → партнёр подтверждает → его услуги на витрине, направления и доля идут через оговоренный канал. Пересмотр доли → новое согласие.
Двойная роль. Человек — специалист в A, клиент в B, владелец кабинета C; переключает активный кабинет, данные между ними не видны.
Отпочкование специалиста. Уходит в свой кабинет и забирает клиентов — но каждый клиент сам решает, идти ли за ним (альянс принадлежит клиенту); клиника уведомляется. Данные согласившихся едут с досье. ДНК «практика — специалиста». Механика — Э8.
Заход поддержки. Баннер + запись в журнал, видимый владельцу; только чтение по умолчанию; клиента не тревожим.

По-человечески, без апологий

08Края и ошибки

!
Нет контекста → показываем пусто (не ошибку, не «всё»). По умолчанию закрыто.
!
Чужой объект → «не найдено» (как будто его нет), не «запрещено».
!
Последний владелец не уходит не передав кабинет — кабинет без владельца недопустим.
!
Разрыв партнёрства → витрина/направления гаснут, но оба кабинета и все данные целы.
!
Дубль самозаписи → «Похоже, это тот же клиент — объединить?»

Что решил сам — подтверди или поправь словами

09Отмечено на приёмку

Технические дефолты (правь при желании)

  • Граница владелец↔главврач: деньги/бренд/удаление — только владелец; клинический надзор + операционка — главврач.
  • Уход участника: ушёл специалист → клиенты остаются кабинету; разрыв партнёрства → кабинеты целы; последний владелец сначала передаёт кабинет.
  • 2FA: обязательна владельцу/главврачу/специалисту/ресепшн/партнёру; клиенту — по желанию.
  • Детальная межкабинетная механика партнёрства (как клиент/оплата/доля физически ходят) — на Э8 «Клиника»/«Деньги». Сейчас — только модель.