212 lines
5.6 KiB
Markdown
212 lines
5.6 KiB
Markdown
# Struktura bazy danych shopPRO
|
|
|
|
Plik aktualizowany na bieżąco przy zmianach w kodzie.
|
|
ORM: Medoo (`$mdb`), prefix tabel: `pp_`
|
|
|
|
## pp_shop_products
|
|
Główna tabela produktów.
|
|
|
|
| Kolumna | Opis |
|
|
|---------|------|
|
|
| id | PK |
|
|
| parent_id | FK do produktu nadrzędnego (kombinacje) - NULL dla produktów głównych |
|
|
| price_brutto | Cena brutto |
|
|
| price_brutto_promo | Cena promocyjna brutto |
|
|
| quantity | Stan magazynowy |
|
|
| status | Status: 1 = aktywny, 0 = nieaktywny |
|
|
| archive | Archiwum: 1 = zarchiwizowany, 0 = aktywny |
|
|
| promoted | Czy promowany |
|
|
| vat | Stawka VAT |
|
|
| ean | Kod EAN |
|
|
| sku | Kod SKU |
|
|
| baselinker_product_name | Nazwa produktu w Baselinker |
|
|
| apilo_product_name | Nazwa produktu w Apilo |
|
|
|
|
**Używane w:** `Domain\Product\ProductRepository`, `admin\factory\ShopProduct`
|
|
|
|
## pp_shop_products_langs
|
|
Tłumaczenia produktów (per język).
|
|
|
|
| Kolumna | Opis |
|
|
|---------|------|
|
|
| id | PK |
|
|
| product_id | FK do pp_shop_products |
|
|
| lang_id | ID języka (np. 'pl') |
|
|
| name | Nazwa produktu |
|
|
|
|
**Używane w:** `Domain\Product\ProductRepository::getName()`
|
|
|
|
## pp_shop_products_images
|
|
Zdjęcia produktów.
|
|
|
|
| Kolumna | Opis |
|
|
|---------|------|
|
|
| id | PK |
|
|
| product_id | FK do pp_shop_products |
|
|
| src | Ścieżka do pliku |
|
|
| alt | Tekst alternatywny |
|
|
|
|
## pp_shop_products_categories
|
|
Przypisanie produktów do kategorii.
|
|
|
|
| Kolumna | Opis |
|
|
|---------|------|
|
|
| product_id | FK do pp_shop_products |
|
|
|
|
**Używane w:** `admin\factory\ShopProduct::product_delete()`
|
|
|
|
## pp_banners
|
|
Banery.
|
|
|
|
| Kolumna | Opis |
|
|
|---------|------|
|
|
| id | PK |
|
|
| name | Nazwa banera |
|
|
| status | 0/1 |
|
|
| date_start | Data rozpoczęcia |
|
|
| date_end | Data zakończenia |
|
|
| home_page | Czy na stronie głównej 0/1 |
|
|
|
|
**Używane w:** `Domain\Banner\BannerRepository`
|
|
|
|
## pp_banners_langs
|
|
Tłumaczenia banerów.
|
|
|
|
| Kolumna | Opis |
|
|
|---------|------|
|
|
| id | PK |
|
|
| id_banner | FK do pp_banners |
|
|
| id_lang | ID języka |
|
|
| src | Ścieżka do grafiki |
|
|
| url | URL docelowy |
|
|
| html | Kod HTML |
|
|
| text | Tekst |
|
|
|
|
**Używane w:** `Domain\Banner\BannerRepository`
|
|
|
|
## pp_articles
|
|
Artykuły.
|
|
|
|
| Kolumna | Opis |
|
|
|---------|------|
|
|
| id | PK |
|
|
| status | -1 = archiwum, 0 = nieaktywny, 1 = aktywny |
|
|
|
|
**Używane w:** `admin\controls\ArticlesArchive`, `Domain\Article\ArticleRepository::find()`
|
|
|
|
## pp_articles_pages
|
|
Strony artykułów.
|
|
|
|
| Kolumna | Opis |
|
|
|---------|------|
|
|
| article_id | FK do pp_articles |
|
|
| page_id | FK do strony (pp_pages) |
|
|
| o | Kolejność |
|
|
|
|
**Używane w:** `Domain\Article\ArticleRepository::find()`, `Domain\Article\ArticleRepository::deleteNonassignedImages()`
|
|
|
|
## pp_articles_langs
|
|
Tłumaczenia artykułów.
|
|
|
|
| Kolumna | Opis |
|
|
|---------|------|
|
|
| article_id | FK do pp_articles |
|
|
| lang_id | ID języka (np. 'pl') |
|
|
| title | Tytuł artykułu |
|
|
| seo_link | Link SEO artykułu |
|
|
|
|
**Używane w:** `Domain\Article\ArticleRepository::find()`, `Domain\Article\ArticleRepository::deleteNonassignedFiles()`
|
|
|
|
## pp_articles_images
|
|
Zdjęcia artykułów.
|
|
|
|
| Kolumna | Opis |
|
|
|---------|------|
|
|
| article_id | FK do pp_articles |
|
|
| src | Ścieżka do pliku |
|
|
| o | Kolejność |
|
|
| id | PK (używane też do sortowania DESC) |
|
|
|
|
**Używane w:** `Domain\Article\ArticleRepository::find()`
|
|
|
|
## pp_articles_files
|
|
Pliki artykułów.
|
|
|
|
| Kolumna | Opis |
|
|
|---------|------|
|
|
| article_id | FK do pp_articles |
|
|
| src | Ścieżka do pliku |
|
|
|
|
**Używane w:** `Domain\Article\ArticleRepository::find()`
|
|
|
|
## pp_units
|
|
Jednostki/slowniki (np. jednostki produktu).
|
|
|
|
| Kolumna | Opis |
|
|
|---------|------|
|
|
| id | PK |
|
|
|
|
**Używane w:** `Domain\Dictionaries\DictionariesRepository`, `admin\controls\ShopProduct`
|
|
|
|
## pp_units_langs
|
|
Tlumaczenia jednostek (per jezyk).
|
|
|
|
| Kolumna | Opis |
|
|
|---------|------|
|
|
| id | PK |
|
|
| unit_id | FK do pp_units |
|
|
| lang_id | ID jezyka (np. 'pl') |
|
|
| text | Nazwa jednostki |
|
|
|
|
**Używane w:** `Domain\Dictionaries\DictionariesRepository`
|
|
|
|
## pp_users
|
|
Uzytkownicy panelu administratora.
|
|
|
|
| Kolumna | Opis |
|
|
|---------|------|
|
|
| id | PK |
|
|
| login | Login / e-mail uzytkownika |
|
|
| password | Hash hasla (legacy: md5) |
|
|
| status | Status konta: 1 = aktywny, 0 = zablokowany |
|
|
| admin | Flaga dostepu do panelu admin |
|
|
| error_logged_count | Licznik nieudanych logowan |
|
|
| last_logged | Data ostatniego poprawnego logowania |
|
|
| last_error_logged | Data ostatniej nieudanej proby logowania |
|
|
| twofa_enabled | Czy wlaczone 2FA (0/1) |
|
|
| twofa_email | E-mail do wysylki kodu 2FA |
|
|
| twofa_code_hash | Hash aktualnego kodu 2FA |
|
|
| twofa_expires_at | Data waznosci kodu 2FA |
|
|
| twofa_sent_at | Data ostatniej wysylki kodu 2FA |
|
|
| twofa_failed_attempts | Liczba nieudanych prob 2FA |
|
|
|
|
**Uzywane w:** `Domain\User\UserRepository`, `admin\Controllers\UsersController`, `admin\factory\Users`
|
|
|
|
**Aktualizacja 2026-02-12:** uzycia `pp_users` sa prowadzone przez `Domain\\User\\UserRepository` (legacy `admin\\factory\\Users` usunieto).
|
|
|
|
## pp_langs
|
|
Jezyki panelu i frontendu.
|
|
|
|
| Kolumna | Opis |
|
|
|---------|------|
|
|
| id | PK (2-literowe ID jezyka, np. pl, en) |
|
|
| name | Nazwa jezyka |
|
|
| status | 1 = aktywny, 0 = nieaktywny |
|
|
| start | 1 = domyslny jezyk |
|
|
| o | Kolejnosc |
|
|
|
|
**Uzywane w:** `Domain\\Languages\\LanguagesRepository`, `admin\\Controllers\\LanguagesController`, `admin\\factory\\Languages`, `front\\factory\\Languages`
|
|
|
|
## pp_langs_translations
|
|
Slownik tlumaczen panelu/frontendu.
|
|
|
|
| Kolumna | Opis |
|
|
|---------|------|
|
|
| id | PK |
|
|
| text | Klucz/tekst bazowy |
|
|
| <lang_id> | Kolumny dynamiczne per jezyk (np. pl, en) |
|
|
|
|
**Uzywane w:** `Domain\\Languages\\LanguagesRepository`, `admin\\Controllers\\LanguagesController`, `front\\factory\\Languages`
|
|
|
|
**Aktualizacja 2026-02-12:** modul jezykow i tlumaczen (`pp_langs`, `pp_langs_translations`) obslugiwany przez `Domain\\Languages\\LanguagesRepository`.
|