
-- Suppression préalable si besoin

-- Table des types
CREATE TABLE types (
  id INT PRIMARY KEY
)  ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Table des secteurs
CREATE TABLE secteurs (
  type_id INT NOT NULL,
  id INT NOT NULL,
  PRIMARY KEY (type_id, id),
  FOREIGN KEY (type_id) REFERENCES types(id)
)  ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Table des catégories
CREATE TABLE categories (
  type_id INT NOT NULL,
  secteur_id INT NOT NULL,
  id INT NOT NULL,
  PRIMARY KEY (type_id, secteur_id, id),
  FOREIGN KEY (type_id, secteur_id) REFERENCES secteurs(type_id, id)
)  ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Table des détails
CREATE TABLE details (
  type_id INT NOT NULL,
  secteur_id INT NOT NULL,
  categorie_id INT NOT NULL,
  id INT NOT NULL,
  PRIMARY KEY (type_id, secteur_id, categorie_id, id),
  FOREIGN KEY (type_id, secteur_id, categorie_id) REFERENCES categories(type_id, secteur_id, id)
)  ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Table des libellés multilingues
CREATE TABLE labels (
  code VARCHAR(20) NOT NULL,     -- clé hiérarchique ex: '1.2.3.4'
  langue CHAR(2) NOT NULL,       -- langue ex: 'fr', 'en', 'nl'
  label VARCHAR(97) NOT NULL,    -- libellé court
  infos TEXT DEFAULT NULL,       -- description optionnelle
  PRIMARY KEY (code, langue)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Insertion dans la structure hiérarchique (cohérente avec les labels)

-- TYPES
INSERT INTO types (id) VALUES
(1), (2), (3), (4);

-- SECTEURS
INSERT INTO secteurs (type_id, id) VALUES
(1, 1), (1, 2), (1, 3), (1, 4),
(2, 1), (2, 2), (2, 3), (2, 4),
(3, 1), (3, 2), (3, 3),
(4, 1), (4, 2);

-- CATÉGORIES
INSERT INTO categories (type_id, secteur_id, id) VALUES
(1, 1, 1), (1, 1, 2),
(1, 2, 1), (1, 2, 2), (1, 2, 3),
(1, 3, 1), (1, 3, 2), (1, 3, 3),
(1, 4, 1), (1, 4, 2), (1, 4, 3),

(2, 1, 1), (2, 1, 2),
(2, 2, 1), (2, 2, 2), (2, 2, 3),
(2, 3, 1), (2, 3, 2), (2, 3, 3),
(2, 4, 1), (2, 4, 2), (2, 4, 3),

(3, 1, 1), (3, 1, 2), (3, 1, 3),
(3, 2, 1), (3, 2, 2);

-- DÉTAILS
INSERT INTO details (type_id, secteur_id, categorie_id, id) VALUES
-- Offre - Informatique
(1, 1, 1, 1), (1, 1, 1, 2), (1, 1, 1, 3),
-- Offre - Audio
(1, 1, 2, 1), (1, 1, 2, 2),
-- Offre - Langues
(1, 4, 3, 1), (1, 4, 3, 2), (1, 4, 3, 3),

-- Demande - Informatique
(2, 1, 1, 1), (2, 1, 1, 2), (2, 1, 1, 3),
-- Demande - Audio
(2, 1, 2, 1), (2, 1, 2, 2),
-- Demande - Langues
(2, 4, 3, 1), (2, 4, 3, 2), (2, 4, 3, 3);

-- TRADUCTIONS

-- Types
INSERT INTO labels (code, langue, label, infos) VALUES
('1', 'fr', 'Offre', 'Proposer un bien, un service ou une compétence.'),
('2', 'fr', 'Demande', 'Rechercher un produit, un service ou une aide spécifique.'),
('3', 'fr', 'Social', 'Activités sociales, loisirs, rencontres ou échanges non commerciaux.'),
('4', 'fr', 'QR-code', 'Fonctionnalité liée à la génération ou la lecture de QR codes.');

-- Secteurs
INSERT INTO labels (code, langue, label) VALUES
('1.1', 'fr', 'Produit'),
('1.2', 'fr', 'Service'),
('1.3', 'fr', 'Emploi'),
('1.4', 'fr', 'Cours'),

('2.1', 'fr', 'Produit'),
('2.2', 'fr', 'Service'),
('2.3', 'fr', 'Emploi'),
('2.4', 'fr', 'Cours'),

('3.1', 'fr', 'Jeux'),
('3.2', 'fr', 'Clubs'),
('3.3', 'fr', 'Cours'),

('4.1', 'fr', 'Génération QR code'),
('4.2', 'fr', 'Lecture QR code');

-- Catégories
INSERT INTO labels (code, langue, label) VALUES
('1.1.1', 'fr', 'Informatique'),
('1.1.2', 'fr', 'Audio'),
('1.2.1', 'fr', 'Baby-sitting'),
('1.2.2', 'fr', 'Jardinage'),
('1.2.3', 'fr', 'Nettoyage'),
('1.3.1', 'fr', 'Menuisier'),
('1.3.2', 'fr', 'Electricien'),
('1.3.3', 'fr', 'Cordiste'),
('1.4.1', 'fr', 'Math'),
('1.4.2', 'fr', 'Chimie'),
('1.4.3', 'fr', 'Langues'),

('2.1.1', 'fr', 'Informatique'),
('2.1.2', 'fr', 'Audio'),
('2.2.1', 'fr', 'Baby-sitting'),
('2.2.2', 'fr', 'Jardinage'),
('2.2.3', 'fr', 'Nettoyage'),
('2.3.1', 'fr', 'Menuisier'),
('2.3.2', 'fr', 'Electricien'),
('2.3.3', 'fr', 'Cordiste'),
('2.4.1', 'fr', 'Math'),
('2.4.2', 'fr', 'Chimie'),
('2.4.3', 'fr', 'Langues'),

('3.1.1', 'fr', 'Echecs'),
('3.1.2', 'fr', 'Dames'),
('3.1.3', 'fr', 'Belotte'),
('3.2.1', 'fr', 'Rotary'),
('3.2.2', 'fr', 'Kiwanis');

-- Détails
INSERT INTO labels (code, langue, label) VALUES
('1.1.1.1', 'fr', 'Imprimante'),
('1.1.1.2', 'fr', 'Ordinateur portable'),
('1.1.1.3', 'fr', 'Écran'),
('1.1.2.1', 'fr', 'Enceinte Bluetooth'),
('1.1.2.2', 'fr', 'Casque sans fil'),
('1.4.3.1', 'fr', 'Français'),
('1.4.3.2', 'fr', 'Néerlandais'),
('1.4.3.3', 'fr', 'Anglais'),

('2.1.1.1', 'fr', 'Imprimante'),
('2.1.1.2', 'fr', 'Ordinateur portable'),
('2.1.1.3', 'fr', 'Écran'),
('2.1.2.1', 'fr', 'Enceinte Bluetooth'),
('2.1.2.2', 'fr', 'Casque sans fil'),
('2.4.3.1', 'fr', 'Français'),
('2.4.3.2', 'fr', 'Néerlandais'),
('2.4.3.3', 'fr', 'Anglais');

-- Types
INSERT INTO labels (code, langue, label, infos) VALUES
('1', 'en', 'Offer', 'Propose a product, service, or skill to others.'),
('2', 'en', 'Request', 'Search for a product, service, or specific help.'),
('3', 'en', 'Social', 'Social activities, leisure, meetings or non-commercial exchanges.'),
('4', 'en', 'QR-code', 'Function related to QR code generation or scanning.');
INSERT INTO labels (code, langue, label, infos) VALUES
('1', 'nl', 'Aanbod', 'Een product, dienst of vaardigheid aanbieden aan anderen.'),
('2', 'nl', 'Vraag', 'Zoeken naar een product, dienst of specifieke hulp.'),
('3', 'nl', 'Sociaal', 'Sociale activiteiten, ontspanning, ontmoetingen of niet-commerciële uitwisselingen.'),
('4', 'nl', 'QR-code', 'Functionaliteit voor het genereren of scannen van QR-codes.');

-- Secteurs (quelques exemples)

INSERT INTO labels (code, langue, label) VALUES
('1.1', 'en', 'Product'), ('1.1', 'nl', 'Product'),
('1.2', 'en', 'Service'), ('1.2', 'nl', 'Dienst'),
('1.3', 'en', 'Employment'), ('1.3', 'nl', 'Werk'),
('1.4', 'en', 'Courses'), ('1.4', 'nl', 'Cursussen'),

('2.1', 'en', 'Product'), ('2.1', 'nl', 'Product'),
('2.2', 'en', 'Service'), ('2.2', 'nl', 'Dienst'),
('2.3', 'en', 'Employment'), ('2.3', 'nl', 'Werk'),
('2.4', 'en', 'Courses'), ('2.4', 'nl', 'Cursussen'),


('3.1', 'en', 'Games'), ('3.1', 'nl', 'Spellen'),
('3.2', 'en', 'Clubs'), ('3.2', 'nl', 'Clubs'),
('3.3', 'en', 'Courses'), ('3.3', 'nl', 'Cursussen'),

('4.1', 'en', 'Génération QR code'),
('4.2', 'en', 'Lecture QR code'),
('4.1', 'nl', 'Génération QR code'),
('4.2', 'nl', 'Lecture QR code');


-- Catégories
INSERT INTO labels (code, langue, label) VALUES
('1.1.1', 'en', 'IT'), ('1.1.1', 'nl', 'Informatica'),
('1.1.2', 'en', 'Audio'), ('1.1.2', 'nl', 'Audio'),
('1.2.1', 'en', 'Babysitting'), ('1.2.1', 'nl', 'Oppas'),
('1.2.2', 'en', 'Gardening'), ('1.2.2', 'nl', 'Tuinieren'),
('1.3.1', 'en', 'Carpenter'), ('1.3.1', 'nl', 'Timmerman'),
('1.3.2', 'en', 'Electrician'), ('1.3.2', 'nl', 'Elektricien'),

('2.1.1', 'en', 'IT'), ('2.1.1', 'nl', 'Informatica'),
('2.1.2', 'en', 'Audio'), ('2.1.2', 'nl', 'Audio'),
('2.2.1', 'en', 'Babysitting'), ('2.2.1', 'nl', 'Oppas'),
('2.2.2', 'en', 'Gardening'), ('2.2.2', 'nl', 'Tuinieren'),
('2.3.1', 'en', 'Carpenter'), ('2.3.1', 'nl', 'Timmerman'),
('2.3.2', 'en', 'Electrician'), ('2.3.2', 'nl', 'Elektricien'),

('3.1.1', 'en', 'Chess'), ('3.1.1', 'nl', 'Schaken'),
('3.1.2', 'en', 'Checkers'), ('3.1.2', 'nl', 'Dammen'),
('3.2.1', 'en', 'Rotary'), ('3.2.1', 'nl', 'Rotary');

-- Détails
INSERT INTO labels (code, langue, label) VALUES
('1.1.1.1', 'en', 'Printer'), ('1.1.1.1', 'nl', 'Printer'),
('1.1.1.2', 'en', 'Laptop'), ('1.1.1.2', 'nl', 'Laptop'),
('1.1.1.3', 'en', 'Monitor'), ('1.1.1.3', 'nl', 'Scherm'),
('1.4.3.1', 'en', 'French'), ('1.4.3.1', 'nl', 'Frans'),
('1.4.3.2', 'en', 'Dutch'), ('1.4.3.2', 'nl', 'Nederlands'),
('1.4.3.3', 'en', 'English'), ('1.4.3.3', 'nl', 'Engels'),

('2.1.1.1', 'en', 'Printer'), ('2.1.1.1', 'nl', 'Printer'),
('2.1.1.2', 'en', 'Laptop'), ('2.1.1.2', 'nl', 'Laptop'),
('2.1.1.3', 'en', 'Monitor'), ('2.1.1.3', 'nl', 'Scherm'),
('2.4.3.1', 'en', 'French'), ('2.4.3.1', 'nl', 'Frans'),
('2.4.3.2', 'en', 'Dutch'), ('2.4.3.2', 'nl', 'Nederlands'),
('2.4.3.3', 'en', 'English'), ('2.4.3.3', 'nl', 'Engels');

-- COMPLEMENT DE TRADUCTION
INSERT INTO labels (code, langue, label) VALUES
('1.1.2.1', 'en', 'Bluetooth Speaker'),
('1.1.2.1', 'nl', 'Bluetooth luidspreker'),

('1.1.2.2', 'en', 'Wireless Headphones'),
('1.1.2.2', 'nl', 'Draadloze koptelefoon'),

('1.2.3', 'en', 'Cleaning'),
('1.2.3', 'nl', 'Schoonmaak'),

('1.3.3', 'en', 'Rope Access Technician'),
('1.3.3', 'nl', 'Touwtechnieker'),

('1.4.1', 'en', 'Math'),
('1.4.1', 'nl', 'Wiskunde'),

('1.4.2', 'en', 'Chemistry'),
('1.4.2', 'nl', 'Scheikunde'),

('1.4.3', 'en', 'Languages'),
('1.4.3', 'nl', 'Talen'),

('2.1.2.1', 'en', 'Bluetooth Speaker'),
('2.1.2.1', 'nl', 'Bluetooth luidspreker'),

('2.1.2.2', 'en', 'Wireless Headphones'),
('2.1.2.2', 'nl', 'Draadloze koptelefoon'),

('2.2.3', 'en', 'Cleaning'),
('2.2.3', 'nl', 'Schoonmaak'),

('2.3.3', 'en', 'Rope Access Technician'),
('2.3.3', 'nl', 'Touwtechnieker'),

('2.4.1', 'en', 'Math'),
('2.4.1', 'nl', 'Wiskunde'),

('2.4.2', 'en', 'Chemistry'),
('2.4.2', 'nl', 'Scheikunde'),

('2.4.3', 'en', 'Languages'),
('2.4.3', 'nl', 'Talen'),

('3.1.3', 'en', 'Belote'),
('3.1.3', 'nl', 'Klaverenjas'),

('3.2.2', 'en', 'Kiwanis'),
('3.2.2', 'nl', 'Kiwanis');
