-- Darlink ERP v0.3 Foundation
-- Schéma officiel Articles + Stock de base
-- Version non destructive pour Phoenix 2026.3 LTS Install Wizard.
-- Aucune table existante n'est supprimée ; les créations sont conditionnelles.
-- Toutes les tables utilisent InnoDB afin de permettre les clés étrangères.

CREATE TABLE IF NOT EXISTS familles_articles (
    id INT AUTO_INCREMENT PRIMARY KEY,
    libelle VARCHAR(100) NOT NULL UNIQUE,
    actif TINYINT(1) DEFAULT 1,
    date_creation DATETIME DEFAULT CURRENT_TIMESTAMP,
    date_modification DATETIME DEFAULT CURRENT_TIMESTAMP
        ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB
  DEFAULT CHARSET=utf8mb4
  COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS marques_articles (
    id INT AUTO_INCREMENT PRIMARY KEY,
    libelle VARCHAR(100) NOT NULL UNIQUE,
    actif TINYINT(1) DEFAULT 1,
    date_creation DATETIME DEFAULT CURRENT_TIMESTAMP,
    date_modification DATETIME DEFAULT CURRENT_TIMESTAMP
        ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB
  DEFAULT CHARSET=utf8mb4
  COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS articles (
    id INT AUTO_INCREMENT PRIMARY KEY,
    famille_id INT NULL,
    marque_id INT NULL,
    reference VARCHAR(50) NOT NULL UNIQUE,
    designation VARCHAR(255) NOT NULL,
    conditionnement VARCHAR(100),
    unite VARCHAR(30) DEFAULT 'unité',
    prix_achat_ht DECIMAL(12,2) DEFAULT 0,
    coefficient DECIMAL(8,3) DEFAULT 1,
    prix_vente_ht DECIMAL(12,2) DEFAULT 0,
    taux_tva DECIMAL(5,2) DEFAULT 20.00,
    prix_vente_ttc DECIMAL(12,2) DEFAULT 0,
    marge_dh DECIMAL(12,2) DEFAULT 0,
    marge_pourcentage DECIMAL(6,2) DEFAULT 0,
    stock_minimum DECIMAL(12,2) DEFAULT 0,
    actif TINYINT(1) DEFAULT 1,
    date_creation DATETIME DEFAULT CURRENT_TIMESTAMP,
    date_modification DATETIME DEFAULT CURRENT_TIMESTAMP
        ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_articles_reference (reference),
    INDEX idx_articles_designation (designation),
    INDEX idx_articles_famille (famille_id),
    INDEX idx_articles_marque (marque_id),
    CONSTRAINT fk_articles_famille
        FOREIGN KEY (famille_id)
        REFERENCES familles_articles(id),
    CONSTRAINT fk_articles_marque
        FOREIGN KEY (marque_id)
        REFERENCES marques_articles(id)
) ENGINE=InnoDB
  DEFAULT CHARSET=utf8mb4
  COLLATE=utf8mb4_unicode_ci;

INSERT IGNORE INTO familles_articles (libelle) VALUES
('Détergents'),
('Désinfectants'),
('Papier'),
('Sacs poubelles'),
('Cuisine'),
('Sanitaires'),
('Matériel');