Организации
Организации — сущности верхнего уровня для группировки команд и проектов. Каждая организация имеет собственных участников, роли и настройки.
Модель
Organization
├── name, slug, description, logoUrl
├── members (с ролями: OWNER, ADMIN, MANAGER, MEMBER)
├── teams (команды, привязанные к организации)
└── projects (проекты, привязанные к организации)API Endpoints
| Метод | Путь | Описание |
|---|---|---|
GET | /api/organizations | Список организаций пользователя |
POST | /api/organizations | Создать организацию |
GET | /api/organizations/by-slug/:slug | Детали организации |
PATCH | /api/organizations/by-slug/:slug | Обновить организацию |
DELETE | /api/organizations/by-slug/:slug | Удалить организацию |
GET | /api/organizations/by-slug/:slug/members | Список участников |
POST | /api/organizations/by-slug/:slug/members | Пригласить участника |
PATCH | /api/organizations/by-slug/:slug/members/:userId | Изменить роль участника |
DELETE | /api/organizations/by-slug/:slug/members/:userId | Удалить участника |
GET | /api/organizations/by-slug/:slug/quota | Информация о квоте |
PATCH | /api/organizations/by-slug/:slug/plan | Сменить тариф организации |
POST | /api/organizations/by-slug/:slug/avatar | Загрузить аватар организации |
Маршруты фронтенда
| Маршрут | Представление | Описание |
|---|---|---|
/organizations | OrganizationsListView | Список всех организаций пользователя |
/organizations/:orgId | OrganizationDetailView | Обзор организации |
/organizations/:orgId/settings | OrganizationSettingsView | Настройки организации |
Store фронтенда
typescript
const store = useOrganizationsStore()
const { organizations, currentOrganization } = storeToRefs(store)
await store.fetchOrganizations()
await store.fetchOrganization(orgId)
await store.createOrganization({ name, slug, description })
await store.updateOrganization(orgId, { name, description })
// Участники
await store.addMember(orgId, email, role)
await store.removeMember(orgId, userId)Ключевые детали реализации
- Организации поддерживают пользовательские роли с детальными разрешениями
- Slug используется для URL-дружественных идентификаторов
- Каскадное удаление удаляет все связанные команды, проекты и задачи
- Разрешения уровня организации контролируют доступ к настройкам, управлению участниками и биллингу