-- ===========================================================================
-- Migration: Create supplier_raw_material_category
-- Date: 2026-05-05
-- Context: Recipe Calculator — Raw Materials module (v1)
-- ===========================================================================
-- Słownik kategorii surowców per dostawca.
-- Każdy dostawca zarządza własnymi kategoriami niezależnie od innych.
--
-- Izolacja: każda kategoria jest przypisana do konkretnego material_supplier.id.
-- Zasada: dostawca nie widzi ani nie modyfikuje kategorii innego dostawcy.
-- ===========================================================================

CREATE TABLE IF NOT EXISTS `supplier_raw_material_category` (
    `id`            INT UNSIGNED    NOT NULL AUTO_INCREMENT,
    `supplier_id`   INT(11)         NOT NULL COMMENT 'FK → material_supplier.id',
    `name`          VARCHAR(255)    NOT NULL COMMENT 'Nazwa kategorii surowca',
    `created_at`    DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP,

    PRIMARY KEY (`id`),

    -- Izolacja per dostawca
    KEY `idx_srmc_supplier` (`supplier_id`),

    -- Unikalność nazwy kategorii w obrębie jednego dostawcy
    UNIQUE KEY `uq_srmc_supplier_name` (`supplier_id`, `name`),

    CONSTRAINT `fk_srmc_supplier`
        FOREIGN KEY (`supplier_id`) REFERENCES `material_supplier` (`id`)
        ON DELETE CASCADE
        ON UPDATE CASCADE

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

