Pokaż spis treści

Tasko

Projekty

Moduł projektów odpowiada za strukturę pracy w firmie: tworzenie projektów, przypisanie do zespołów, statusy, członkostwo, załączniki, archiwizację, usuwanie i kontekst zadań.

Zakres odpowiedzialności

Projekt agreguje zadania, członków, zaproszenia, sekwencję kluczy zadań, opis, priorytet, status i załączniki. Lista projektów pokazuje zakres aktualnego użytkownika, a administrator może pracować również na projektach archiwalnych.

ProjectEndpoints obsługują tworzenie, odczyt, aktualizację, usunięcie, archiwizację, przywrócenie, członków, załączniki i obrazy w opisie.

Scenariusze funkcjonalne

Tworzenie projektu: użytkownik podaje zespół, nazwę, prefiks klucza, daty, status i priorytet. CreateProjectUseCase zapisuje projekt w tenancie, nadaje twórcy rolę managera i przygotowuje prefiks używany później do sekwencji kluczy zadań.

Archiwizacja i przywrócenie: TenantAdmin wywołuje akcję z wiersza projektu. Backend sprawdza policy, zmienia status projektu i wpływa na listy filtrowane po statusach; zadania i członkostwa pozostają powiązane z projektem.

Usunięcie projektu: administrator potwierdza operację destrukcyjną. DeleteProjectUseCase usuwa zależne zadania, członkostwa, zaproszenia i sekwencję kluczy, dlatego zwykły użytkownik nie dostaje tej akcji w standardowym workflow.

Odczyt listy: SearchProjects zwraca tylko projekty dostępne aktualnemu użytkownikowi albo zakres administracyjny dla TenantAdmin. Status archiwalny jest obsługiwany filtrem, a nie osobnym modelem danych.

Przepływ procesu

flowchart TD
  A[Aktor systemu] --> B[Projekty]
  B --> C[Widok funkcji]
  C --> D[Warstwa komunikacji aplikacji]
  D --> E[Warstwa API]
  E --> F[Logika aplikacyjna i walidacja]
  F --> G{Wynik operacji}
  G -->|poprawny| H[Zapis stanu]
  G -->|odmowa lub blad| I[Problem Details albo komunikat walidacyjny]

Reguły techniczne

ProjectAccessGuard ogranicza odczyt i mutacje do członków projektu albo administratorów. Zwykłe listy przekrojowe zwracają tylko projekty dostępne aktualnemu użytkownikowi.

Załączniki i obrazy opisu są obsługiwane jako osobne operacje, aby treść projektu nie przenosiła plików bez kontroli rozmiaru i uprawnień.