Skip to content

[Feature] Реализация CRUD для досок задач и поддержка режимов отображения (View Modes) #63

@soorq

Description

@soorq

Контекст

Текущая архитектура таск-трекера требует реализации базового функционала управления досками (Boards) — ключевого элемента группировки задач. Помимо стандартных операций создания и редактирования, необходимо заложить фундамент для гибкого отображения данных. Это позволит пользователям переключаться между различными представлениями (например, Kanban, List, Gantt) на уровне метаданных доски, что критично для UX и будущей масштабируемости интерфейса.


Технические требования

  • Локация логики: services/board-service, api/v1/boards, models/board.model.ts
  • Инструменты: PostgreSQL (или текущая СУБД), TypeORM/Prisma, FastAPI/NestJS (согласно стеку проекта).
  • Логика работы:
    1. Реализовать стандартный набор эндпоинтов: GET /boards, GET /boards/{id}, POST /boards, PATCH /boards/{id}, DELETE /boards/{id}.
    2. В схему БД добавить поле view_mode (Enum: kanban, list, calendar, gantt). Значение по умолчанию: kanban.
    3. При создании доски валидировать входные данные: title (обязательно), description (опционально), owner_id.
    4. При обновлении view_mode обеспечивать консистентность данных и немедленное отражение изменений в API-ответах.

Цель и критерии приемки (Definition of Done)

  • База: Создана миграция для таблицы boards с полями id, title, description, view_mode, created_at, updated_at.
  • Функционал: Реализован контроллер и сервис, обеспечивающие полный цикл CRUD.
  • Функционал: Эндпоинты поддерживают фильтрацию и смену режима отображения через PATCH.
  • Лимиты/SLA: Время отклика на GET запросы при наличии индексов не должно превышать 100мс для коллекции до 1000 элементов.
  • Интеграция: Обновлена Swagger/OpenAPI документация; добавлены DTO для валидации входящих запросов.

Важные указания

  • Производительность: Добавить индекс на owner_id и created_at для оптимизации выборок.
  • Ошибки: Возвращать 404 Not Found, если доска не существует, и 422 Unprocessable Entity при передаче невалидного view_mode.
  • Безопасность: Реализовать проверку прав доступа (Ownership/ACL) — редактировать и удалять доску может только её создатель или администратор.

Metadata

Metadata

Labels

api-designEndpoint and CRUD'sdocumentationImprovements or additions to documentationenhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions