-- #migration 2026_07_08_058
-- objectif/checklist/mesure.questions pour C-041 à C-050

UPDATE card_guide SET checklist_json = '[{"id": "role_niveaux", "type": "boolean", "label": "Définir le rôle de chaque niveau", "detail": "Entrée (15-40€) pour faire connaissance à faible risque, cœur (40-120€) comme offre principale, premium au-dessus pour la valeur maximale."}, {"id": "repartir_creations", "type": "boolean", "label": "Répartir tes créations existantes", "detail": "Classe ce que tu produis déjà dans ces trois niveaux — s''il manque un niveau, c''est là que se trouve ta prochaine création à créer."}, {"id": "mettre_en_scene", "type": "boolean", "label": "Mettre en scène la progression", "detail": "Sur ton site et en boutique, présente les trois niveaux ensemble pour que le client visualise le chemin possible."}]', objectif_label = 'Structurer une gamme cohérente en 3 niveaux : entrée, cœur, premium.', objectif_metric_principale = 'part_ca_premium' WHERE card_id = 'C-041';
INSERT INTO card_guide_mesure_questions (card_id, metric, label, type, unit, cadence_jours, sort_order) VALUES
  ('C-041', 'part_ca_premium', 'Quel pourcentage de tes ventes vient du niveau premium ce mois-ci ?', 'number', '%', 30, 1);

UPDATE card_guide SET checklist_json = '[{"id": "axes_personnalisation", "type": "boolean", "label": "Définir les axes de personnalisation autorisés", "detail": "Limite la personnalisation à 3-4 axes maîtrisés (couleur, taille, gravure, finition) plutôt que de tout accepter."}, {"id": "grille_tarifaire", "type": "boolean", "label": "Construire une grille tarifaire claire", "detail": "Prix de base + suppléments par option, affichés ou communiqués systématiquement — le client doit pouvoir estimer seul."}, {"id": "acompte_delai", "type": "boolean", "label": "Sécuriser avec un acompte et un délai annoncé", "detail": "30 à 50% à la commande, solde à la livraison. Annonce un délai réaliste avec une marge de sécurité."}]', objectif_label = 'Cadrer clairement les commandes sur-mesure pour éviter les dérives de temps et de prix.', objectif_metric_principale = 'delai_traitement_sur_mesure' WHERE card_id = 'C-042';
INSERT INTO card_guide_mesure_questions (card_id, metric, label, type, unit, cadence_jours, sort_order) VALUES
  ('C-042', 'delai_traitement_sur_mesure', 'Quel est ton délai moyen de traitement d''une commande sur-mesure ce mois-ci (en jours) ?', 'number', NULL, 30, 1);

UPDATE card_guide SET checklist_json = '[{"id": "theme_taille_serie", "type": "boolean", "label": "Choisir un thème et une taille de série", "detail": "15 à 20 pièces numérotées maximum pour une vraie rareté, avec un thème cohérent avec ton univers."}, {"id": "communiquer_rarete", "type": "boolean", "label": "Communiquer la rareté de façon transparente", "detail": "Annonce le nombre exact de pièces et le numéro de chacune — la numérotation visible renforce la valeur perçue."}, {"id": "moment_lancement", "type": "boolean", "label": "Créer un moment de lancement", "detail": "Date de sortie annoncée à l''avance, accès prioritaire pour ta liste email ou tes clients fidèles, puis ouverture publique."}]', objectif_label = 'Lancer une édition limitée qui se vend rapidement grâce à une vraie rareté.', objectif_metric_principale = 'taux_vente_edition' WHERE card_id = 'C-043';
INSERT INTO card_guide_mesure_questions (card_id, metric, label, type, unit, cadence_jours, sort_order) VALUES
  ('C-043', 'taux_vente_edition', 'Quel pourcentage de la série s''est vendu dans la première semaine ?', 'number', '%', 30, 1);

UPDATE card_guide SET checklist_json = '[{"id": "cout_revient_reel", "type": "boolean", "label": "Calculer le coût de revient réel", "detail": "Matières premières + temps de production valorisé à un taux horaire minimum + frais fixes répartis."}, {"id": "benchmark_concurrentiel", "type": "boolean", "label": "Étudier le benchmark concurrentiel", "detail": "Regarde 5 à 10 artisans comparables (même niveau de qualité, même marché) pour situer une fourchette de prix réaliste."}, {"id": "positionner_valeur", "type": "boolean", "label": "Positionner selon la valeur perçue", "detail": "Le prix final intègre le coût de revient avec une marge cible (minimum x2 à x3), ajustée à ton positionnement."}]', objectif_label = 'Fixer tes prix selon une méthode structurée plutôt qu''à l''instinct.', objectif_metric_principale = 'marge_reelle' WHERE card_id = 'C-044';
INSERT INTO card_guide_mesure_questions (card_id, metric, label, type, unit, cadence_jours, sort_order) VALUES
  ('C-044', 'marge_reelle', 'Quelle est ta marge réelle moyenne ce mois-ci (%) ?', 'number', '%', 30, 1);

UPDATE card_guide SET checklist_json = '[{"id": "format_volume", "type": "boolean", "label": "Choisir un format simple à produire en volume", "detail": "Le produit d''appel doit pouvoir être réalisé rapidement et de façon répétable, sans sacrifier la qualité perçue."}, {"id": "prix_accessible", "type": "boolean", "label": "Fixer un prix accessible mais pas bradé", "detail": "Entre 15 et 40€ selon ton univers — le prix doit rester cohérent avec ton positionnement global."}, {"id": "pont_montee_gamme", "type": "boolean", "label": "Créer le pont vers la montée en gamme", "detail": "À chaque vente du produit d''appel, présente ou glisse une carte vers ta gamme principale."}]', objectif_label = 'Créer un produit d''appel qui amène vers ta gamme principale.', objectif_metric_principale = 'taux_montee_gamme' WHERE card_id = 'C-045';
INSERT INTO card_guide_mesure_questions (card_id, metric, label, type, unit, cadence_jours, sort_order) VALUES
  ('C-045', 'taux_montee_gamme', 'Combien d''acheteurs du produit d''appel ont ensuite acheté une pièce de gamme supérieure ce mois-ci ?', 'number', NULL, 30, 1);

UPDATE card_guide SET checklist_json = '[{"id": "format_adapte", "type": "boolean", "label": "Choisir le format adapté à ton activité", "detail": "Box mensuelle, accès prioritaire aux nouveautés, ou création en continu pour clients fidèles."}, {"id": "capacite_soutenable", "type": "boolean", "label": "Calculer la capacité de production soutenable", "detail": "Un abonnement engage ta régularité dans la durée — calcule précisément combien d''abonnés tu peux honorer sans t''épuiser."}, {"id": "prix_engagement", "type": "boolean", "label": "Fixer un prix qui couvre l''engagement", "detail": "Le prix doit intégrer une prime de fidélité pour toi tout en restant attractif pour l''abonné."}]', objectif_label = 'Mettre en place un revenu récurrent prévisible via un abonnement.', objectif_metric_principale = 'abonnes_actifs' WHERE card_id = 'C-046';
INSERT INTO card_guide_mesure_questions (card_id, metric, label, type, unit, cadence_jours, sort_order) VALUES
  ('C-046', 'abonnes_actifs', 'Combien d''abonnés actifs as-tu ce mois-ci ?', 'number', NULL, 30, 1);

UPDATE card_guide SET checklist_json = '[{"id": "conditions_gros", "type": "boolean", "label": "Définir les conditions de gros", "detail": "Remise grossiste de 40 à 50% sur le prix public habituellement pratiquée — calcule ta marge réelle à ce tarif."}, {"id": "minimum_commande", "type": "boolean", "label": "Fixer un minimum de commande", "detail": "Le minimum protège ta rentabilité — une petite commande B2B à fort temps de gestion peut coûter plus qu''elle ne rapporte."}, {"id": "documenter_delais", "type": "boolean", "label": "Documenter les délais et conditions de paiement", "detail": "Délai de production réaliste, conditions de paiement (acompte + solde, ou paiement à 30 jours selon ta trésorerie)."}]', objectif_label = 'Structurer une offre B2B rentable avec des conditions claires.', objectif_metric_principale = 'commandes_b2b' WHERE card_id = 'C-047';
INSERT INTO card_guide_mesure_questions (card_id, metric, label, type, unit, cadence_jours, sort_order) VALUES
  ('C-047', 'commandes_b2b', 'Combien de commandes B2B as-tu reçues ce mois-ci ?', 'number', NULL, 30, 1);

UPDATE card_guide SET checklist_json = '[{"id": "creation_prioritaire", "type": "boolean", "label": "Choisir une création représentative à documenter en premier", "detail": "Commence par ta pièce la plus vendue ou la plus représentative de ta méthode."}, {"id": "decomposer_etapes", "type": "boolean", "label": "Décomposer chaque étape avec ses points clés", "detail": "Matériaux exacts, temps par étape, gestes critiques, points de contrôle qualité, erreurs fréquentes à éviter."}, {"id": "stocker_organiser", "type": "boolean", "label": "Stocker et organiser la documentation", "detail": "Un dossier simple par création suffit — l''objectif n''est pas la perfection éditoriale mais l''utilité pratique."}]', objectif_label = 'Documenter ton savoir-faire pour pouvoir déléguer ou transmettre.', objectif_metric_principale = 'creations_documentees' WHERE card_id = 'C-048';
INSERT INTO card_guide_mesure_questions (card_id, metric, label, type, unit, cadence_jours, sort_order) VALUES
  ('C-048', 'creations_documentees', 'Combien de créations as-tu documentées ce mois-ci ?', 'number', NULL, 30, 1);

UPDATE card_guide SET checklist_json = '[{"id": "choisir_format", "type": "boolean", "label": "Choisir le format selon ta disponibilité et ton public", "detail": "Atelier ponctuel en présentiel, ou formation en ligne enregistrée (plus de travail initial, revenu passif ensuite)."}, {"id": "structurer_contenu", "type": "boolean", "label": "Structurer le contenu pédagogique", "detail": "Définis un objectif d''apprentissage clair et atteignable dans le temps imparti."}, {"id": "fixer_prix_valeur", "type": "boolean", "label": "Fixer le prix selon la valeur transmise", "detail": "Le prix se justifie par la transformation obtenue, pas seulement par le temps passé."}]', objectif_label = 'Transformer ton savoir-faire en revenu complémentaire via un atelier ou une formation.', objectif_metric_principale = 'revenu_ateliers' WHERE card_id = 'C-049';
INSERT INTO card_guide_mesure_questions (card_id, metric, label, type, unit, cadence_jours, sort_order) VALUES
  ('C-049', 'revenu_ateliers', 'Quel revenu as-tu généré via des ateliers ou formations ce mois-ci ?', 'number', '€', 30, 1);

UPDATE card_guide SET checklist_json = '[{"id": "groupe_restreint", "type": "boolean", "label": "Sélectionner un groupe restreint et engagé", "detail": "Tes abonnés email les plus actifs ou tes clients fidèles sont le public idéal — ils sont déjà en confiance."}, {"id": "presenter_test", "type": "boolean", "label": "Présenter l''offre comme un test assumé", "detail": "Sois transparent : « je teste cette nouvelle offre en avant-première avec vous, vos retours compteront »."}, {"id": "collecter_retours", "type": "boolean", "label": "Collecter et analyser les retours avant le lancement public", "detail": "Au-delà des ventes, demande ce qui a plu, ce qui a hésité, ce qui manquait, et ajuste avant l''ouverture publique."}]', objectif_label = 'Tester une nouvelle offre auprès d''un petit groupe avant un lancement public.', objectif_metric_principale = 'taux_conversion_test' WHERE card_id = 'C-050';
INSERT INTO card_guide_mesure_questions (card_id, metric, label, type, unit, cadence_jours, sort_order) VALUES
  ('C-050', 'taux_conversion_test', 'Quel pourcentage du groupe test a acheté ?', 'number', '%', 30, 1);
