Skip to content

[Refactor] Замена teamSlug на teamId #72

@AlexandrNel

Description

@AlexandrNel

Контекст

В проекте используется идентификатор команды в двух форматах: teamSlug и teamId. Использование slug в API-контрактах, схемах валидации и клиентской логике приводит к дублированию подходов, усложняет поддержку и создает дополнительные зависимости от человекочитаемых идентификаторов.

Необходимо завершить переход на использование teamId как единственного идентификатора команды и удалить оставшиеся упоминания teamSlug из проекта.


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

  • Локация логики: src/entities/team/**/*.ts, src/entities/projects/**/*.ts, src/features/team/**/*.ts, src/features/projects/**/*.ts, src/entities/user/**/*.ts, src/pages/team/**/*.ts, src/pages/project/**/*.ts, src/pages/profile/**/*.ts, src/widgets/app-sidebar/**/*.ts, src/widgets/quick-create/ui/QuickCreate.ts, src/app/layouts/SidebarLayout.ts
  • Инструменты: TypeScript, Zod, React, существующая архитектура проекта
  • Логика работы:
    1. Заменить использование slug, teamSlug на teamId во всех слоях приложения.
    2. Обновить схемы валидации и типы данных в соответствии с новыми контрактами.
    3. Удалить устаревшие поля, типы и зависимости, связанные со slug.
    4. Сохранить существующее поведение приложения без изменения бизнес-логики

Основные изменения

  • Обновить пользовательские схемы:
    • UserActivityResponse
    • ProfileUpdateBody
  • Удалить teamSlug из API-контрактов и клиентской логики.
  • Перевести все обращения к командам на использование teamId.

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

  • Все упоминания slug и teamSlug удалены из проекта.
  • Для идентификации команд используется только teamId.
  • Обновлены схемы UserActivityResponse и ProfileUpdateBody.
  • Отсутствуют ошибки типизации после рефакторинга.
  • Все существующие сценарии работы с командами продолжают работать корректно.
  • Проект успешно проходит lint, type-check и сборку.

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

  • Совместимость: не изменять пользовательское поведение приложения.
  • Безопасность: сохранить существующую валидацию входных и выходных данных.
  • Рефакторинг: изменения должны касаться только перехода с teamSlug на teamId и сопутствующих обновлений схем.
  • Тестирование: проверить создание, получение и обновление данных команд после миграции на новый идентификатор.

Metadata

Metadata

Assignees

Type

No fields configured for Task.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions