Przejdź do głównej zawartości

Warstwa dostępu do danych (DAL)

DAL jest jedynym punktem kontaktu między aplikacją a bazą danych. Wszystkie zapytania do bazy danych są tutaj hermetyzowane.

Lokalizacja

src/lib/dal/

Zasady projektowe

  1. Brak bezpośrednich importów Drizzle w trasach ani komponentach — zawsze korzystaj z funkcji DAL
  2. Funkcje zwracają zwykłe obiekty — konstruktory zapytań Drizzle nie wyciekają do kodu aplikacji
  3. Walidacja danych wejściowych odbywa się na poziomie trasy API (poprzez schematy Zod), a nie w DAL
  4. Transakcje są obsługiwane wewnątrz funkcji DAL, gdy wiele zapisów musi być atomowych

Przykład użycia

// ✅ Poprawnie — import z DAL
import { getOrderById, updateOrderStatus } from '@/lib/dal/orders';

// ❌ Źle — nigdy tego nie rób w trasach/komponentach
import { db } from '@/lib/db';
import { orders } from '@/lib/db/schema';

Dostępne moduły

ModułOdpowiedzialności
organisations.tsCRUD dla organizacji, wyszukiwanie, ustawienia, portfolio, członkowie
orders.tsCykl życia zamówienia, zmiany statusu, śledzenie płatności
offers.tsTworzenie ofert, wycofywanie, akceptacja
requests.tsTworzenie zapytań o torty, dopasowywanie, wygaszanie
users.tsProfile użytkowników, rekordy uwierzytelniania
payments.tsRekordy płatności, obliczanie zarobków, integracja ze Stripe
messages.tsWątki wiadomości, śledzenie odczytów
reviews.tsTworzenie i pobieranie opinii