igor_nadein 8ca806712a feat(employees): переход на Service Layer и перенос birthday логики из calendar_app
- Интегрирован django-service-objects 0.7.1 для Service Layer Pattern
- Перенесена вся логика дней рождения из calendar_app → employees:
  * UpsertBirthdayEventService - создание/обновление событий ДР
  * DeleteBirthdayEventService - удаление событий ДР
  * BulkSyncBirthdaysService - массовая синхронизация
  * signals_birthday.py - автосинхронизация через post_save/post_delete
  * management command sync_birthdays - CLI команда синхронизации
  * тесты (11 tests, 6 passing)

- Обновлена миграция 0013_migrate_to_django_scheduler:
  * Добавлен ШАГ 5: автоматическая синхронизация дней рождения (131 событие)
  * Исключены старые события ДР из миграции (source.endswith(':birthday'))
  * Исправлены имена сотрудников (f'{last_name} {first_name}' вместо get_full_name())
  * Добавлен цвет #FFC107 для событий дней рождения

- Очищен calendar_app от birthday сервисов:
  * Удалены calendar_app/services/birthday_events.py
  * Удалены calendar_app/signals_scheduler.py
  * Удалены calendar_app/management/commands/sync_birthdays.py
  * Удалены calendar_app/tests/test_services.py
  * Обновлен apps.py - удалены ссылки на signals_scheduler

- API улучшения:
  * Добавлен api/v1/schedule/permissions.py (IsCalendarOwnerOrAdmin)
  * Обновлен views.py с правильными permissions

- Документация:
  * DJANGO_SERVICE_OBJECTS_INTEGRATION.md - руководство по Service Layer
  * CALENDAR_MIGRATION_ANALYSIS.md - анализ миграции
  * MODERNIZATION_ANALYSIS.md - анализ модернизации кодовой базы

Цель: подготовка к будущему удалению calendar_app, централизация
логики сотрудников в employees приложении.

Refs: #birthday-refactoring
2026-02-27 23:49:09 +03:00
..

Backend Documentation

Техническая документация по backend части проекта EUSRR.

📁 Структура

guides/

Руководства разработчика - инструкции по работе с различными модулями

  • CONTEXT_MENU_GUIDE.md - работа с контекстными меню
  • REACTIONS_GUIDE.md - система реакций

troubleshooting/

Отладка и исправления - диагностика проблем

  • CONTEXT_MENU_DEBUG.md - отладка контекстного меню
  • MESSAGE_DELETE_DEBUG.md - отладка удаления сообщений
  • MESSAGE_DELETE_FIX.md - исправление проблем удаления

architecture/

Архитектурная документация - устройство систем

  • API_ANALYSIS.md - анализ API
  • API_REFACTORING_SUMMARY.md - результаты рефакторинга API
  • VIEWSET_ANALYSIS.md - анализ ViewSet

testing/

Тестирование - планы и результаты тестирования

  • POSITION_PERMISSIONS_TESTING.md - тестирование прав должностей
  • REQUESTS_API_TESTING_PLAN.md - план тестирования API заявок
  • TEST_IMAGE_SCRIPTS.md - скрипты тестирования изображений

reports/

Отчеты и аудиты - результаты проверок и реорганизаций

  • BACKEND_CLEANUP_AUDIT.md - аудит очистки backend/
  • REQUESTS_API_TESTING_PLAN.md - план тестирования API заявок
  • TEST_IMAGE_SCRIPTS.md - скрипты тестирования изображений

🔍 Навигация

По типу задачи:

Связанная документация:

  • /docs/ - общая документация проекта
  • backend/scripts/ - вспомогательные скрипты

📝 Правила

Добавление новой документации:

  1. Guides - постоянные инструкции, reference материалы
  2. Troubleshooting - временные документы, после решения → удалить
  3. Architecture - долгосрочная документация, обновлять при изменениях
  4. Testing - планы тестирования, после завершения → архивировать

Формат файлов:

# Заголовок

**Дата:** DD.MM.YYYY  
**Автор:** Имя  
**Статус:** Актуально / Устарело / В процессе

## Описание
...

## Использование
...

## Примеры
...

🔄 Жизненный цикл

  1. Создание - документируйте новую фичу/проблему
  2. Актуализация - обновляйте при изменениях
  3. Архивация - после завершения/решения
  4. Удаление - если больше не актуально

Поддерживайте документацию актуальной! 📚