Files
orderPRO/.paul/docs/DB_SCHEMA.md
2026-04-19 00:10:58 +02:00

6.6 KiB

DB_SCHEMA

Zakres i zrodlo prawdy

  • Schemat wynika z migracji SQL w database/migrations.
  • Dokument odzwierciedla stan repo na 2026-04-18 (migracje do 20260413_000100).

Ostatnie istotne migracje

  • 20260413_000100_ensure_orders_delivery_payment_columns.sql
  • 20260412_000099_add_requires_photo_to_project_mappings.sql
  • 20260412_000098_rename_external_status_id_to_status_code.sql
  • 20260412_000097_add_project_generation.sql
  • 20260410_000081_add_remember_token_to_users.sql
  • 20260408_000090_backfill_delivery_price.sql
  • 20260407_000083_allegro_pull_status_mappings.sql
  • 20260407_000080_backfill_personalization_message.sql
  • 20260407_000079_pull_status_mappings.sql
  • 20260407_000078_reverse_status_mapping_keys.sql

Kompensacyjne migracje ensure_

  • 000038 - naprawa brakujacej tabeli order_status_mappings.
  • 000039 - uzupelnienie brakujacych kolumn fetch w integrations.
  • 000040 - seed/naprawa harmonogramu shoppro_orders_import.
  • 000041 - seed/naprawa harmonogramu shoppro_order_status_sync + direction.
  • 000042 - seed/naprawa shoppro_payment_status_sync + kolumny payment sync.
  • 000100 - kompensacja brakujacych kolumn orders.payment_method i orders.delivery_method.

Kluczowe tabele

users

  • Uzytkownicy panelu.
  • Wazne kolumny:
  • id, email (UNIQUE), password_hash, remember_token (od 000081), is_active, created_at, updated_at.

orders

  • Glowna tabela zamowien (model neutralny wzgledem zrodla).
  • Wazne kolumny:
  • id, source, integration_id, source_order_id, internal_order_number (UNIQUE),
  • status_code (rename z external_status_id w 000098),
  • payment_status, total_paid, payment_method,
  • delivery_method, delivery_price (dodane/backfill 000090),
  • daty zrodlowe i techniczne, payload_json, preferences_json.
  • Wydajnosc:
  • indeksy na source, status_code, ordered_at, (source, status_code).

order_items

  • Pozycje zamowienia.
  • Wazne kolumny:
  • order_id, source_item_id, name, quantity, price_gross, media_url, payload_json,
  • personalization (000075, backfill 000080),
  • project_generated, project_generated_at (000097).

order_payments

  • Platnosci zamowien (import i reczne).
  • Wazne kolumny:
  • order_id, source_payment_id, payment_type_id, payment_date, amount, currency, payload_json.
  • Klucz unikalny:
  • (order_id, source_payment_id).

order_status_history

  • Historia zmian statusow zamowienia.
  • Wazne kolumny:
  • order_id, from_status_id, to_status_id, change_source, changed_by, changed_at.

order_activity_log

  • Uniwersalny log aktywnosci (status_change, payment, shipment, import, itd.).
  • Wazne kolumny:
  • order_id, event_type, summary, details_json, actor_type, actor_name, created_at.

order_status_groups i order_statuses

  • Slownik statusow biznesowych i grup statusow.
  • Relacja:
  • order_statuses.group_id -> order_status_groups.id (ON DELETE CASCADE).

integrations

  • Bazowa tabela instancji integracji.
  • Wazne kolumny:
  • type, name, base_url, api_key_encrypted, is_active,
  • orders_fetch_enabled, orders_fetch_start_date,
  • order_status_sync_direction, payment_sync_status_codes_json,
  • pola diagnostyczne testu polaczenia.

integration_order_sync_state

  • Kursor synchronizacji per integracja.
  • Wazne kolumny:
  • integration_id (PK), last_synced_order_updated_at, last_synced_source_order_id,
  • last_success_at, last_status_pushed_at, last_error.

order_status_mappings

  • Mapowania push statusow dla shopPRO.
  • Po 000078 klucz unikalny:
  • (integration_id, orderpro_status_code).
  • Dodatkowe indeksy:
  • (integration_id, shoppro_status_code).

order_status_pull_mappings

  • Dedykowane mapowanie pull shopPRO -> orderPRO (000079).
  • Klucz unikalny:
  • (integration_id, shoppro_status_code).

allegro_order_status_mappings

  • Mapowania statusow Allegro dla kierunku push.
  • Po 000078 klucz unikalny:
  • orderpro_status_code.
  • Indeks lookup:
  • allegro_status_code.

allegro_order_status_pull_mappings

  • Dedykowane mapowanie pull Allegro -> orderPRO (000083).
  • Klucz unikalny:
  • allegro_status_code.

allegro_integration_settings

  • OAuth i tokeny Allegro per srodowisko/integracja.
  • Wazne kolumny:
  • integration_id (UNIQUE FK), environment, client_id, client_secret_encrypted,
  • redirect_uri, access_token_encrypted, refresh_token_encrypted, token_expires_at,
  • orders_fetch_enabled, orders_fetch_start_date.

apaczka_integration_settings i inpost_integration_settings

  • Ustawienia providerow wysylek, powiazane 1:1 z integrations przez integration_id.

company_settings

  • Dane firmy/nadawcy, parametry domyslnych paczek i pola ksiegowe.

receipt_configs, receipts, receipt_number_counters

  • Konfiguracja numeracji, wystawione paragony i liczniki numerow.

email_mailboxes, email_templates, email_logs

  • Skrzynki SMTP, szablony i log wysylki.

automation_rules, automation_conditions, automation_actions, automation_execution_logs

  • Definicje regul i historia ich wykonan.

shipment_packages

  • Rekordy przesylek i etykiet.
  • Wazne kolumny trackingowe (od 000060):
  • delivery_status, delivery_status_raw, delivery_status_updated_at.

delivery_status_mappings

  • Mapowanie statusow przewoznikow na status biznesowy (provider + raw_status UNIQUE).

carrier_delivery_method_mappings

  • Wspolne mapowanie form dostawy na providerow wysylki.

shipment_presets

  • Presety nadania wykorzystywane przez API presetow przesylek.

print_api_keys

  • Klucze API dla klienta desktop druku.
  • Kolumny:
  • key_hash (UNIQUE), key_prefix, is_active, last_used_at.

print_jobs

  • Kolejka wydruku etykiet.
  • Kolumny:
  • order_id, package_id, label_path, status, created_by, created_at, completed_at.

project_mappings

  • Mapowanie produktu na skrypt generujacy projekt (000097).
  • Wazne kolumny:
  • product_name_pattern, script_name, output_dir, requires_photo (000099), is_active.

Harmonogram cron (cron_schedules)

  • Wykorzystywane typy jobow:
  • allegro_token_refresh
  • allegro_orders_import
  • allegro_status_sync
  • shoppro_orders_import
  • shoppro_order_status_sync
  • shoppro_payment_status_sync
  • shipment_tracking_sync
  • automation_history_cleanup
  • order_status_aged

Notatki kompatybilnosci

  • Migracje ensure_ i 000100 sa idempotentne i kompensuja roznice miedzy srodowiskami.
  • Rename orders.external_status_id -> status_code wymaga, aby nowe query i dokumentacja uzywaly tylko status_code.
  • delivery_price jest backfillowane z JSON payloadow importu (Allegro/shopPRO).