Строгая изоляция логики и UI через слои для обеспечения предсказуемой разработки и отсутствия побочных эффектов.
Максимум 3 файла в корне модели. Обязательные index.ts и types.ts для всех сегментов.
^[a-z0-9-]+\.(config|types|schema|converters|service)\.ts$
1import { useAuthStore } from "@/entities/session"; // OK: feature -> entity
2import { Button } from "@/shared/ui"; // OK: feature -> shared1import { logoutFeature } from "@/features/auth"; // ERROR: entity -> feature (LAYER VIOLATION)Слой трансформации, гарантирующий, что UI получает точные, готовые к отрисовке структуры данных.
1├── api/ # API сервисы (RTK Query)
2├── types/ # Структуры данных
3│ ├── index.ts
4│ ├── invoice.interface.ts
5│ └── invoice.types.ts
6├── constants/ # Списки, маппинги, значения по умолчанию
7├── converters/ # Трансформации данных
8├── handlers/ # Бизнес-логика и валидация
9├── mock/ # Тестовые данные
10├── ui/ # (Опционально) Карточки, элементы списка
11└── index.ts # Публичный API1├── model/ # Логика и состояние виджета
2│ ├── config/ # Конфигурации форм/колонок
3│ ├── schema/ # Схемы валидации (Zod)
4│ ├── types/ # Локальные типы
5│ └── index.ts
6├── ui/ # Внутренние компоненты отображения
7│ ├── general-info/
8│ └── rooms/
9├── accommodation-edit.tsx # Основной компонент
10└── index.ts # Публичный API