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
No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions