INSERT INTO modules (
    internal_code,
    product_id,
    module_type_id,
    sort_order,
    name,
    slug,
    hero_eyebrow,
    hero_icon,
    tagline,
    short_description,
    hero_secondary_cta_label,
    hero_secondary_cta_url,
    presentation,
    problem_statement,
    solution_body,
    process_body,
    cta_label,
    cta_url,
    status,
    featured,
    meta_title,
    meta_description,
    canonical_url,
    published_at,
    created_at,
    updated_at
)
SELECT
    'MOD-FNC-001',
    (SELECT id FROM products WHERE slug = 'win-erp' LIMIT 1),
    (SELECT id FROM module_types WHERE code = 'fonctionnel' LIMIT 1),
    101,
    'Win@Tresorerie',
    'win-tresorerie',
    'Module fonctionnel',
    'chart-column',
    'Suivez votre tresorerie, anticipez vos besoins et structurez vos echanges bancaires dans l environnement Win@ERP.',
    'Win@Tresorerie aide a suivre la position de tresorerie, les echeances et les flux utiles au pilotage financier, avec la possibilite de preparer des exports vers des outils bancaires comme Suite Entreprise.',
    'Decouvrir l environnement Win@ERP',
    '/catalogue/modules/?product=win-erp',
    'Win@Tresorerie complete Win@ERP pour donner une lecture plus claire de la tresorerie et des flux financiers associes a votre activite. Il permet de rassembler les informations utiles au suivi quotidien et a l anticipation des besoins de pilotage.',
    'Le suivi de tresorerie repose souvent sur des informations dispersees entre la gestion, les echeances, les comptes et les outils bancaires. Cette dispersion ralentit l analyse, complique les arbitrages et limite la visibilite disponible pour piloter sereinement.',
    'Win@Tresorerie apporte un cadre de travail commun pour consolider les donnees utiles, preparer les suivis et organiser les echanges avec votre environnement bancaire. La solution permet de structurer le pilotage sans sortir du socle Win@ERP.',
    'Les informations issues de la gestion peuvent etre relues dans une logique de tresorerie, organisees selon vos besoins de suivi puis exploitees pour le pilotage et les echanges avec les outils externes utiles a votre organisation financiere.',
    'Demander une demonstration',
    '/demo/',
    'published',
    1,
    'Win@Tresorerie | Pilotage de la tresorerie WININFO',
    'Win@Tresorerie aide a suivre la position de tresorerie, les echeances et les exports bancaires dans un environnement Win@ERP unique.',
    '/modules/win-tresorerie/',
    CURRENT_TIMESTAMP,
    CURRENT_TIMESTAMP,
    CURRENT_TIMESTAMP
WHERE NOT EXISTS (SELECT 1 FROM modules WHERE slug = 'win-tresorerie');

UPDATE modules
SET
    product_id = (SELECT id FROM products WHERE slug = 'win-erp' LIMIT 1),
    module_type_id = (SELECT id FROM module_types WHERE code = 'fonctionnel' LIMIT 1),
    sort_order = 101,
    name = 'Win@Tresorerie',
    hero_eyebrow = 'Module fonctionnel',
    hero_icon = 'chart-column',
    tagline = 'Suivez votre tresorerie, anticipez vos besoins et structurez vos echanges bancaires dans l environnement Win@ERP.',
    short_description = 'Win@Tresorerie aide a suivre la position de tresorerie, les echeances et les flux utiles au pilotage financier, avec la possibilite de preparer des exports vers des outils bancaires comme Suite Entreprise.',
    hero_secondary_cta_label = 'Decouvrir l environnement Win@ERP',
    hero_secondary_cta_url = '/catalogue/modules/?product=win-erp',
    presentation = 'Win@Tresorerie complete Win@ERP pour donner une lecture plus claire de la tresorerie et des flux financiers associes a votre activite. Il permet de rassembler les informations utiles au suivi quotidien et a l anticipation des besoins de pilotage.',
    problem_statement = 'Le suivi de tresorerie repose souvent sur des informations dispersees entre la gestion, les echeances, les comptes et les outils bancaires. Cette dispersion ralentit l analyse, complique les arbitrages et limite la visibilite disponible pour piloter sereinement.',
    solution_body = 'Win@Tresorerie apporte un cadre de travail commun pour consolider les donnees utiles, preparer les suivis et organiser les echanges avec votre environnement bancaire. La solution permet de structurer le pilotage sans sortir du socle Win@ERP.',
    process_body = 'Les informations issues de la gestion peuvent etre relues dans une logique de tresorerie, organisees selon vos besoins de suivi puis exploitees pour le pilotage et les echanges avec les outils externes utiles a votre organisation financiere.',
    cta_label = 'Demander une demonstration',
    cta_url = '/demo/',
    status = 'published',
    featured = 1,
    meta_title = 'Win@Tresorerie | Pilotage de la tresorerie WININFO',
    meta_description = 'Win@Tresorerie aide a suivre la position de tresorerie, les echeances et les exports bancaires dans un environnement Win@ERP unique.',
    canonical_url = '/modules/win-tresorerie/',
    published_at = COALESCE(published_at, CURRENT_TIMESTAMP),
    updated_at = CURRENT_TIMESTAMP
WHERE slug = 'win-tresorerie'
  AND deleted_at IS NULL;

INSERT INTO module_category (module_id, category_id)
SELECT
    m.id,
    c.id
FROM modules m
JOIN categories c ON c.slug = 'finance-pilotage'
WHERE m.slug = 'win-tresorerie'
  AND NOT EXISTS (
      SELECT 1
      FROM module_category mc
      WHERE mc.module_id = m.id
        AND mc.category_id = c.id
  );

INSERT INTO modules (
    internal_code,
    product_id,
    module_type_id,
    sort_order,
    name,
    slug,
    hero_eyebrow,
    hero_icon,
    tagline,
    short_description,
    hero_secondary_cta_label,
    hero_secondary_cta_url,
    presentation,
    problem_statement,
    solution_body,
    process_body,
    cta_label,
    cta_url,
    status,
    featured,
    meta_title,
    meta_description,
    canonical_url,
    published_at,
    created_at,
    updated_at
)
SELECT
    'MOD-FNC-002',
    (SELECT id FROM products WHERE slug = 'win-erp' LIMIT 1),
    (SELECT id FROM module_types WHERE code = 'fonctionnel' LIMIT 1),
    102,
    'Win@Tablette',
    'win-tablette',
    'Module fonctionnel',
    'smartphone',
    'Apportez la mobilite a vos equipes terrain et fluidifiez les echanges avec les utilisateurs, clients, chauffeurs et techniciens.',
    'Win@Tablette facilite les usages mobiles et les remontees terrain dans l environnement Win@ERP afin de mieux faire circuler les informations entre les equipes, les clients et l exploitation.',
    'Decouvrir l environnement Win@ERP',
    '/catalogue/modules/?product=win-erp',
    'Win@Tablette complete Win@ERP avec un usage mobile adapte aux situations terrain. Le module permet de faire circuler plus rapidement les informations utiles entre les personnes qui agissent sur le terrain et celles qui pilotent ou administrent l activite.',
    'Lorsque les informations remontent tardivement ou restent saisies sur plusieurs supports, l exploitation manque de reactivite et la continuite du traitement devient plus difficile. Les equipes terrain ont besoin d un point d acces simple aux informations et echanges utiles a leur activite.',
    'Win@Tablette structure les remontees et les validations terrain dans un environnement relie a Win@ERP. La solution aide a mieux synchroniser les acteurs, a fiabiliser la circulation des informations et a limiter les ressaisies inutiles.',
    'Les utilisateurs terrain consultent les informations utiles, transmettent leurs retours, valident les etapes necessaires et alimentent la gestion avec des donnees plus directement exploitables par l exploitation et l administration.',
    'Demander une demonstration',
    '/demo/',
    'published',
    1,
    'Win@Tablette | Mobilite terrain et echanges WININFO',
    'Win@Tablette apporte la mobilite terrain et fluidifie les echanges entre utilisateurs, clients, chauffeurs et techniciens dans Win@ERP.',
    '/modules/win-tablette/',
    CURRENT_TIMESTAMP,
    CURRENT_TIMESTAMP,
    CURRENT_TIMESTAMP
