Skip to content

US 1.1 #28

@foxxdox

Description

@foxxdox

Jako Użytkownik chcę tworzyć, edytować i usuwać zadania (tytuł, opis, termin, status), aby prowadzić listę rzeczy do zrobienia w jednym miejscu.

Acceptance Criteria

  1. Create (POST /tasks)
    • Gdy wysyłam title (wymagane), opcjonalnie description, due_at, ai_tags, serwer tworzy Task z:
      • status="todo" domyślnie,
      • ustawionymi created_at, updated_at,
      • polami oceny AI początkowo null (ai_priority, ai_category, ai_rationale_short, ai_confidence, ai_last_scored_at),
      • ai_tags=[] jeśli nie podano, albo wartości z request jeśli podano.
    • Walidacja wejścia: title 1–120 znaków; jeśli nie spełnia, odpowiedź 422.
    • Walidacja ai_tags zgodnie z regułami globalnymi (unikalne, max 10, długości) — naruszenie → 422.
    • Odpowiedź 201 zawiera pełny obiekt Task z id.
  2. Update (PATCH /tasks/{id})
    • Mogę zaktualizować dowolny podzbiór pól: title, description, due_at, status.
    • Serwer nie nadpisuje pól nieobecnych w body.
    • Zmiana któregokolwiek pola modyfikowalnego aktualizuje updated_at.
    • Opcjonalnie mogę przekazać expected_updated_at (ISO-8601 datetime). Jeśli wartość nie zgadza się z aktualnym updated_at w DB → 409 (conflict) i brak zmian.
    • Niepoprawne status lub format due_at → 422.
    • Brak Task o id → 404.
  3. Delete (DELETE /tasks/{id})
    • Usunięcie istniejącego Task zwraca 204.
    • Usunięcie nieistniejącego Task zwraca 404.
  4. Read (GET /tasks/{id})
    • Odczyt istniejącego Task zwraca 200 i pełny obiekt Task.
    • Odczyt nieistniejącego Task zwraca 404.
  5. Spójność danych
    • Operacje CRUD nie modyfikują pól oceny AI (ai_priority, ai_category, ai_rationale_short, ai_confidence, ai_last_scored_at).
    • ai_tags mogą być ustawione w Create (POST /tasks) oraz nadpisywane po udanym /tasks/{id}/ai-score.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions