feat: migrate to VitePress from monorepo docs, add test-contour section
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
# Cabinet
|
||||
|
||||
`apps/cabinet` - старый личный кабинет и административный монолит на Symfony 5.4.
|
||||
|
||||
## Стек
|
||||
|
||||
- Symfony 5.4.
|
||||
- PHP в общем compose обслуживается контейнером `php82`.
|
||||
- Twig-шаблоны.
|
||||
- Webpack Encore для ассетов.
|
||||
- Doctrine ORM 2 и migrations.
|
||||
- PostgreSQL и отдельное подключение к Bitrix.
|
||||
- Redis cache через Symfony cache pool.
|
||||
- Авторизация через guard authenticator `App\Security\LoginFormAuthenticator`.
|
||||
|
||||
## Основные директории
|
||||
|
||||
- `src/Controller` - страницы кабинета, админка и публичный API.
|
||||
- `src/Bundle` - локальные интеграционные обертки: Bitrix, Infoclinica, Calltouch, SMS, Notisend, Yandex.
|
||||
- `src/Command` - синхронизации и служебные операции.
|
||||
- `src/Entity` - Doctrine entities.
|
||||
- `src/Form` - формы Symfony.
|
||||
- `src/Service` - бизнес-логика.
|
||||
- `templates` - Twig-шаблоны.
|
||||
- `assets` - JS/CSS-ассеты для Webpack Encore.
|
||||
|
||||
## Расписание врачей
|
||||
|
||||
Публичный сайт (список врачей, слоты записи) получает **живое расписание** из Infoclinica через прокси `GET /api/interval`, а не из backend API. Batch-sync ближайших дат (`nearestDate`) идёт через backend cron → PostgreSQL views.
|
||||
|
||||
Полный разбор: [Расписание врачей: синхронизация и отображение](./doctor-schedule-sync.md).
|
||||
|
||||
## Онлайн-консультация
|
||||
|
||||
Запись на онлайн-приём: `/online-specialists` (требуется авторизация), слоты через `/api/interval?onlineMode=1`, бронирование через Infoclinica webSDK, оплата и видео в `/case-history`.
|
||||
|
||||
Подробно: [Онлайн-консультация в личном кабинете](./online-consultation.md).
|
||||
|
||||
Тесты: `make local-online-smoke`, `make cabinet-test`.
|
||||
|
||||
## Точки входа
|
||||
|
||||
nginx направляет `cabinet.sovamed.ru` в `apps/cabinet/public/index.php`. Корневой маршрут `/` обрабатывается `DefaultController::index` и требует `ROLE_USER`.
|
||||
|
||||
Важные контроллеры:
|
||||
|
||||
- `SecurityController` - вход и выход.
|
||||
- `DefaultController` - основные страницы кабинета и админские действия.
|
||||
- `PublicAPIController` - публичные API-методы под `/api`.
|
||||
- `InternalAPIController` - внутренние API-методы.
|
||||
- `SpecialistController`, `DepartmentController`, `PageController`, `BannerController` - справочники и CMS-часть.
|
||||
- `WidgetController`, `WidgetFormController` - формы и виджеты.
|
||||
|
||||
## Ассеты
|
||||
|
||||
Команды из `package.json`:
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
yarn watch
|
||||
yarn build
|
||||
```
|
||||
|
||||
В контейнере:
|
||||
|
||||
```bash
|
||||
docker exec -it php82 yarn install
|
||||
docker exec -it php82 yarn dev
|
||||
```
|
||||
|
||||
## Backend-команды
|
||||
|
||||
Установка зависимостей:
|
||||
|
||||
```bash
|
||||
docker exec -it php82 composer install
|
||||
```
|
||||
|
||||
Миграции:
|
||||
|
||||
```bash
|
||||
docker exec -it php82 php bin/console doctrine:migrations:migrate
|
||||
```
|
||||
|
||||
Список app-команд:
|
||||
|
||||
```bash
|
||||
docker exec -it php82 php bin/console list app
|
||||
```
|
||||
|
||||
## Важное замечание
|
||||
|
||||
Внутри `apps/cabinet` есть отдельный старый `docker-compose.yml` под PHP 7.4 и локальный nginx. Основной репозиторий сейчас использует общий compose из `environments` и контейнер `php82`, поэтому старый compose стоит рассматривать как исторический или альтернативный сценарий.
|
||||
Reference in New Issue
Block a user