WHERE NOT EXISTS (SELECT 1 FROM modules WHERE slug = 'win-tablette');

UPDATE modules
SET
    product_id = (SELECT id FROM products WHERE slug = 'win-erp' LIMIT 1),
    module_type_id = (SELECT id FROM module_types WHERE code = 'fonctionnel' LIMIT 1),
    sort_order = 102,
    name = 'Win@Tablette',
    hero_eyebrow = 'Module fonctionnel',
    hero_icon = 'smartphone',
    tagline = 'Apportez la mobilite a vos equipes terrain et fluidifiez les echanges avec les utilisateurs, clients, chauffeurs et techniciens.',
    short_description = 'Win@Tablette facilite les usages mobiles et les remontees terrain dans l environnement Win@ERP afin de mieux faire circuler les informations entre les equipes, les clients et l exploitation.',
    hero_secondary_cta_label = 'Decouvrir l environnement Win@ERP',
    hero_secondary_cta_url = '/catalogue/modules/?product=win-erp',
    presentation = 'Win@Tablette complete Win@ERP avec un usage mobile adapte aux situations terrain. Le module permet de faire circuler plus rapidement les informations utiles entre les personnes qui agissent sur le terrain et celles qui pilotent ou administrent l activite.',
    problem_statement = 'Lorsque les informations remontent tardivement ou restent saisies sur plusieurs supports, l exploitation manque de reactivite et la continuite du traitement devient plus difficile. Les equipes terrain ont besoin d un point d acces simple aux informations et echanges utiles a leur activite.',
    solution_body = 'Win@Tablette structure les remontees et les validations terrain dans un environnement relie a Win@ERP. La solution aide a mieux synchroniser les acteurs, a fiabiliser la circulation des informations et a limiter les ressaisies inutiles.',
    process_body = 'Les utilisateurs terrain consultent les informations utiles, transmettent leurs retours, valident les etapes necessaires et alimentent la gestion avec des donnees plus directement exploitables par l exploitation et l administration.',
    cta_label = 'Demander une demonstration',
    cta_url = '/demo/',
    status = 'published',
    featured = 1,
    meta_title = 'Win@Tablette | Mobilite terrain et echanges WININFO',
    meta_description = 'Win@Tablette apporte la mobilite terrain et fluidifie les echanges entre utilisateurs, clients, chauffeurs et techniciens dans Win@ERP.',
    canonical_url = '/modules/win-tablette/',
    published_at = COALESCE(published_at, CURRENT_TIMESTAMP),
    updated_at = CURRENT_TIMESTAMP
WHERE slug = 'win-tablette'
  AND deleted_at IS NULL;

INSERT INTO module_category (module_id, category_id)
SELECT
    m.id,
    c.id
FROM modules m
JOIN categories c ON c.slug = 'mobilite'
WHERE m.slug = 'win-tablette'
  AND NOT EXISTS (
      SELECT 1
      FROM module_category mc
      WHERE mc.module_id = m.id
        AND mc.category_id = c.id
  );

INSERT INTO modules (
    internal_code,
    product_id,
    module_type_id,
    sort_order,
    name,
    slug,
    hero_eyebrow,
    hero_icon,
    tagline,
    short_description,
    hero_secondary_cta_label,
    hero_secondary_cta_url,
    presentation,
    problem_statement,
    solution_body,
    process_body,
    cta_label,
    cta_url,
    status,
    featured,
    meta_title,
    meta_description,
    canonical_url,
    published_at,
    created_at,
    updated_at
)
SELECT
    'MOD-FNC-003',
    (SELECT id FROM products WHERE slug = 'win-erp' LIMIT 1),
    (SELECT id FROM module_types WHERE code = 'fonctionnel' LIMIT 1),
    103,
    'Win@Marketing',
    'win-marketing',
    'Module fonctionnel',
    'megaphone',
    'Structurez vos actions commerciales, vos relances et leur suivi dans l environnement Win@ERP.',
    'Win@Marketing aide a organiser les actions commerciales, les relances et le suivi des initiatives menees par vos equipes afin de conserver une lecture plus claire de l animation commerciale.',
    'Decouvrir l environnement Win@ERP',
    '/catalogue/modules/?product=win-erp',
    'Win@Marketing complete Win@ERP avec un cadre de suivi pour les actions commerciales et relationnelles. Le module aide a conserver l historique des initiatives lancees, a prioriser les relances et a structurer le pilotage des actions menees dans le temps.',
    'Quand les actions commerciales sont gerees sur des supports disperses, il devient plus difficile de suivre ce qui a ete lance, relance ou traite. Cette dispersion limite la visibilite de l equipe commerciale et rend le pilotage plus fragile.',
    'Win@Marketing centralise les actions et leur suivi dans l environnement Win@ERP. La solution facilite la coordination commerciale, la lecture des priorites et la conservation d un historique de travail partage.',
    'Les actions, contacts et relances sont enregistres dans un meme environnement. Les equipes disposent ainsi d un point de suivi commun pour organiser leurs priorites et prolonger plus facilement l action commerciale dans la gestion quotidienne.',
    'Demander une demonstration',
    '/demo/',
    'published',
    1,
    'Win@Marketing | Actions commerciales et suivi WININFO',
    'Win@Marketing structure les actions commerciales, les relances et le suivi de l animation commerciale dans Win@ERP.',
    '/modules/win-marketing/',
    CURRENT_TIMESTAMP,
    CURRENT_TIMESTAMP,
    CURRENT_TIMESTAMP
WHERE NOT EXISTS (SELECT 1 FROM modules WHERE slug = 'win-marketing');

UPDATE modules
SET
    product_id = (SELECT id FROM products WHERE slug = 'win-erp' LIMIT 1),
    module_type_id = (SELECT id FROM module_types WHERE code = 'fonctionnel' LIMIT 1),
    sort_order = 103,
    name = 'Win@Marketing',
    hero_eyebrow = 'Module fonctionnel',
    hero_icon = 'megaphone',
    tagline = 'Structurez vos actions commerciales, vos relances et leur suivi dans l environnement Win@ERP.',
    short_description = 'Win@Marketing aide a organiser les actions commerciales, les relances et le suivi des initiatives menees par vos equipes afin de conserver une lecture plus claire de l animation commerciale.',
    hero_secondary_cta_label = 'Decouvrir l environnement Win@ERP',
    hero_secondary_cta_url = '/catalogue/modules/?product=win-erp',
    presentation = 'Win@Marketing complete Win@ERP avec un cadre de suivi pour les actions commerciales et relationnelles. Le module aide a conserver l historique des initiatives lancees, a prioriser les relances et a structurer le pilotage des actions menees dans le temps.',
    problem_statement = 'Quand les actions commerciales sont gerees sur des supports disperses, il devient plus difficile de suivre ce qui a ete lance, relance ou traite. Cette dispersion limite la visibilite de l equipe commerciale et rend le pilotage plus fragile.',
    solution_body = 'Win@Marketing centralise les actions et leur suivi dans l environnement Win@ERP. La solution facilite la coordination commerciale, la lecture des priorites et la conservation d un historique de travail partage.',
    process_body = 'Les actions, contacts et relances sont enregistres dans un meme environnement. Les equipes disposent ainsi d un point de suivi commun pour organiser leurs priorites et prolonger plus facilement l action commerciale dans la gestion quotidienne.',
    cta_label = 'Demander une demonstration',
    cta_url = '/demo/',
    status = 'published',
    featured = 1,
    meta_title = 'Win@Marketing | Actions commerciales et suivi WININFO',
    meta_description = 'Win@Marketing structure les actions commerciales, les relances et le suivi de l animation commerciale dans Win@ERP.',
    canonical_url = '/modules/win-marketing/',
    published_at = COALESCE(published_at, CURRENT_TIMESTAMP),
    updated_at = CURRENT_TIMESTAMP
WHERE slug = 'win-marketing'
  AND deleted_at IS NULL;

INSERT INTO module_category (module_id, category_id)
SELECT
    m.id,
    c.id
FROM modules m
JOIN categories c ON c.slug = 'finance-pilotage'
WHERE m.slug = 'win-marketing'
  AND NOT EXISTS (
      SELECT 1
      FROM module_category mc
      WHERE mc.module_id = m.id
        AND mc.category_id = c.id
  );

INSERT INTO modules (
    internal_code,
    product_id,
    module_type_id,
    sort_order,
    name,
    slug,
    hero_eyebrow,
    hero_icon,
    tagline,
    short_description,
    hero_secondary_cta_label,
    hero_secondary_cta_url,
    presentation,
    problem_statement,
    solution_body,
    process_body,
    cta_label,
    cta_url,
    status,
    featured,
    meta_title,
    meta_description,
    canonical_url,
    published_at,
    created_at,
    updated_at
)
SELECT
    'MOD-FNC-004',
    (SELECT id FROM products WHERE slug = 'win-erp' LIMIT 1),
    (SELECT id FROM module_types WHERE code = 'fonctionnel' LIMIT 1),
    104,
    'Win@Portail',
    'win-portail',
    'Module fonctionnel',
    'users',
    'Ouvrez un espace d echange et de services pour vos clients, chauffeurs et sous-traitants transporteurs.',
    'Win@Portail propose un espace d echange connecte a Win@ERP pour partager des informations, des documents et des services avec les profils externes de votre organisation.',
    'Decouvrir l environnement Win@ERP',
    '/catalogue/modules/?product=win-erp',
    'Win@Portail complete Win@ERP avec un espace dedie aux interactions avec vos publics externes. Il permet de structurer la mise a disposition d informations, de documents ou de services pour vos clients, vos chauffeurs ou vos sous-traitants transporteurs.',
    'Lorsque les echanges avec les interlocuteurs externes reposent sur des canaux disperses, la diffusion de l information devient plus lourde a maintenir et moins lisible. Les demandes, documents et services meritent un cadre plus structurant et plus facile a suivre.',
    'Win@Portail organise un espace de services et d echanges relie a Win@ERP. La solution aide a mieux cadrer les interactions, a centraliser les informations partagees et a faire circuler plus proprement les demandes et reponses utiles a l activite.',
    'Les informations et services utiles sont mis a disposition selon les profils concernes. Les echanges peuvent ainsi s inscrire dans un environnement commun avec la gestion, pour offrir plus de lisibilite aux equipes internes et aux interlocuteurs externes.',
    'Demander une demonstration',
    '/demo/',
    'published',
    1,
    'Win@Portail | Espace d echange et de services WININFO',
    'Win@Portail structure les echanges et services proposes aux clients, chauffeurs et sous-traitants dans un environnement Win@ERP.',
    '/modules/win-portail/',
    CURRENT_TIMESTAMP,
    CURRENT_TIMESTAMP,
    CURRENT_TIMESTAMP
WHERE NOT EXISTS (SELECT 1 FROM modules WHERE slug = 'win-portail');

UPDATE modules
SET
    product_id = (SELECT id FROM products WHERE slug = 'win-erp' LIMIT 1),
    module_type_id = (SELECT id FROM module_types WHERE code = 'fonctionnel' LIMIT 1),
    sort_order = 104,
    name = 'Win@Portail',
    hero_eyebrow = 'Module fonctionnel',
    hero_icon = 'users',
    tagline = 'Ouvrez un espace d echange et de services pour vos clients, chauffeurs et sous-traitants transporteurs.',
    short_description = 'Win@Portail propose un espace d echange connecte a Win@ERP pour partager des informations, des documents et des services avec les profils externes de votre organisation.',
    hero_secondary_cta_label = 'Decouvrir l environnement Win@ERP',
    hero_secondary_cta_url = '/catalogue/modules/?product=win-erp',
    presentation = 'Win@Portail complete Win@ERP avec un espace dedie aux interactions avec vos publics externes. Il permet de structurer la mise a disposition d informations, de documents ou de services pour vos clients, vos chauffeurs ou vos sous-traitants transporteurs.',
    problem_statement = 'Lorsque les echanges avec les interlocuteurs externes reposent sur des canaux disperses, la diffusion de l information devient plus lourde a maintenir et moins lisible. Les demandes, documents et services meritent un cadre plus structurant et plus facile a suivre.',
    solution_body = 'Win@Portail organise un espace de services et d echanges relie a Win@ERP. La solution aide a mieux cadrer les interactions, a centraliser les informations partagees et a faire circuler plus proprement les demandes et reponses utiles a l activite.',
    process_body = 'Les informations et services utiles sont mis a disposition selon les profils concernes. Les echanges peuvent ainsi s inscrire dans un environnement commun avec la gestion, pour offrir plus de lisibilite aux equipes internes et aux interlocuteurs externes.',
    cta_label = 'Demander une demonstration',
    cta_url = '/demo/',
    status = 'published',
    featured = 1,
    meta_title = 'Win@Portail | Espace d echange et de services WININFO',
    meta_description = 'Win@Portail structure les echanges et services proposes aux clients, chauffeurs et sous-traitants dans un environnement Win@ERP.',
    canonical_url = '/modules/win-portail/',
    published_at = COALESCE(published_at, CURRENT_TIMESTAMP),
    updated_at = CURRENT_TIMESTAMP
WHERE slug = 'win-portail'
  AND deleted_at IS NULL;

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'feature', 'Position de tresorerie', 'Vision synthetique des informations utiles au suivi de la tresorerie et des equilibres financiers du quotidien.', 'chart-column', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tresorerie'
  AND NOT EXISTS (
      SELECT 1 FROM content_items ci
      WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'feature' AND ci.sort_order = 1
  );

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'feature', 'Echeances et previsions', 'Organisation des echeances et des points de vigilance pour mieux anticiper les besoins de pilotage.', 'workflow', 2, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tresorerie'
  AND NOT EXISTS (
      SELECT 1 FROM content_items ci
      WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'feature' AND ci.sort_order = 2
  );

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'feature', 'Exports bancaires', 'Preparation de fichiers et d echanges avec des outils bancaires comme Suite Entreprise selon votre organisation.', 'file-text', 3, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tresorerie'
  AND NOT EXISTS (
      SELECT 1 FROM content_items ci
      WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'feature' AND ci.sort_order = 3
  );

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'feature', 'Suivi des reglements', 'Lecture plus structuree des flux lies aux encaissements, decaissements et traitements associes.', 'shield-check', 4, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tresorerie'
  AND NOT EXISTS (
      SELECT 1 FROM content_items ci
      WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'feature' AND ci.sort_order = 4
  );

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'feature', 'Parametrage de pilotage', 'Adaptation des vues et suivis selon les besoins de votre direction, de votre gestion et de vos usages financiers.', 'settings', 5, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tresorerie'
  AND NOT EXISTS (
      SELECT 1 FROM content_items ci
      WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'feature' AND ci.sort_order = 5
  );

