[Intum](https://intum.fr/aide.md) / [Organizacja](https://intum.fr/aide/organizacja.md)

# [Zespół](https://intum.fr/aide/organizacja/zespol.md) | [API](#api)

## Co to jest zespół

Zespół to podstawowa jednostka organizacyjna w module Zadania. Łączy [użytkowników](uzytkownik), [projekty](projekt) i zadania w jedną strukturę. Każdy zespół może mieć wyznaczonego odpowiedzialnego, własne statusy zadań i logo.

## Do czego służy zespół

- **Zarządzanie zadaniami** - zadania należą do zespołu, członkowie widzą zadania swojego zespołu
- **Projekty** - [projekty](projekt) są tworzone w ramach zespołu
- **Ewidencja czasu pracy (WorkInfo)** - zespół agreguje wpisy czasu pracy członków
- **Raporty czasu pracy** - raporty WorkInfo generowane per zespół
- **Urlopy** - urlopy pracowników są powiązane z zespołem
- **Skrzynki pocztowe** - zespół może być odpowiedzialny za skrzynki i foldery mailowe
- **Formularze** - formularze mogą należeć do zespołu
- **Statusy zadań** - zespół może mieć własny zestaw statusów zadań

## Tworzenie zespołu

1. Przejdź do **Zadania** → **Zespoły**
2. Kliknij **+** (Nowy zespół)
3. Wypełnij:
   - **Nazwa zespołu** - wymagana
   - **Opis** - opcjonalny opis w Markdown
   - **Osoba odpowiedzialna** - domyślny odpowiedzialny za nowe zadania
   - **Członkowie zespołu** - wybierz [użytkowników](uzytkownik)
   - **Logo zespołu** - opcjonalny obrazek
   - **Statusy** - wybierz statusy zadań dostępne w zespole
   - **Priorytet** - kolejność wyświetlania
4. Zapisz

## Zespół główny

Jedno konto może mieć **jeden zespół główny** (primary). Jest to domyślny zespół dla nowych zadań i użytkowników. Każdy [użytkownik](uzytkownik) może mieć przypisany główny zespół w swoim profilu.

## Ważne informacje

- Zespół z zadaniami lub projektami **nie może być usunięty** - trzeba najpierw przenieść zadania
- Zespół można dezaktywować (oznaczony ikoną ⌛)
- Zmiana nazwy zespołu automatycznie aktualizuje cache w powiązanych zadaniach
- Zespół może być odpowiedzialny za zadanie (jako alternatywa dla [użytkownika](uzytkownik) lub [grupy](grupa))

---

## API

### Ogólne API

# Intum API

Dokumentacja API platformy [Intum](https://intum.pl) - system operacyjny firmy.

## Host

Host jest zawsze taki sam jak adres konta: `xxxx.intum.com` lub `xxx.intum.pl` (w zależności od ustawień konta)

## Autoryzacja

Wszystkie requesty API wymagają `api_token`:
- header: `Authorization: Bearer TOKEN`

Token możesz wygenerować w **Ustawienia Konta** → **Tokeny API**

## Endpointy

| Metoda | Ścieżka | Opis |
|--------|---------|------|
| GET | `/organize/teams.json` | Lista zespołów |
| GET | `/organize/teams/:id.json` | Pojedynczy zespół |
| POST | `/organize/teams.json` | Utworzenie zespołu |
| PATCH | `/organize/teams/:id.json` | Aktualizacja zespołu |
| DELETE | `/organize/teams/:id.json` | Usunięcie zespołu |

**Autoryzacja:** `Authorization: Bearer TOKEN` (uprawnienie: **organize**)

## Pola zespołu

| Pole | Typ | Wymagane | Opis |
|------|-----|----------|------|
| `name` | string | tak | Nazwa zespołu |
| `description` | string | nie | Opis zespołu (Markdown) |
| `responsible_id` | integer | nie | ID domyślnego odpowiedzialnego |
| `priority` | number | nie | Priorytet wyświetlania |
| `active` | boolean | nie | Czy aktywny |
| `primary` | boolean | nie | Czy zespół główny |
| `code` | string | nie | Kod zespołu |
| `user_setting_ids` | array | nie | ID członków zespołu |
| `status_ids` | array | nie | ID statusów zadań dostępnych w zespole |

## Tworzenie zespołu

```
POST /organize/teams.json
Authorization: Bearer TOKEN
```

```json
{
  "team": {
    "name": "Frontend",
    "description": "Zespół frontendowy",
    "responsible_id": 5,
    "user_setting_ids": [1, 2, 3]
  }
}
```

## Aktualizacja zespołu

```
PATCH /organize/teams/:id.json
```

Wysyłasz tylko zmieniane pola.

```json
{
  "team": {
    "name": "Frontend v2",
    "user_setting_ids": [1, 2, 3, 4]
  }
}
```

## Dodatkowe endpointy

| Metoda | Ścieżka | Opis |
|--------|---------|------|
| GET | `/organize/teams/your.json` | Zespoły bieżącego użytkownika |
| GET | `/organize/teams/find.json?name=Frontend` | Wyszukiwanie zespołu po nazwie |

## Błędy (422)

```json
{"name": ["nie może być puste"]}
```