← К списку версий
v0.7.0
24.07.2026
PATCH
Синхронизация данных: импорт из task.ipd.by
Added
- Направления новая таблица `directions` (external_id, name, description, status, priority, tasks_count, source) + модель `Direction`
- Синхронизация данных `SyncService` импортирует направления, проекты, задачи и шаги из внешнего API (`task.ipd.by/api/export/full`)
- Страница синхронизации `/admin/sync` — интерфейс запуска синхронизации с отображением статистики (направления, проекты, задачи, шаги) и статуса последнего запуска
- AdminSyncController `index()` для отображения страницы, `run()` для AJAX-запуска синхронизации
- Upsert логика при синхронизации существующие записи обновляются, новые создаются, удалённые из источника удаляются локально
- Привязка проектов к направлениям `direction_id` добавлен в таблицу `projects` (nullable FK)
- Метка источника поле `source` ('local'/'synced') в таблице `projects` для разделения локальных и импортированных проектов
Changed
- Версия платформы: 0.6.2 → 0.7.0
- `TaskApiService` — `baseUrl` по умолчанию изменён с `task.ipd.local` на `task.ipd.by`
- `Project` модель — добавлены `direction_id`, `source`, `is_active` в fillable; добавлена связь `direction()` BelongsTo
- `Task` модель — добавлен `external_id` в fillable
- Боковая панель — добавлены ссылки: «Синхронизация» и «Проекты (Админ)»
- `routes/web.php` — добавлены 2 роута: `GET /admin/sync`, `POST /admin/sync/run`
Migration
- `2026_07_24_100001_create_directions_table.php` — таблица направлений
- `2026_07_24_100002_add_direction_id_to_projects_table.php` — direction_id, source, is_active в projects