-- Données de test pour Product Management

-- Fabriquants
INSERT INTO Manufacturer (name, contact, email, phone, address) VALUES
('Sony', 'Jean Dupont', 'contact@sony.fr', '+33123456789', '1 Rue de Paris, 75001 Paris'),
('Samsung', 'Marie Martin', 'contact@samsung.fr', '+33198765432', '2 Avenue des Champs, 75008 Paris'),
('LG', 'Pierre Durand', 'pierre@lg.fr', '+33212345678', '3 Boulevard de Lyon, 69002 Lyon');

-- Fournisseurs
INSERT INTO Supplier (name, contact, email, phone, address) VALUES
('TechDistrib', 'Pierre Durand', 'pierre@techdistrib.fr', '+33212345678', '10 Rue de Lyon, 69002 Lyon'),
('ElectroDepot', 'Sophie Leroy', 'sophie@electrodepot.fr', '+33345678901', '15 Boulevard de Marseille, 13001 Marseille'),
('Amazon Business', 'John Doe', 'john@amazon.fr', '+33456789012', '20 Rue de Paris, 75001 Paris');

-- Attributs prédéfinis
INSERT INTO Attribute (name, type, unit, description) VALUES
('Poids', 'number', 'kg', 'Poids du produit'),
('Couleur', 'text', NULL, 'Couleur principale'),
('Garantie', 'number', 'ans', 'Durée de garantie en années'),
('Longueur', 'number', 'm', 'Longueur du produit'),
('Largeur', 'number', 'm', 'Largeur du produit'),
('Hauteur', 'number', 'm', 'Hauteur du produit'),
('Matériau', 'text', NULL, 'Matériau principal');

-- Produits
INSERT INTO Product (name, description, sku, base_price, selling_price, quantity, min_quantity, manufacturer_id, supplier_id, category) VALUES
('Téléviseur Sony 55"', 'Téléviseur 4K UHD avec HDR', 'SONY-TV-55X85', 800.00, 1200.00, 10, 2, 1, 1, 'Électronique'),
('Smartphone Samsung Galaxy S23', 'Smartphone Android 256Go, écran 6.1"', 'SAMSUNG-S23-256', 700.00, 999.00, 20, 5, 2, 2, 'Électronique'),
('Câble HDMI 2m', 'Câble HDMI haute vitesse, compatible 4K', 'CABLE-HDMI-2M', 15.00, 25.00, 100, 10, NULL, 1, 'Accessoire'),
('Écran LG 27"', 'Écran Full HD, 27 pouces', 'LG-MONITOR-27', 250.00, 350.00, 15, 3, 3, 1, 'Électronique'),
('Clavier sans fil', 'Clavier Bluetooth, layout AZERTY', 'KEYBOARD-WL-01', 45.00, 69.99, 30, 5, NULL, 2, 'Accessoire');

-- Attributs des produits
INSERT INTO ProductAttribute (product_id, attribute_id, custom_name, value, unit) VALUES
-- Téléviseur Sony
(1, 1, NULL, '12.5', 'kg'),
(1, 2, NULL, 'Noir', NULL),
(1, 3, NULL, '2', 'ans'),
(1, 4, NULL, '1.2', 'm'),
(1, 5, NULL, '0.7', 'm'),
(1, 6, NULL, '0.1', 'm'),
-- Smartphone Samsung
(2, 1, NULL, '0.17', 'kg'),
(2, 2, NULL, 'Noir', NULL),
(2, 3, NULL, '1', 'ans'),
-- Câble HDMI
(3, NULL, 'Matériau', 'Cuivre', NULL),
(3, 4, NULL, '2', 'm'),
-- Écran LG
(4, 1, NULL, '4.5', 'kg'),
(4, 2, NULL, 'Noir', NULL),
(4, 3, NULL, '1', 'ans'),
(4, 4, NULL, '0.6', 'm'),
-- Clavier sans fil
(5, 1, NULL, '0.5', 'kg'),
(5, 2, NULL, 'Noir', NULL),
(5, 3, NULL, '1', 'ans');

-- Mouvements de stock (InOut)
INSERT INTO InOut (product_id, type, quantity, unit_price, reason, reference, date, created_by) VALUES
-- Entrées initiales
(1, 'in', 10, 800.00, 'Réception commande fournisseur', 'BON-2023-001', '2023-10-01 09:00:00', 'admin'),
(2, 'in', 20, 700.00, 'Réception commande', 'BON-2023-002', '2023-10-02 10:00:00', 'admin'),
(3, 'in', 100, 15.00, 'Réception stock initial', 'BON-2023-003', '2023-10-03 11:00:00', 'admin'),
(4, 'in', 15, 250.00, 'Réception commande LG', 'BON-2023-004', '2023-10-04 12:00:00', 'admin'),
(5, 'in', 30, 45.00, 'Réception stock clavier', 'BON-2023-005', '2023-10-05 13:00:00', 'admin'),
-- Sorties (ventes)
(1, 'out', 2, 800.00, 'Vente en magasin', 'VENTE-2023-001', '2023-10-05 14:30:00', 'caissier'),
(2, 'out', 1, 700.00, 'Vente en ligne', 'VENTE-2023-002', '2023-10-06 15:45:00', 'caissier'),
(3, 'out', 5, 15.00, 'Vente en magasin', 'VENTE-2023-003', '2023-10-07 16:20:00', 'caissier');

-- Achats (Buy) liés à InOut
INSERT INTO Buy (supplier_id, inout_id, product_id, quantity, unit_price, packaging, discount, delivery_date, status, notes) VALUES
(1, 1, 1, 10, 800.00, 'Carton de 5', 5.00, '2023-10-01', 'received', 'Livraison à l\'heure'),
(2, 2, 2, 20, 700.00, 'Boîte individuelle', 0.00, '2023-10-02', 'received', NULL),
(1, 3, 3, 100, 15.00, 'Rouleau de 50', 10.00, '2023-10-03', 'received', 'Livraison anticipée'),
(3, 4, 4, 15, 250.00, 'Carton de 10', 0.00, '2023-10-04', 'received', NULL),
(2, 5, 5, 30, 45.00, 'Boîte de 20', 5.00, '2023-10-05', 'received', 'Délai respecté');

-- Fournisseurs alternatifs pour les produits
INSERT INTO ProductSupplier (product_id, supplier_id, is_primary, supplier_sku, supplier_price, lead_time_days) VALUES
(1, 1, TRUE, 'SONY-TV-55X85-TD', 800.00, 7),
(1, 2, FALSE, 'SONY-55X85-ED', 820.00, 10),
(1, 3, FALSE, 'SONY-55X85-AM', 810.00, 5),
(2, 2, TRUE, 'SAMSUNG-S23-256-ED', 700.00, 5),
(2, 3, FALSE, 'SAMSUNG-S23-256-AM', 690.00, 3),
(3, 1, TRUE, 'CABLE-HDMI-2M-TD', 15.00, 3),
(3, 2, FALSE, 'CABLE-HDMI-2M-ED', 14.50, 2),
(4, 1, FALSE, 'LG-MONITOR-27-TD', 250.00, 7),
(4, 3, TRUE, 'LG-MONITOR-27-AM', 245.00, 4),
(5, 2, TRUE, 'KEYBOARD-WL-01-ED', 45.00, 5);

-- Utilisateurs
INSERT INTO User (username, email, password_hash, first_name, last_name, role) VALUES
('admin', 'admin@example.com', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'Admin', 'User', 'admin'),
('manager', 'manager@example.com', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'Manager', 'User', 'manager'),
('user', 'user@example.com', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'Standard', 'User', 'user');

-- Note: Le mot de passe pour tous les utilisateurs est "password"
