Wszystkie trasy API znajdują się w src/app/api/. Uwierzytelnianie jest obsługiwane poprzez sesje JWT Auth.js.
API Sprzedającego
Członkostwo i panel
| Metoda | Endpoint | Opis |
|---|
GET | /api/seller/membership | Pobierz status członkostwa bieżącego użytkownika w organizacji |
GET | /api/seller/dashboard | Pobierz statystyki panelu (aktywne zamówienia, oczekujące zapytania, zarobki, ocena) |
GET | /api/seller/requests | Pobierz zapytania o torty pasujące do możliwości organizacji sprzedającego |
GET | /api/seller/orders | Pobierz zamówienia sprzedającego (zapytanie: ?filter=all|active|completed|cancelled) |
Profil
| Metoda | Endpoint | Opis |
|---|
GET | /api/profile | Pobierz profil bieżącego użytkownika |
PATCH | /api/profile | Zaktualizuj profil (imię, telefon, imageUrl) |
API Organizacji
| Metoda | Endpoint | Opis |
|---|
POST | /api/organisations | Utwórz nową organizację |
GET | /api/organisations/{id} | Pobierz szczegóły organizacji |
GET | /api/organisations/{id}/full | Pobierz organizację z liczbą portfolio i statusem konfiguracji |
PATCH | /api/organisations/{id} | Zaktualizuj ustawienia organizacji lub przełącz status aktywności |
GET | /api/organisations/search | Wyszukaj organizacje (zapytanie: ?q=searchTerm) |
Portfolio
| Metoda | Endpoint | Opis |
|---|
GET | /api/organisations/{id}/portfolio | Lista elementów portfolio |
POST | /api/organisations/{id}/portfolio | Dodaj element portfolio (imageUrl, caption) |
PUT | /api/organisations/{id}/portfolio | Zmień kolejność elementów portfolio |
DELETE | /api/organisations/{id}/portfolio/{itemId} | Usuń element portfolio |
Członkowie
| Metoda | Endpoint | Opis |
|---|
GET | /api/organisations/{id}/members | Lista członków organizacji |
POST | /api/organisations/{id}/members | Poproś o dołączenie do organizacji |
PATCH | /api/organisations/{id}/members/{userId} | Akcja członka: approve, reject, remove, transfer_admin |
API Ofert
| Metoda | Endpoint | Opis |
|---|
POST | /api/offers | Utwórz ofertę dla zapytania |
PATCH | /api/offers/{id}/withdraw | Wycofaj oczekującą ofertę |
API Zamówień
| Metoda | Endpoint | Opis |
|---|
PATCH | /api/orders/{id}/status | Zaktualizuj status zamówienia (ready, delivered — in_progress ustawia automatycznie cron start-work) |
PATCH | /api/orders/{id}/mark-paid-offline | Oznacz dopłatę jako zapłaconą offline (body: { method: 'cash' | 'card_at_pickup' }) |
PATCH | /api/orders/{id}/cancel | Anuluj zamówienie (body: { reason: string }) |
API Płatności
| Metoda | Endpoint | Opis |
|---|
GET | /api/payments/org/{id}/earnings | Pobierz podsumowanie zarobków (ten miesiąc, ostatni miesiąc, ogółem, oczekujące) |
GET | /api/payments/org/{id}/history | Pobierz historię płatności (zapytanie: ?type=all|deposit|balance|refund) |
POST | /api/payments/stripe-connect/onboard | Rozpocznij onboarding Stripe Connect (zwraca URL przekierowania) |
API Wiadomości
| Metoda | Endpoint | Opis |
|---|
GET | /api/messages/order/{orderId} | Pobierz wiadomości dla zamówienia |
GET | /api/messages/offer/{offerId} | Pobierz wiadomości dla oferty |
POST | /api/messages | Wyślij wiadomość |
API Opinii
| Metoda | Endpoint | Opis |
|---|
POST | /api/reviews | Utwórz opinię (ocena + komentarz) |
API Obrazów
| Metoda | Endpoint | Opis |
|---|
POST | /api/images/generate-seller | Wygeneruj obrazy tortów AI dla ofert sprzedającego |
API Gości
| Metoda | Endpoint | Opis |
|---|
POST | /api/guest/convert | Przekształć sesję gościa w pełne konto użytkownika |
API Administratora
| Metoda | Endpoint | Opis |
|---|
GET | /api/admin/stats | Pobierz statystyki całej platformy |
GET | /api/admin/orders | Pobierz wszystkie zamówienia (z filtrami) |
Endpointy Cron
Te endpointy powinny być wywoływane okresowo przez zewnętrzny harmonogram:
| Metoda | Endpoint | Częstotliwość | Opis |
|---|
POST | /api/requests/expire | Co kilka minut | Wygaszaj aktywne zapytania starsze niż 24 godziny |
POST | /api/offers/expire-holds | Co kilka minut | Usuwaj wygasłe 10-minutowe blokady |
POST | /api/orders/start-work | Co godzinę | Przełącz zamówienia deposit_paid na in_progress 3 dni przed datą tortu; powiadom kupującego i sprzedającego |
POST | /api/orders/escrow-release | Co kilka minut | Automatyczne zwolnienie depozytu po 3 dniach |