Skip to content

Migration profil : colonnes users (bio…), tables user_anecdotes, anecdote_questions, user_featured_routes, seuils de certification dans settings #126

Closed

Description

@IlanAMG

Contexte

Epic : #6
Maquette : E-09, E-16 · validée le 2026-09-24
Modele-de-Donnees · Compte-et-Monetisation · API · E-09, E-16 · D-023
Le profil public, les anecdotes, les parcours à la une et le badge Créateur certifié (D-023) demandent de nouvelles colonnes et tables. #20, fermé, a posé le schéma initial des utilisateurs : ce ticket l'étend par une nouvelle migration, sans le rouvrir.

Comportement attendu

  • Colonnes users : bio (texte, 150 caractères au plus, facultative), neighborhood (texte, facultatif), is_certified (booléen, défaut false), certified_override (énuméré none, granted, revoked, défaut none), certified_at (timestamptz, nullable).
  • Table user_anecdotes : user_id, question_key, answer (150 caractères au plus), position (1 à 3) ; (user_id, position) et (user_id, question_key) uniques.
  • Table anecdote_questions : key, label, position, is_active ; huit questions actives au lancement, dans le seed.
  • Table user_featured_routes : user_id, route_id (parcours publié de l'utilisateur), position (1 à 3) ; (user_id, position) et (user_id, route_id) uniques ; la ligne disparaît quand le parcours n'est plus publié.
  • settings : seuils de certification certification.min_verified_routes (3), certification.min_rating (4,5), certification.min_completed_routes (3), et limite de création free.max_routes (1) ; lus par l'API au démarrage, rechargeables, sans déploiement.
  • Types et schémas Zod correspondants dans packages/shared.
  • users.is_public existe déjà sur main : D-025 le fait piloter par l'interrupteur « Profil public » des Réglages. Faux, les parcours affichent « Membre Widoo » sans lien ni sceau, et le profil est introuvable par lien.
  • Suppression du compte (D-025) : les parcours publiés restent avec un auteur anonymisé ; les anecdotes et les parcours à la une de l'utilisateur sont effacés (voir Aligner la suppression de compte sur D-025 et permettre la réinscription #128).

Critères d'acceptation

  • Nouvelle migration additive, sans toucher aux migrations existantes, appliquée sans erreur sur une base qui contient déjà des utilisateurs
  • Contraintes d'unicité et de bornes testées (position de 1 à 3, 150 caractères)
  • Le seed crée les huit questions d'anecdote actives
  • Les seuils se lisent dans settings et changent sans redéploiement
  • Types et schémas exportés par packages/shared
  • À la suppression d'un compte, ses anecdotes et ses parcours à la une disparaissent

Notes techniques

Activity

  1. added this to the v0.3 milestone on Sep 24, 2026
  2. added
    status:readySpec complète, prêt à coder
    and removed
    needs-designQuestion ou maquette à produire en mode DESIGN
    on Sep 24, 2026
  3. PaulThiberville commented on Oct 13, 2026

    @PaulThiberville
    Collaborator

    🔨 Démarrage — plan : une migration additive 0004 (colonnes users : contrainte de 150 caractères sur bio, neighborhood, is_certified, certified_override, certified_at ; tables anecdote_questions, user_anecdotes, user_featured_routes, en cascade sur users et routes), les huit questions de E-09 (D-026) insérées par la migration et reprises par le seed, les seuils de certification et free.max_routes lus dans settings avec relecture chaque minute, et les types et schémas Zod dans packages/shared. Branche issue/126-profile-migration, une seule PR, niveau 2.

  4. PaulThiberville commented on Oct 13, 2026

    @PaulThiberville
    Collaborator

    📋 Note MANAGER du 2026-10-13 : la mention de free.max_routes (1) dans la ligne settings du Comportement attendu, et dans les Notes techniques (« #66 (free.max_routes) »), est sans objet depuis D-073 : la création est gratuite et sans limite (Compte-et-Monetisation › Freemium). La PR #381 a raison de ne pas ajouter la clé. #66 est réaligné ; l'alignement des pages Modele-de-Donnees et API est confié à DESIGN dans #383.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions