Domain Model

Основные бизнес-сущности

graph TB
    subgraph FRANCHISE["Франшиза (бренд)"]
        F[Франшиза]
        LE_F[ЮЛ Франшизы]
    end

    subgraph PARTNER["Партнёры"]
        FC[Франчайзи]
        LE_FC[ЮЛ Франчайзи]
    end

    subgraph STORES["Точки продаж"]
        S[Торговая точка]
        DZ[Зона доставки]
    end

    subgraph CATALOG["Каталог"]
        P[Товар / Блюдо]
        C[Категория]
        M[Модификатор]
        PL[Прейскурант]
        SL[Стоп-лист]
    end

    subgraph WAREHOUSE["Склад"]
        I[Ингредиент]
        TC[Техкарта]
        SB[Складской остаток]
        WD[Складской документ]
    end

    subgraph PEOPLE["Люди"]
        E[Сотрудник]
        CU[Клиент]
    end

    F --> LE_F
    F --> FC
    FC --> LE_FC
    LE_FC --> S
    S --> DZ
    F --> P
    F --> C
    P --> M
    P --> PL
    S --> SL
    P --> TC
    TC --> I
    S --> SB
    S --> WD
    F --> E
    FC --> E
    S --> E

    style FRANCHISE fill:#e94560,color:#fff
    style PARTNER fill:#533483,color:#fff
    style STORES fill:#0f3460,color:#fff
    style CATALOG fill:#16213e,color:#fff
    style WAREHOUSE fill:#1a1a2e,color:#fff
    style PEOPLE fill:#0f3460,color:#fff

Иерархия владения

Франшиза (1)
├── ЮЛ Франшизы (1, главное)
├── Франчайзи (N)
│   ├── ЮЛ Франчайзи (1+)
│   └── Торговые точки (N)
│       ├── Зоны доставки (N)
│       ├── Складские остатки
│       ├── Стоп-листы
│       └── Сотрудники (привязка)
├── Единый каталог
│   ├── Категории (иерархия)
│   ├── Товары / Блюда
│   ├── Модификаторы
│   ├── Прейскуранты (по ТТ/регионам)
│   └── Техкарты (рецептуры)
└── Ингредиенты (справочник)

Ключевые бизнес-правила

  1. Каталог единый для всей франшизы — франчайзи не может добавлять свои товары
  2. Двухуровневая доступность — франшиза разрешает, франчайзи выбирает подмножество
  3. Техкарты создаёт только франшиза — контроль качества и стандартизация
  4. Франшиза = централизованный поставщик — авторекомендация заказа идёт франшизе
  5. Мультитенантность — все данные изолированы по franchise_id