-- DDL: client_shop_profiles (v2 — uproszczona, bez pól cache)
-- Tabela przechowuje dane charakteryzujące klienta B2B w kontekście konkretnego sklepu.
--
-- Zasada izolacji: jeden rekord = jeden klient × jeden sklep.
-- Sklep X nie widzi ani nie nadpisuje danych zapisanych przez sklep Y.
--
-- Dane globalne klienta (adres, NIP, payment_terms, etc.) pozostają
-- w tabeli `clients` po stronie api i są tylko odczytywane przez panel.
--
-- Dane konfiguracyjne per-sklep (type, mode, credit, score) operator
-- uzupełnia ręcznie z poziomu panelu. Metryki historyczne (zamówienia,
-- obrót, ostatnia dostawa) są obliczane na żądanie przez api i nie są
-- przechowywane w tej tabeli.

CREATE TABLE client_shop_profiles (
    id                  INT UNSIGNED      NOT NULL AUTO_INCREMENT,
    client_id           INT UNSIGNED      NOT NULL,           -- id klienta (referencja do clients w api)
    shop_id             INT UNSIGNED      NOT NULL,           -- id sklepu (referencja do shops w api)

    -- Ręcznie ustawiane przez operatora danego sklepu
    client_type         ENUM('standard','vip','wholesale','restaurant','hotel','other') NULL DEFAULT NULL,
    service_mode        ENUM('pickup','delivery','both') NULL DEFAULT NULL,

    -- Limit kredytowy — zarządzany wyłącznie przez operatora panelu danego sklepu
    credit_enabled      TINYINT(1) NOT NULL DEFAULT 0,
    credit_limit        DECIMAL(10,2) NULL DEFAULT NULL,

    -- Scoring jakości klienta — ręcznie przypisywany przez operatora (A/B/C/D)
    -- Nie jest obliczany automatycznie. Operator ocenia klienta na podstawie
    -- historii zamówień widocznej w drawerze profilu.
    score               ENUM('A','B','C','D') NULL DEFAULT NULL,

    created_at          DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    updated_at          DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

    PRIMARY KEY (id),

    -- Unikalność gwarantuje izolację: każdy sklep ma dokładnie jeden rekord per klient
    UNIQUE KEY uq_client_shop (client_id, shop_id),

    KEY idx_shop_id    (shop_id),
    KEY idx_client_id  (client_id),
    KEY idx_shop_score (shop_id, score)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