UPDATE content_items ci
JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Position de tresorerie', ci.body = 'Vision synthetique des informations utiles au suivi de la tresorerie et des equilibres financiers du quotidien.', ci.icon = 'chart-column'
WHERE m.slug = 'win-tresorerie' AND ci.owner_type = 'module' AND ci.item_type = 'feature' AND ci.sort_order = 1;
UPDATE content_items ci
JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Echeances et previsions', ci.body = 'Organisation des echeances et des points de vigilance pour mieux anticiper les besoins de pilotage.', ci.icon = 'workflow'
WHERE m.slug = 'win-tresorerie' AND ci.owner_type = 'module' AND ci.item_type = 'feature' AND ci.sort_order = 2;
UPDATE content_items ci
JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Exports bancaires', ci.body = 'Preparation de fichiers et d echanges avec des outils bancaires comme Suite Entreprise selon votre organisation.', ci.icon = 'file-text'
WHERE m.slug = 'win-tresorerie' AND ci.owner_type = 'module' AND ci.item_type = 'feature' AND ci.sort_order = 3;
UPDATE content_items ci
JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Suivi des reglements', ci.body = 'Lecture plus structuree des flux lies aux encaissements, decaissements et traitements associes.', ci.icon = 'shield-check'
WHERE m.slug = 'win-tresorerie' AND ci.owner_type = 'module' AND ci.item_type = 'feature' AND ci.sort_order = 4;
UPDATE content_items ci
JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Parametrage de pilotage', ci.body = 'Adaptation des vues et suivis selon les besoins de votre direction, de votre gestion et de vos usages financiers.', ci.icon = 'settings'
WHERE m.slug = 'win-tresorerie' AND ci.owner_type = 'module' AND ci.item_type = 'feature' AND ci.sort_order = 5;

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'benefit', 'Visibilite financiere', 'Une lecture plus claire de la tresorerie aide a piloter les arbitrages et a mieux anticiper les besoins.', 'chart-column', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tresorerie'
  AND NOT EXISTS (
      SELECT 1 FROM content_items ci
      WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'benefit' AND ci.sort_order = 1
  );
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'benefit', 'Moins de dispersion', 'Les informations utiles au suivi sont rassemblees dans l environnement Win@ERP plutot que dispersees sur plusieurs supports.', 'workflow', 2, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tresorerie'
  AND NOT EXISTS (
      SELECT 1 FROM content_items ci
      WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'benefit' AND ci.sort_order = 2
  );
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'benefit', 'Echanges plus fiables', 'Les exports et traitements bancaires peuvent etre prepares dans un cadre de travail plus stable et mieux relie a la gestion.', 'shield-check', 3, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tresorerie'
  AND NOT EXISTS (
      SELECT 1 FROM content_items ci
      WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'benefit' AND ci.sort_order = 3
  );
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'benefit', 'Module combinable', 'Activez Win@Tresorerie dans votre environnement Win@ERP et combinez-le avec les autres modules de la meme solution selon vos besoins de gestion et de pilotage.', 'puzzle', 4, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tresorerie'
  AND NOT EXISTS (
      SELECT 1 FROM content_items ci
      WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'benefit' AND ci.sort_order = 4
  );

UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Visibilite financiere', ci.body = 'Une lecture plus claire de la tresorerie aide a piloter les arbitrages et a mieux anticiper les besoins.', ci.icon = 'chart-column'
WHERE m.slug = 'win-tresorerie' AND ci.owner_type = 'module' AND ci.item_type = 'benefit' AND ci.sort_order = 1;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Moins de dispersion', ci.body = 'Les informations utiles au suivi sont rassemblees dans l environnement Win@ERP plutot que dispersees sur plusieurs supports.', ci.icon = 'workflow'
WHERE m.slug = 'win-tresorerie' AND ci.owner_type = 'module' AND ci.item_type = 'benefit' AND ci.sort_order = 2;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Echanges plus fiables', ci.body = 'Les exports et traitements bancaires peuvent etre prepares dans un cadre de travail plus stable et mieux relie a la gestion.', ci.icon = 'shield-check'
WHERE m.slug = 'win-tresorerie' AND ci.owner_type = 'module' AND ci.item_type = 'benefit' AND ci.sort_order = 3;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Module combinable', ci.body = 'Activez Win@Tresorerie dans votre environnement Win@ERP et combinez-le avec les autres modules de la meme solution selon vos besoins de gestion et de pilotage.', ci.icon = 'puzzle'
WHERE m.slug = 'win-tresorerie' AND ci.owner_type = 'module' AND ci.item_type = 'benefit' AND ci.sort_order = 4;

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'faq', 'A qui s adresse Win@Tresorerie ?', 'Win@Tresorerie s adresse aux entreprises qui souhaitent mieux suivre leur tresorerie, leurs echeances et les flux utiles au pilotage financier dans le prolongement de Win@ERP.', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tresorerie'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'faq' AND ci.sort_order = 1);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'faq', 'Peut-on preparer des exports bancaires ?', 'Oui. Le module peut accompagner la preparation d exports et d echanges bancaires selon votre organisation, notamment avec des outils comme Suite Entreprise.', 2, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tresorerie'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'faq' AND ci.sort_order = 2);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'faq', 'Le module remplace-t-il votre outil bancaire ?', 'Non. Win@Tresorerie reste dans le socle Win@ERP pour organiser le suivi et les echanges utiles avec vos outils externes.', 3, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tresorerie'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'faq' AND ci.sort_order = 3);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'faq', 'Peut-on le deployer progressivement ?', 'Oui. Win@Tresorerie peut etre active comme brique complementaire dans votre environnement Win@ERP et evoluer selon vos priorites de pilotage.', 4, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tresorerie'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'faq' AND ci.sort_order = 4);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'faq', 'Win@Tresorerie peut-il etre combine avec d autres modules Win@ERP ?', 'Oui. Win@Tresorerie s integre dans l environnement Win@ERP et peut etre utilise avec les autres modules de la meme solution selon votre organisation.', 5, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tresorerie'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'faq' AND ci.sort_order = 5);

UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'A qui s adresse Win@Tresorerie ?', ci.body = 'Win@Tresorerie s adresse aux entreprises qui souhaitent mieux suivre leur tresorerie, leurs echeances et les flux utiles au pilotage financier dans le prolongement de Win@ERP.'
WHERE m.slug = 'win-tresorerie' AND ci.owner_type = 'module' AND ci.item_type = 'faq' AND ci.sort_order = 1;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Peut-on preparer des exports bancaires ?', ci.body = 'Oui. Le module peut accompagner la preparation d exports et d echanges bancaires selon votre organisation, notamment avec des outils comme Suite Entreprise.'
WHERE m.slug = 'win-tresorerie' AND ci.owner_type = 'module' AND ci.item_type = 'faq' AND ci.sort_order = 2;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Le module remplace-t-il votre outil bancaire ?', ci.body = 'Non. Win@Tresorerie reste dans le socle Win@ERP pour organiser le suivi et les echanges utiles avec vos outils externes.'
WHERE m.slug = 'win-tresorerie' AND ci.owner_type = 'module' AND ci.item_type = 'faq' AND ci.sort_order = 3;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Peut-on le deployer progressivement ?', ci.body = 'Oui. Win@Tresorerie peut etre active comme brique complementaire dans votre environnement Win@ERP et evoluer selon vos priorites de pilotage.'
WHERE m.slug = 'win-tresorerie' AND ci.owner_type = 'module' AND ci.item_type = 'faq' AND ci.sort_order = 4;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Win@Tresorerie peut-il etre combine avec d autres modules Win@ERP ?', ci.body = 'Oui. Win@Tresorerie s integre dans l environnement Win@ERP et peut etre utilise avec les autres modules de la meme solution selon votre organisation.'
WHERE m.slug = 'win-tresorerie' AND ci.owner_type = 'module' AND ci.item_type = 'faq' AND ci.sort_order = 5;

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'final_cta', 'Poursuivre avec Win@Tresorerie', '{"eyebrow":"CTA final","body":"Parlons de votre organisation financiere, de vos besoins de suivi et de vos echanges bancaires pour verifier comment Win@Tresorerie peut s integrer a votre environnement.","cta_label":"Demander une demonstration","cta_url":"/demo/","secondary_cta_label":"Decouvrir les modules Win@ERP","secondary_cta_url":"/catalogue/modules/?product=win-erp"}', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tresorerie'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'final_cta');

UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Poursuivre avec Win@Tresorerie',
    ci.body = '{"eyebrow":"CTA final","body":"Parlons de votre organisation financiere, de vos besoins de suivi et de vos echanges bancaires pour verifier comment Win@Tresorerie peut s integrer a votre environnement.","cta_label":"Demander une demonstration","cta_url":"/demo/","secondary_cta_label":"Decouvrir les modules Win@ERP","secondary_cta_url":"/catalogue/modules/?product=win-erp"}'
WHERE m.slug = 'win-tresorerie' AND ci.owner_type = 'module' AND ci.item_type = 'final_cta';

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'environment_modules_block', 'Composez votre environnement Win@ERP', '{"body":"Associez Win@Tresorerie aux autres modules Win@ERP afin de construire un environnement de gestion et de pilotage adapte a votre organisation.","limit":6}', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tresorerie'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'environment_modules_block');

UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Composez votre environnement Win@ERP',
    ci.body = '{"body":"Associez Win@Tresorerie aux autres modules Win@ERP afin de construire un environnement de gestion et de pilotage adapte a votre organisation.","limit":6}'
WHERE m.slug = 'win-tresorerie' AND ci.owner_type = 'module' AND ci.item_type = 'environment_modules_block';

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'feature', 'Usage mobile terrain', 'Acces mobile aux informations utiles pour les acteurs terrain selon les usages definis dans votre environnement.', 'smartphone', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tablette'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'feature' AND ci.sort_order = 1);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'feature', 'Echanges avec les utilisateurs', 'Circulation plus simple des informations entre exploitation, clients, chauffeurs et techniciens.', 'users', 2, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tablette'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'feature' AND ci.sort_order = 2);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'feature', 'Remontees d informations', 'Transmission d informations terrain utiles au suivi, a la coordination et au traitement administratif.', 'file-text', 3, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tablette'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'feature' AND ci.sort_order = 3);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'feature', 'Validations terrain', 'Validation des etapes et statuts utiles au bon enchainement des traitements dans votre organisation.', 'circle-check-big', 4, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tablette'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'feature' AND ci.sort_order = 4);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'feature', 'Synchronisation avec Win@ERP', 'Les echanges utiles peuvent etre relies au socle de gestion pour limiter les ruptures d information.', 'workflow', 5, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tablette'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'feature' AND ci.sort_order = 5);

UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Usage mobile terrain', ci.body = 'Acces mobile aux informations utiles pour les acteurs terrain selon les usages definis dans votre environnement.', ci.icon = 'smartphone'
WHERE m.slug = 'win-tablette' AND ci.owner_type = 'module' AND ci.item_type = 'feature' AND ci.sort_order = 1;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Echanges avec les utilisateurs', ci.body = 'Circulation plus simple des informations entre exploitation, clients, chauffeurs et techniciens.', ci.icon = 'users'
WHERE m.slug = 'win-tablette' AND ci.owner_type = 'module' AND ci.item_type = 'feature' AND ci.sort_order = 2;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Remontees d informations', ci.body = 'Transmission d informations terrain utiles au suivi, a la coordination et au traitement administratif.', ci.icon = 'file-text'
WHERE m.slug = 'win-tablette' AND ci.owner_type = 'module' AND ci.item_type = 'feature' AND ci.sort_order = 3;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Validations terrain', ci.body = 'Validation des etapes et statuts utiles au bon enchainement des traitements dans votre organisation.', ci.icon = 'circle-check-big'
WHERE m.slug = 'win-tablette' AND ci.owner_type = 'module' AND ci.item_type = 'feature' AND ci.sort_order = 4;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Synchronisation avec Win@ERP', ci.body = 'Les echanges utiles peuvent etre relies au socle de gestion pour limiter les ruptures d information.', ci.icon = 'workflow'
WHERE m.slug = 'win-tablette' AND ci.owner_type = 'module' AND ci.item_type = 'feature' AND ci.sort_order = 5;

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'benefit', 'Plus de reactivite', 'Les informations circulent plus vite entre le terrain et l exploitation, ce qui aide a mieux suivre l activite.', 'route', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tablette'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'benefit' AND ci.sort_order = 1);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'benefit', 'Moins de ressaisie', 'Les remontees terrain peuvent etre mieux integrees a la gestion et limiter les doubles traitements.', 'workflow', 2, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tablette'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'benefit' AND ci.sort_order = 2);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'benefit', 'Meilleure circulation de l information', 'Les utilisateurs partagent plus facilement les elements utiles avec les clients, chauffeurs et techniciens concernes.', 'users', 3, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tablette'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'benefit' AND ci.sort_order = 3);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'benefit', 'Module combinable', 'Activez Win@Tablette dans votre environnement Win@ERP et combinez-le avec les autres modules de la meme solution selon vos usages mobiles.', 'puzzle', 4, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-tablette'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'benefit' AND ci.sort_order = 4);

UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Plus de reactivite', ci.body = 'Les informations circulent plus vite entre le terrain et l exploitation, ce qui aide a mieux suivre l activite.', ci.icon = 'route'
WHERE m.slug = 'win-tablette' AND ci.owner_type = 'module' AND ci.item_type = 'benefit' AND ci.sort_order = 1;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Moins de ressaisie', ci.body = 'Les remontees terrain peuvent etre mieux integrees a la gestion et limiter les doubles traitements.', ci.icon = 'workflow'
WHERE m.slug = 'win-tablette' AND ci.owner_type = 'module' AND ci.item_type = 'benefit' AND ci.sort_order = 2;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Meilleure circulation de l information', ci.body = 'Les utilisateurs partagent plus facilement les elements utiles avec les clients, chauffeurs et techniciens concernes.', ci.icon = 'users'
WHERE m.slug = 'win-tablette' AND ci.owner_type = 'module' AND ci.item_type = 'benefit' AND ci.sort_order = 3;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Module combinable', ci.body = 'Activez Win@Tablette dans votre environnement Win@ERP et combinez-le avec les autres modules de la meme solution selon vos usages mobiles.', ci.icon = 'puzzle'
WHERE m.slug = 'win-tablette' AND ci.owner_type = 'module' AND ci.item_type = 'benefit' AND ci.sort_order = 4;

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'faq', 'A qui s adresse Win@Tablette ?', 'Win@Tablette s adresse aux organisations qui veulent faire circuler les informations entre le terrain et la gestion de maniere plus directe.', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-tablette'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'faq' AND ci.sort_order = 1);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'faq', 'Le module concerne-t-il uniquement les chauffeurs ?', 'Non. Win@Tablette peut aussi concerner les clients, techniciens et autres utilisateurs terrain selon les usages definis dans votre organisation.', 2, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-tablette'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'faq' AND ci.sort_order = 2);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'faq', 'Peut-on l adapter a differents usages terrain ?', 'Oui. Le module peut etre cadre selon les profils concernes, les informations utiles et les validations attendues dans votre environnement.', 3, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-tablette'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'faq' AND ci.sort_order = 3);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'faq', 'Win@Tablette remplace-t-il le socle de gestion ?', 'Non. Win@Tablette reste une brique fonctionnelle reliee a Win@ERP pour prolonger la gestion sur le terrain.', 4, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-tablette'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'faq' AND ci.sort_order = 4);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'faq', 'Win@Tablette peut-il etre combine avec d autres modules Win@ERP ?', 'Oui. Win@Tablette s integre dans l environnement Win@ERP et peut etre utilise avec les autres modules de la meme solution selon vos usages mobiles.', 5, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-tablette'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'faq' AND ci.sort_order = 5);

UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'A qui s adresse Win@Tablette ?', ci.body = 'Win@Tablette s adresse aux organisations qui veulent faire circuler les informations entre le terrain et la gestion de maniere plus directe.'
WHERE m.slug = 'win-tablette' AND ci.owner_type = 'module' AND ci.item_type = 'faq' AND ci.sort_order = 1;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Le module concerne-t-il uniquement les chauffeurs ?', ci.body = 'Non. Win@Tablette peut aussi concerner les clients, techniciens et autres utilisateurs terrain selon les usages definis dans votre organisation.'
WHERE m.slug = 'win-tablette' AND ci.owner_type = 'module' AND ci.item_type = 'faq' AND ci.sort_order = 2;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Peut-on l adapter a differents usages terrain ?', ci.body = 'Oui. Le module peut etre cadre selon les profils concernes, les informations utiles et les validations attendues dans votre environnement.'
WHERE m.slug = 'win-tablette' AND ci.owner_type = 'module' AND ci.item_type = 'faq' AND ci.sort_order = 3;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Win@Tablette remplace-t-il le socle de gestion ?', ci.body = 'Non. Win@Tablette reste une brique fonctionnelle reliee a Win@ERP pour prolonger la gestion sur le terrain.'
WHERE m.slug = 'win-tablette' AND ci.owner_type = 'module' AND ci.item_type = 'faq' AND ci.sort_order = 4;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Win@Tablette peut-il etre combine avec d autres modules Win@ERP ?', ci.body = 'Oui. Win@Tablette s integre dans l environnement Win@ERP et peut etre utilise avec les autres modules de la meme solution selon vos usages mobiles.'
WHERE m.slug = 'win-tablette' AND ci.owner_type = 'module' AND ci.item_type = 'faq' AND ci.sort_order = 5;

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'final_cta', 'Poursuivre avec Win@Tablette', '{"eyebrow":"CTA final","body":"Parlons de vos usages mobiles, de vos echanges terrain et des profils a equiper pour verifier comment Win@Tablette peut s integrer a votre environnement.","cta_label":"Demander une demonstration","cta_url":"/demo/","secondary_cta_label":"Decouvrir les modules Win@ERP","secondary_cta_url":"/catalogue/modules/?product=win-erp"}', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-tablette'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'final_cta');
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Poursuivre avec Win@Tablette',
    ci.body = '{"eyebrow":"CTA final","body":"Parlons de vos usages mobiles, de vos echanges terrain et des profils a equiper pour verifier comment Win@Tablette peut s integrer a votre environnement.","cta_label":"Demander une demonstration","cta_url":"/demo/","secondary_cta_label":"Decouvrir les modules Win@ERP","secondary_cta_url":"/catalogue/modules/?product=win-erp"}'
WHERE m.slug = 'win-tablette' AND ci.owner_type = 'module' AND ci.item_type = 'final_cta';
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'environment_modules_block', 'Composez votre environnement Win@ERP', '{"body":"Associez Win@Tablette aux autres modules Win@ERP afin de prolonger vos usages sur le terrain et de fluidifier les echanges entre acteurs.","limit":6}', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-tablette'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'environment_modules_block');
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Composez votre environnement Win@ERP',
    ci.body = '{"body":"Associez Win@Tablette aux autres modules Win@ERP afin de prolonger vos usages sur le terrain et de fluidifier les echanges entre acteurs.","limit":6}'
WHERE m.slug = 'win-tablette' AND ci.owner_type = 'module' AND ci.item_type = 'environment_modules_block';

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'feature', 'Actions commerciales', 'Structuration des actions a mener, a lancer ou a suivre dans votre organisation commerciale.', 'megaphone', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-marketing'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'feature' AND ci.sort_order = 1);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'feature', 'Suivi des contacts', 'Lecture partagee des interactions et initiatives menees avec vos interlocuteurs commerciaux.', 'users', 2, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-marketing'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'feature' AND ci.sort_order = 2);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'feature', 'Relances et priorites', 'Organisation des relances et des actions prioritaires pour mieux piloter l activite commerciale.', 'target', 3, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-marketing'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'feature' AND ci.sort_order = 3);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'feature', 'Pilotage des actions', 'Conservation d une lecture plus claire des actions menees et de leur progression dans le temps.', 'chart-column', 4, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-marketing'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'feature' AND ci.sort_order = 4);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'feature', 'Historique partage', 'Les actions et leurs suites restent relues dans un environnement commun avec le reste de la gestion.', 'file-text', 5, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m
WHERE m.slug = 'win-marketing'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'feature' AND ci.sort_order = 5);

UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Actions commerciales', ci.body = 'Structuration des actions a mener, a lancer ou a suivre dans votre organisation commerciale.', ci.icon = 'megaphone'
WHERE m.slug = 'win-marketing' AND ci.owner_type = 'module' AND ci.item_type = 'feature' AND ci.sort_order = 1;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Suivi des contacts', ci.body = 'Lecture partagee des interactions et initiatives menees avec vos interlocuteurs commerciaux.', ci.icon = 'users'
WHERE m.slug = 'win-marketing' AND ci.owner_type = 'module' AND ci.item_type = 'feature' AND ci.sort_order = 2;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Relances et priorites', ci.body = 'Organisation des relances et des actions prioritaires pour mieux piloter l activite commerciale.', ci.icon = 'target'
WHERE m.slug = 'win-marketing' AND ci.owner_type = 'module' AND ci.item_type = 'feature' AND ci.sort_order = 3;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Pilotage des actions', ci.body = 'Conservation d une lecture plus claire des actions menees et de leur progression dans le temps.', ci.icon = 'chart-column'
WHERE m.slug = 'win-marketing' AND ci.owner_type = 'module' AND ci.item_type = 'feature' AND ci.sort_order = 4;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Historique partage', ci.body = 'Les actions et leurs suites restent relues dans un environnement commun avec le reste de la gestion.', ci.icon = 'file-text'
WHERE m.slug = 'win-marketing' AND ci.owner_type = 'module' AND ci.item_type = 'feature' AND ci.sort_order = 5;

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'benefit', 'Pilotage commercial plus lisible', 'Les actions menees et leurs suites deviennent plus faciles a suivre dans la duree.', 'target', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-marketing'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'benefit' AND ci.sort_order = 1);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'benefit', 'Coordination commerciale', 'Les equipes disposent d un point de suivi commun pour mieux partager les priorites et l historique d action.', 'users', 2, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-marketing'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'benefit' AND ci.sort_order = 2);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'benefit', 'Continuite entre action et gestion', 'L action commerciale reste reliee au socle Win@ERP et s inscrit plus facilement dans la vie quotidienne de l entreprise.', 'workflow', 3, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-marketing'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'benefit' AND ci.sort_order = 3);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'benefit', 'Module combinable', 'Activez Win@Marketing dans votre environnement Win@ERP et combinez-le avec les autres modules de la meme solution selon votre organisation commerciale.', 'puzzle', 4, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-marketing'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'benefit' AND ci.sort_order = 4);

UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Pilotage commercial plus lisible', ci.body = 'Les actions menees et leurs suites deviennent plus faciles a suivre dans la duree.', ci.icon = 'target'
WHERE m.slug = 'win-marketing' AND ci.owner_type = 'module' AND ci.item_type = 'benefit' AND ci.sort_order = 1;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Coordination commerciale', ci.body = 'Les equipes disposent d un point de suivi commun pour mieux partager les priorites et l historique d action.', ci.icon = 'users'
WHERE m.slug = 'win-marketing' AND ci.owner_type = 'module' AND ci.item_type = 'benefit' AND ci.sort_order = 2;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Continuite entre action et gestion', ci.body = 'L action commerciale reste reliee au socle Win@ERP et s inscrit plus facilement dans la vie quotidienne de l entreprise.', ci.icon = 'workflow'
WHERE m.slug = 'win-marketing' AND ci.owner_type = 'module' AND ci.item_type = 'benefit' AND ci.sort_order = 3;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Module combinable', ci.body = 'Activez Win@Marketing dans votre environnement Win@ERP et combinez-le avec les autres modules de la meme solution selon votre organisation commerciale.', ci.icon = 'puzzle'
WHERE m.slug = 'win-marketing' AND ci.owner_type = 'module' AND ci.item_type = 'benefit' AND ci.sort_order = 4;

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'faq', 'A qui s adresse Win@Marketing ?', 'Win@Marketing s adresse aux entreprises qui veulent structurer leurs actions commerciales et garder une meilleure lecture de leur animation commerciale.', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-marketing'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'faq' AND ci.sort_order = 1);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'faq', 'Le module remplace-t-il un CRM complet ?', 'Non. Win@Marketing reste une brique fonctionnelle dans Win@ERP pour structurer le suivi des actions et relances selon votre organisation.', 2, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-marketing'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'faq' AND ci.sort_order = 2);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'faq', 'Peut-on suivre des relances et campagnes ?', 'Oui. Le module permet de structurer les actions, relances et initiatives commerciales utiles a votre organisation.', 3, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-marketing'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'faq' AND ci.sort_order = 3);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'faq', 'Peut-on le deployer progressivement ?', 'Oui. Win@Marketing peut etre mis en place comme brique complementaire puis enrichi selon les usages retenus par vos equipes.', 4, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-marketing'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'faq' AND ci.sort_order = 4);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'faq', 'Win@Marketing peut-il etre combine avec d autres modules Win@ERP ?', 'Oui. Win@Marketing s integre dans l environnement Win@ERP et peut etre utilise avec les autres modules de la meme solution selon votre organisation commerciale.', 5, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-marketing'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'faq' AND ci.sort_order = 5);

UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'A qui s adresse Win@Marketing ?', ci.body = 'Win@Marketing s adresse aux entreprises qui veulent structurer leurs actions commerciales et garder une meilleure lecture de leur animation commerciale.'
WHERE m.slug = 'win-marketing' AND ci.owner_type = 'module' AND ci.item_type = 'faq' AND ci.sort_order = 1;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Le module remplace-t-il un CRM complet ?', ci.body = 'Non. Win@Marketing reste une brique fonctionnelle dans Win@ERP pour structurer le suivi des actions et relances selon votre organisation.'
WHERE m.slug = 'win-marketing' AND ci.owner_type = 'module' AND ci.item_type = 'faq' AND ci.sort_order = 2;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Peut-on suivre des relances et campagnes ?', ci.body = 'Oui. Le module permet de structurer les actions, relances et initiatives commerciales utiles a votre organisation.'
WHERE m.slug = 'win-marketing' AND ci.owner_type = 'module' AND ci.item_type = 'faq' AND ci.sort_order = 3;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Peut-on le deployer progressivement ?', ci.body = 'Oui. Win@Marketing peut etre mis en place comme brique complementaire puis enrichi selon les usages retenus par vos equipes.'
WHERE m.slug = 'win-marketing' AND ci.owner_type = 'module' AND ci.item_type = 'faq' AND ci.sort_order = 4;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Win@Marketing peut-il etre combine avec d autres modules Win@ERP ?', ci.body = 'Oui. Win@Marketing s integre dans l environnement Win@ERP et peut etre utilise avec les autres modules de la meme solution selon votre organisation commerciale.'
WHERE m.slug = 'win-marketing' AND ci.owner_type = 'module' AND ci.item_type = 'faq' AND ci.sort_order = 5;

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'final_cta', 'Poursuivre avec Win@Marketing', '{"eyebrow":"CTA final","body":"Parlons de vos actions commerciales, de vos relances et de l organisation de vos equipes pour verifier comment Win@Marketing peut s integrer a votre environnement.","cta_label":"Demander une demonstration","cta_url":"/demo/","secondary_cta_label":"Decouvrir les modules Win@ERP","secondary_cta_url":"/catalogue/modules/?product=win-erp"}', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-marketing'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'final_cta');
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Poursuivre avec Win@Marketing',
    ci.body = '{"eyebrow":"CTA final","body":"Parlons de vos actions commerciales, de vos relances et de l organisation de vos equipes pour verifier comment Win@Marketing peut s integrer a votre environnement.","cta_label":"Demander une demonstration","cta_url":"/demo/","secondary_cta_label":"Decouvrir les modules Win@ERP","secondary_cta_url":"/catalogue/modules/?product=win-erp"}'
WHERE m.slug = 'win-marketing' AND ci.owner_type = 'module' AND ci.item_type = 'final_cta';
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'environment_modules_block', 'Composez votre environnement Win@ERP', '{"body":"Associez Win@Marketing aux autres modules Win@ERP afin de relier vos actions commerciales, votre suivi client et votre gestion quotidienne.","limit":6}', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-marketing'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'environment_modules_block');
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Composez votre environnement Win@ERP',
    ci.body = '{"body":"Associez Win@Marketing aux autres modules Win@ERP afin de relier vos actions commerciales, votre suivi client et votre gestion quotidienne.","limit":6}'
WHERE m.slug = 'win-marketing' AND ci.owner_type = 'module' AND ci.item_type = 'environment_modules_block';

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'feature', 'Espaces par profil', 'Organisation d espaces et de services differencies selon les clients, chauffeurs ou sous-traitants concernes.', 'users', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-portail'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'feature' AND ci.sort_order = 1);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'feature', 'Documents et informations partages', 'Mise a disposition plus structuree des documents et informations utiles a vos interlocuteurs externes.', 'file-text', 2, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-portail'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'feature' AND ci.sort_order = 2);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'feature', 'Demandes et validations', 'Cadre de travail pour les demandes, retours et validations utiles au bon enchainement des traitements.', 'circle-check-big', 3, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-portail'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'feature' AND ci.sort_order = 3);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'feature', 'Services et assistance', 'Mise a disposition de services utiles et de points de contact mieux structures pour vos publics externes.', 'headset', 4, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-portail'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'feature' AND ci.sort_order = 4);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'feature', 'Lien avec Win@ERP', 'Les echanges et informations utiles restent relies au socle de gestion et a vos processus internes.', 'workflow', 5, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-portail'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'feature' AND ci.sort_order = 5);

UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Espaces par profil', ci.body = 'Organisation d espaces et de services differencies selon les clients, chauffeurs ou sous-traitants concernes.', ci.icon = 'users'
WHERE m.slug = 'win-portail' AND ci.owner_type = 'module' AND ci.item_type = 'feature' AND ci.sort_order = 1;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Documents et informations partages', ci.body = 'Mise a disposition plus structuree des documents et informations utiles a vos interlocuteurs externes.', ci.icon = 'file-text'
WHERE m.slug = 'win-portail' AND ci.owner_type = 'module' AND ci.item_type = 'feature' AND ci.sort_order = 2;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Demandes et validations', ci.body = 'Cadre de travail pour les demandes, retours et validations utiles au bon enchainement des traitements.', ci.icon = 'circle-check-big'
WHERE m.slug = 'win-portail' AND ci.owner_type = 'module' AND ci.item_type = 'feature' AND ci.sort_order = 3;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Services et assistance', ci.body = 'Mise a disposition de services utiles et de points de contact mieux structures pour vos publics externes.', ci.icon = 'headset'
WHERE m.slug = 'win-portail' AND ci.owner_type = 'module' AND ci.item_type = 'feature' AND ci.sort_order = 4;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Lien avec Win@ERP', ci.body = 'Les echanges et informations utiles restent relies au socle de gestion et a vos processus internes.', ci.icon = 'workflow'
WHERE m.slug = 'win-portail' AND ci.owner_type = 'module' AND ci.item_type = 'feature' AND ci.sort_order = 5;

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'benefit', 'Relation plus fluide', 'Les echanges avec les interlocuteurs externes gagnent en lisibilite et en continuite.', 'users', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-portail'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'benefit' AND ci.sort_order = 1);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'benefit', 'Moins de diffusion dispersee', 'Les documents et informations utiles peuvent etre centralises dans un espace dedie plutot que diffuses sur des canaux multiples.', 'file-text', 2, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-portail'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'benefit' AND ci.sort_order = 2);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'benefit', 'Echanges mieux cadres', 'Les interactions utiles peuvent etre organisees dans un cadre plus propre et mieux relie a la gestion.', 'shield-check', 3, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-portail'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'benefit' AND ci.sort_order = 3);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, icon, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'benefit', 'Module combinable', 'Activez Win@Portail dans votre environnement Win@ERP et combinez-le avec les autres modules de la meme solution selon les services que vous souhaitez proposer.', 'puzzle', 4, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-portail'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'benefit' AND ci.sort_order = 4);

UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Relation plus fluide', ci.body = 'Les echanges avec les interlocuteurs externes gagnent en lisibilite et en continuite.', ci.icon = 'users'
WHERE m.slug = 'win-portail' AND ci.owner_type = 'module' AND ci.item_type = 'benefit' AND ci.sort_order = 1;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Moins de diffusion dispersee', ci.body = 'Les documents et informations utiles peuvent etre centralises dans un espace dedie plutot que diffuses sur des canaux multiples.', ci.icon = 'file-text'
WHERE m.slug = 'win-portail' AND ci.owner_type = 'module' AND ci.item_type = 'benefit' AND ci.sort_order = 2;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Echanges mieux cadres', ci.body = 'Les interactions utiles peuvent etre organisees dans un cadre plus propre et mieux relie a la gestion.', ci.icon = 'shield-check'
WHERE m.slug = 'win-portail' AND ci.owner_type = 'module' AND ci.item_type = 'benefit' AND ci.sort_order = 3;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Module combinable', ci.body = 'Activez Win@Portail dans votre environnement Win@ERP et combinez-le avec les autres modules de la meme solution selon les services que vous souhaitez proposer.', ci.icon = 'puzzle'
WHERE m.slug = 'win-portail' AND ci.owner_type = 'module' AND ci.item_type = 'benefit' AND ci.sort_order = 4;

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'faq', 'A qui s adresse Win@Portail ?', 'Win@Portail s adresse aux organisations qui souhaitent proposer un espace de services et d echanges a leurs clients, chauffeurs ou sous-traitants.', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-portail'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'faq' AND ci.sort_order = 1);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'faq', 'Le portail est-il reserve aux clients ?', 'Non. Le portail peut aussi concerner des chauffeurs, sous-traitants transporteurs ou autres interlocuteurs externes selon votre organisation.', 2, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-portail'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'faq' AND ci.sort_order = 2);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'faq', 'Peut-on y partager des documents et services ?', 'Oui. Win@Portail permet de cadrer la mise a disposition de documents, d informations et de services selon les profils concernes.', 3, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-portail'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'faq' AND ci.sort_order = 3);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'faq', 'Win@Portail remplace-t-il le socle de gestion ?', 'Non. Win@Portail reste une brique fonctionnelle reliee a Win@ERP pour prolonger la gestion vers vos publics externes.', 4, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-portail'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'faq' AND ci.sort_order = 4);
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'faq', 'Win@Portail peut-il etre combine avec d autres modules Win@ERP ?', 'Oui. Win@Portail s integre dans l environnement Win@ERP et peut etre utilise avec les autres modules de la meme solution selon les services que vous souhaitez proposer.', 5, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-portail'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'faq' AND ci.sort_order = 5);

UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'A qui s adresse Win@Portail ?', ci.body = 'Win@Portail s adresse aux organisations qui souhaitent proposer un espace de services et d echanges a leurs clients, chauffeurs ou sous-traitants.'
WHERE m.slug = 'win-portail' AND ci.owner_type = 'module' AND ci.item_type = 'faq' AND ci.sort_order = 1;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Le portail est-il reserve aux clients ?', ci.body = 'Non. Le portail peut aussi concerner des chauffeurs, sous-traitants transporteurs ou autres interlocuteurs externes selon votre organisation.'
WHERE m.slug = 'win-portail' AND ci.owner_type = 'module' AND ci.item_type = 'faq' AND ci.sort_order = 2;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Peut-on y partager des documents et services ?', ci.body = 'Oui. Win@Portail permet de cadrer la mise a disposition de documents, d informations et de services selon les profils concernes.'
WHERE m.slug = 'win-portail' AND ci.owner_type = 'module' AND ci.item_type = 'faq' AND ci.sort_order = 3;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Win@Portail remplace-t-il le socle de gestion ?', ci.body = 'Non. Win@Portail reste une brique fonctionnelle reliee a Win@ERP pour prolonger la gestion vers vos publics externes.'
WHERE m.slug = 'win-portail' AND ci.owner_type = 'module' AND ci.item_type = 'faq' AND ci.sort_order = 4;
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Win@Portail peut-il etre combine avec d autres modules Win@ERP ?', ci.body = 'Oui. Win@Portail s integre dans l environnement Win@ERP et peut etre utilise avec les autres modules de la meme solution selon les services que vous souhaitez proposer.'
WHERE m.slug = 'win-portail' AND ci.owner_type = 'module' AND ci.item_type = 'faq' AND ci.sort_order = 5;

INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'final_cta', 'Poursuivre avec Win@Portail', '{"eyebrow":"CTA final","body":"Parlons des services, informations et profils que vous souhaitez ouvrir a vos publics externes pour verifier comment Win@Portail peut s integrer a votre environnement.","cta_label":"Demander une demonstration","cta_url":"/demo/","secondary_cta_label":"Decouvrir les modules Win@ERP","secondary_cta_url":"/catalogue/modules/?product=win-erp"}', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-portail'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'final_cta');
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Poursuivre avec Win@Portail',
    ci.body = '{"eyebrow":"CTA final","body":"Parlons des services, informations et profils que vous souhaitez ouvrir a vos publics externes pour verifier comment Win@Portail peut s integrer a votre environnement.","cta_label":"Demander une demonstration","cta_url":"/demo/","secondary_cta_label":"Decouvrir les modules Win@ERP","secondary_cta_url":"/catalogue/modules/?product=win-erp"}'
WHERE m.slug = 'win-portail' AND ci.owner_type = 'module' AND ci.item_type = 'final_cta';
INSERT INTO content_items (owner_type, owner_id, item_type, title, body, sort_order, is_active, created_at, updated_at)
SELECT 'module', m.id, 'environment_modules_block', 'Composez votre environnement Win@ERP', '{"body":"Associez Win@Portail aux autres modules Win@ERP afin de relier vos services, vos publics externes et votre gestion quotidienne.","limit":6}', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM modules m WHERE m.slug = 'win-portail'
  AND NOT EXISTS (SELECT 1 FROM content_items ci WHERE ci.owner_type = 'module' AND ci.owner_id = m.id AND ci.item_type = 'environment_modules_block');
UPDATE content_items ci JOIN modules m ON m.id = ci.owner_id
SET ci.title = 'Composez votre environnement Win@ERP',
    ci.body = '{"body":"Associez Win@Portail aux autres modules Win@ERP afin de relier vos services, vos publics externes et votre gestion quotidienne.","limit":6}'
WHERE m.slug = 'win-portail' AND ci.owner_type = 'module' AND ci.item_type = 'environment_modules_block';
