Files
shopPRO/DATABASE_STRUCTURE.md

9.1 KiB

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\Controllers\ArticlesArchiveController, Domain\Article\ArticleRepository::find(), Domain\Article\ArticleRepository::listArchivedForAdmin()

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.

pp_layouts

Szablony layoutow (HTML/CSS/JS + flagi domyslne).

Kolumna Opis
id PK
name Nazwa szablonu
html Kod HTML
css Kod CSS
js Kod JS
m_html Kod HTML mobilny
m_css Kod CSS mobilny
m_js Kod JS mobilny
status Domyslny layout stron (0/1)
categories_default Domyslny layout kategorii (0/1)

Uzywane w: Domain\\Layouts\\LayoutsRepository, admin\\Controllers\\LayoutsController, front\\factory\\Layouts

pp_layouts_pages

Przypisanie layoutow do stron CMS.

Kolumna Opis
layout_id FK do pp_layouts
page_id FK do pp_pages

Uzywane w: Domain\\Layouts\\LayoutsRepository, front\\factory\\Layouts

pp_layouts_categories

Przypisanie layoutow do kategorii sklepu.

Kolumna Opis
layout_id FK do pp_layouts
category_id FK do pp_shop_categories

Uzywane w: Domain\\Layouts\\LayoutsRepository, front\\factory\\Layouts

Aktualizacja 2026-02-12 (ver. 0.256): modul /admin/layouts korzysta z Domain\\Layouts\\LayoutsRepository (DI kontroler + fasada legacy).

pp_newsletter

Adresy e-mail zapisane do newslettera.

Kolumna Opis
id PK
email Adres e-mail subskrybenta
hash Hash potwierdzenia/wypisu
status 1 = potwierdzony, 0 = oczekujacy

Uzywane w: Domain\\Newsletter\\NewsletterRepository, front\\factory\\Newsletter

pp_newsletter_send

Kolejka wysylki newslettera.

Kolumna Opis
id PK
email Adres docelowy
dates Zakres dat artykulow (tekst)
id_template FK do pp_newsletter_templates (NULL gdy brak szablonu)

Uzywane w: Domain\\Newsletter\\NewsletterRepository, front\\factory\\Newsletter::newsletter_send()

pp_newsletter_templates

Szablony tresci e-maili (uzytkownik + administracyjne/systemowe).

Kolumna Opis
id PK
name Nazwa/klucz szablonu
text Tresc HTML szablonu
is_admin 1 = szablon administracyjny/systemowy, 0 = szablon uzytkownika

Uzywane w: Domain\\Newsletter\\NewsletterRepository, admin\\Controllers\\NewsletterController, front\\factory\\Newsletter

Aktualizacja 2026-02-12 (ver. 0.257): modul /admin/newsletter korzysta z Domain\\Newsletter\\NewsletterRepository (DI kontroler + fasada legacy).

pp_scontainers

Kontenery statyczne (modul /admin/scontainers).

Kolumna Opis
id PK
status 1 = aktywny, 0 = nieaktywny
show_title 1 = pokaz tytul, 0 = ukryj tytul

Uzywane w: Domain\Scontainers\ScontainersRepository, admin\Controllers\ScontainersController, front\factory\Scontainers

pp_scontainers_langs

Tlumaczenia kontenerow statycznych (per jezyk).

Kolumna Opis
id PK
container_id FK do pp_scontainers
lang_id ID jezyka (np. pl, en)
title Tytul kontenera
text Tresc HTML kontenera

Uzywane w: Domain\Scontainers\ScontainersRepository, front\factory\Scontainers

Aktualizacja 2026-02-12 (ver. 0.259): modul /admin/scontainers korzysta z Domain\Scontainers\ScontainersRepository (DI kontroler + fasada legacy).

Aktualizacja 2026-02-12 (ver. 0.260): modul /admin/articles_archive korzysta z Domain\Article\ArticleRepository (listArchivedForAdmin, restore, deletePermanently) przez admin\Controllers\ArticlesArchiveController.