INSERT INTO redirects (source_path, target_url, status_code, is_active, note, created_at, updated_at)
SELECT '/formation', '/pages/cfi/', 301, 1, 'Alias public CFI', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
WHERE NOT EXISTS (SELECT 1 FROM redirects WHERE source_path = '/formation');

INSERT INTO redirects (source_path, target_url, status_code, is_active, note, created_at, updated_at)
SELECT '/developpement-sur-mesure', '/pages/developpement-sur-mesure/', 301, 1, 'Alias public Developpement sur mesure', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
WHERE NOT EXISTS (SELECT 1 FROM redirects WHERE source_path = '/developpement-sur-mesure');

INSERT INTO redirects (source_path, target_url, status_code, is_active, note, created_at, updated_at)
SELECT '/sur-mesure', '/pages/developpement-sur-mesure/', 301, 1, 'Alias court public Developpement sur mesure', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
WHERE NOT EXISTS (SELECT 1 FROM redirects WHERE source_path = '/sur-mesure');

UPDATE menu_items
SET sort_order = sort_order + 1,
    updated_at = CURRENT_TIMESTAMP
WHERE location = 'main'
  AND label IN ('CFI', 'MobilityScan')
  AND NOT EXISTS (
      SELECT 1
      FROM menu_items
      WHERE location = 'main'
        AND label = 'Sur mesure'
  );

INSERT INTO menu_items (location, label, link_type, url, sort_order, is_active, created_at, updated_at)
SELECT 'main', 'Sur mesure', 'custom', '/developpement-sur-mesure/', 3, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
WHERE NOT EXISTS (
    SELECT 1
    FROM menu_items
    WHERE location = 'main'
      AND label = 'Sur mesure'
);

UPDATE page_sections ps
JOIN pages p ON p.id = ps.page_id
SET ps.settings_json = REPLACE(
    ps.settings_json,
    '"cta_url":"/pages/developpement-sur-mesure/"',
    '"cta_url":"/developpement-sur-mesure/"'
)
WHERE p.slug = 'home'
  AND ps.section_type = 'home-custom-development'
  AND ps.settings_json LIKE '%"/pages/developpement-sur-mesure/"%';

UPDATE page_sections ps
JOIN pages p ON p.id = ps.page_id
SET ps.settings_json = REPLACE(
    ps.settings_json,
    '"url":"/cfi","link_label":"Decouvrir CFI"',
    '"url":"/formation","link_label":"Decouvrir CFI"'
)
WHERE p.slug = 'home'
  AND ps.section_type = 'home-ecosystem'
  AND ps.settings_json LIKE '%"url":"/cfi","link_label":"Decouvrir CFI"%';

INSERT INTO page_sections (
    page_id, section_type, title, eyebrow, body, settings_json, sort_order, is_active, created_at, updated_at
)
SELECT
    page_data.page_id,
    page_data.section_type,
    page_data.title,
    page_data.eyebrow,
    page_data.body,
    page_data.settings_json,
    page_data.sort_order,
    1,
    CURRENT_TIMESTAMP,
    CURRENT_TIMESTAMP
FROM (
    SELECT p.id AS page_id, 'home-hero' AS section_type, 'Transformons vos besoins metier en solutions concretes' AS title, 'DEVELOPPEMENT SUR MESURE' AS eyebrow,
        'Lorsqu''une solution standard ne repond pas completement a votre organisation, WININFO analyse vos processus et concoit les developpements necessaires pour adapter, connecter ou enrichir votre systeme d''information.' AS body,
        '{}' AS settings_json, 1 AS sort_order
    FROM pages p
    WHERE p.slug = 'developpement-sur-mesure'
    UNION ALL
    SELECT p.id, 'home-intro', 'Le developpement commence par la comprehension de votre metier', '',
        CONCAT(
            'Avant de parler de technologie, nous cherchons a comprendre le fonctionnement de votre entreprise, les utilisateurs concernes, les informations manipulees et le resultat attendu.',
            '\n\n',
            'Cette analyse permet de determiner s''il est preferable de parametrer une fonction existante, d''adapter une solution, de creer un module ou de developper une interface specifique.'
        ),
        '{}', 2
    FROM pages p
    WHERE p.slug = 'developpement-sur-mesure'
    UNION ALL
    SELECT p.id, 'cards', 'Des developpements adaptes a differents besoins', '',
        '',
        '{"cards":[{"title":"Evolution d une solution WININFO","description":"Ajouter ou adapter une fonctionnalite a un environnement existant.","sort_order":1,"icon":"","media_id":"","is_active":1},{"title":"Nouveau module metier","description":"Concevoir un module repondant a un processus ou a une activite particuliere.","sort_order":2,"icon":"","media_id":"","is_active":1},{"title":"Interface entre logiciels","description":"Faire circuler les informations entre plusieurs applications afin de limiter les ressaisies.","sort_order":3,"icon":"","media_id":"","is_active":1},{"title":"Automatisation","description":"Automatiser des operations repetitives ou des traitements de donnees.","sort_order":4,"icon":"","media_id":"","is_active":1},{"title":"Application specifique","description":"Concevoir une solution dediee lorsqu un besoin ne peut pas etre couvert correctement par les outils existants.","sort_order":5,"icon":"","media_id":"","is_active":1},{"title":"Mobilite","description":"Etendre certains processus aux collaborateurs terrain lorsque cela est necessaire.","sort_order":6,"icon":"","media_id":"","is_active":1}]}',
        3
    FROM pages p
    WHERE p.slug = 'developpement-sur-mesure'
    UNION ALL
    SELECT p.id, 'process-steps', 'Une demarche structuree, du besoin a la mise en service', '',
        'Le site doit montrer que le developpement n est pas seulement une activite de programmation.',
        '{"cards":[{"title":"Ecouter","description":"","sort_order":1,"icon":"","media_id":"","is_active":1},{"title":"Analyser","description":"","sort_order":2,"icon":"","media_id":"","is_active":1},{"title":"Specifier","description":"","sort_order":3,"icon":"","media_id":"","is_active":1},{"title":"Concevoir","description":"","sort_order":4,"icon":"","media_id":"","is_active":1},{"title":"Developper","description":"","sort_order":5,"icon":"","media_id":"","is_active":1},{"title":"Tester","description":"","sort_order":6,"icon":"","media_id":"","is_active":1},{"title":"Deployer","description":"","sort_order":7,"icon":"","media_id":"","is_active":1},{"title":"Accompagner","description":"","sort_order":8,"icon":"","media_id":"","is_active":1}]}',
        4
    FROM pages p
    WHERE p.slug = 'developpement-sur-mesure'
    UNION ALL
    SELECT p.id, 'home-intro', 'Faire evoluer l existant plutot que tout reconstruire', '',
        CONCAT(
            'Une entreprise dispose deja de logiciels, de donnees, d habitudes et de processus.',
            '\n\n',
            'Lorsque cela est pertinent, WININFO privilegie l integration avec l environnement existant : API, imports, exports, EDI ou interfaces specifiques permettent de connecter les differents outils.'
        ),
        '{}', 5
    FROM pages p
    WHERE p.slug = 'developpement-sur-mesure'
    UNION ALL
    SELECT p.id, 'home-intro', 'Un besoin client peut parfois devenir une solution metier', '',
        CONCAT(
            'Certains modules WININFO sont issus de besoins concrets rencontres aupres de nos clients.',
            '\n\n',
            'Lorsqu une problematique presente un interet plus large, une evolution specifique peut devenir une fonctionnalite ou un module pouvant beneficier a d autres entreprises confrontees au meme besoin.'
        ),
        '{}', 6
    FROM pages p
    WHERE p.slug = 'developpement-sur-mesure'
    UNION ALL
    SELECT p.id, 'home-final-cta', 'Un developpement doit pouvoir vivre et evoluer', '',
        'La mise en production n est pas la fin du projet. Les usages evoluent, les metiers changent et de nouveaux besoins apparaissent. WININFO peut accompagner les evolutions fonctionnelles et techniques des solutions mises en place.',
        '{}', 7
    FROM pages p
    WHERE p.slug = 'developpement-sur-mesure'
    UNION ALL
    SELECT p.id, 'home-hero', 'Developpez les competences de vos equipes', 'CFI - FORMATION',
        'CFI accompagne les entreprises et leurs collaborateurs dans l acquisition et le developpement de competences a travers des actions de formation adaptees a leurs besoins.',
        '{}', 1
    FROM pages p
    WHERE p.slug = 'cfi'
    UNION ALL
    SELECT p.id, 'pages-list', 'Les formations', '',
        'Le systeme peut presenter des formations sous forme de fiches dynamiques sans dupliquer manuellement le front-office.',
        '{"filter_value":"formation","limit":"6"}', 2
    FROM pages p
    WHERE p.slug = 'cfi'
    UNION ALL
    SELECT p.id, 'home-intro', 'Location de salle', '',
        'Si l activite est conservee, une section ou une page specifique pourra presenter la salle, sa capacite, ses equipements, les services disponibles, les photographies et les modalites de demande.',
        '{}', 3
    FROM pages p
    WHERE p.slug = 'cfi'
    UNION ALL
    SELECT p.id, 'home-intro', 'Une identite propre dans l ecosysteme WININFO', '',
        'CFI peut utiliser son propre logo, certaines couleurs specifiques et ses propres visuels. Cependant, l utilisateur doit toujours comprendre qu il se trouve dans l ecosysteme WININFO.',
        '{}', 4
    FROM pages p
    WHERE p.slug = 'cfi'
    UNION ALL
    SELECT p.id, 'home-hero', 'Les equipements professionnels adaptes a vos usages terrain', 'MOBILITYSCAN',
        'MobilityScan complete l expertise logicielle de WININFO en proposant des equipements de mobilite et d identification adaptes aux environnements professionnels.',
        '{}', 1
    FROM pages p
    WHERE p.slug = 'mobilityscan'
    UNION ALL
    SELECT p.id, 'cards', 'Familles de materiels', '',
        'La page peut presenter les grandes familles de materiels sans dupliquer le catalogue complet de la boutique.',
        '{"cards":[{"title":"Terminaux mobiles","description":"","sort_order":1,"icon":"","media_id":"","is_active":1},{"title":"Lecteurs codes-barres","description":"","sort_order":2,"icon":"","media_id":"","is_active":1},{"title":"Tablettes professionnelles","description":"","sort_order":3,"icon":"","media_id":"","is_active":1},{"title":"Imprimantes","description":"","sort_order":4,"icon":"","media_id":"","is_active":1},{"title":"Accessoires","description":"","sort_order":5,"icon":"","media_id":"","is_active":1},{"title":"Autres equipements","description":"","sort_order":6,"icon":"","media_id":"","is_active":1}]}',
        2
    FROM pages p
    WHERE p.slug = 'mobilityscan'
    UNION ALL
    SELECT p.id, 'home-intro', 'Le logiciel et le materiel penses ensemble', '',
        CONCAT(
            'Dans les environnements terrain, le choix du materiel est directement lie aux usages : mobilite, lecture de codes-barres, conditions d utilisation, autonomie ou ergonomie.',
            '\n\n',
            'WININFO peut accompagner ses clients dans le choix des equipements adaptes aux solutions mises en oeuvre.'
        ),
        '{}', 3
    FROM pages p
    WHERE p.slug = 'mobilityscan'
) AS page_data
WHERE NOT EXISTS (
    SELECT 1
    FROM page_sections existing_sections
    WHERE existing_sections.page_id = page_data.page_id
);
