Aller au contenu principal

Migration Base de Données - Réseaux Sociaux

Description

Cette migration ajoute la gestion des liens vers les réseaux sociaux de la vendeuse dans la table user_profiles. Ces liens seront affichés sur le calendrier en ligne partagé.

Solutions supportées : Meta (Instagram, Facebook, WhatsApp) + Site web personnel

Migration SQL

Étape 1 : Ajouter les colonnes pour les réseaux sociaux

-- Ajouter les colonnes pour les solutions Meta + site web dans la table user_profiles
ALTER TABLE user_profiles
ADD COLUMN IF NOT EXISTS social_media_instagram TEXT,
ADD COLUMN IF NOT EXISTS social_media_facebook TEXT,
ADD COLUMN IF NOT EXISTS social_media_whatsapp TEXT,
ADD COLUMN IF NOT EXISTS social_media_website TEXT;

Étape 2 : Ajouter des commentaires sur les colonnes (optionnel)

COMMENT ON COLUMN user_profiles.social_media_instagram IS 'Lien vers le compte Instagram (@compte ou URL complète)';
COMMENT ON COLUMN user_profiles.social_media_facebook IS 'Lien vers la page Facebook (URL complète)';
COMMENT ON COLUMN user_profiles.social_media_whatsapp IS 'Numéro WhatsApp avec indicatif (ex: +33612345678)';
COMMENT ON COLUMN user_profiles.social_media_website IS 'URL du site web personnel (ex: https://mon-site.com)';

Utilisation

Format des données attendues

Instagram (Meta)

  • Format: @nom_compte ou https://instagram.com/nom_compte
  • Exemple: @patisserie_paris ou https://instagram.com/patisserie_paris

Facebook (Meta)

  • Format: URL complète de la page
  • Exemple: https://facebook.com/patisserieparis

WhatsApp (Meta)

  • Format: Numéro avec indicatif international
  • Exemple: +33612345678
  • Sera utilisé pour créer un lien "Contacter sur WhatsApp"

Site Web

  • Format: URL complète avec protocole
  • Exemple: https://www.mon-site.com

Rollback (en cas d'erreur)

Si vous devez annuler cette migration :

-- Supprimer les colonnes ajoutées
ALTER TABLE user_profiles
DROP COLUMN IF EXISTS social_media_instagram,
DROP COLUMN IF EXISTS social_media_facebook,
DROP COLUMN IF EXISTS social_media_whatsapp,
DROP COLUMN IF EXISTS social_media_website;

Sécurité

Les colonnes sont de type TEXT et peuvent contenir des valeurs NULL (optionnelles). Aucune validation côté base de données n'est nécessaire car la validation est effectuée côté application Flutter.

Tests

Après avoir exécuté la migration, vous pouvez tester avec :

-- Exemple d'insertion de réseaux sociaux pour un utilisateur
UPDATE user_profiles
SET
social_media_instagram = '@patisserie_paris',
social_media_facebook = 'https://facebook.com/patisserieparis',
social_media_whatsapp = '+33612345678',
social_media_website = 'https://www.patisserie-paris.com'
WHERE user_id = 'votre-user-id';

-- Vérification
SELECT
user_id,
social_media_instagram,
social_media_facebook,
social_media_whatsapp,
social_media_website
FROM user_profiles
WHERE user_id = 'votre-user-id';

Affichage sur le calendrier partagé

Ces liens seront utilisés par la fonctionnalité de calendrier en ligne partagé pour afficher les réseaux sociaux de la vendeuse sur la page publique du calendrier.

Exemple d'affichage prévu

Section "Solutions Meta"

  • Instagram: Icône Instagram (rose #E1306C) avec lien vers le profil
  • Facebook: Icône Facebook (bleu #1877F2) avec lien vers la page
  • WhatsApp: Icône WhatsApp (vert #25D366) avec bouton "Contacter sur WhatsApp"

Section "Site web"

  • Site web: Icône globe avec lien vers le site

Les icônes seront affichées uniquement si le lien correspondant est renseigné.

Interface utilisateur

Dans l'application mobile, ces champs sont accessibles via : Paramètres > Profil > Réseaux sociaux

L'interface affiche :

  1. Une section "Solutions Meta" avec Instagram, Facebook et WhatsApp
  2. Une section séparée pour le site web
  3. Des placeholders indiquant le format attendu pour chaque champ
  4. Des icônes et couleurs spécifiques à chaque réseau

Notes

  • Tous les champs sont optionnels
  • Les valeurs vides sont stockées comme NULL en base
  • Aucune validation stricte n'est appliquée côté base de données
  • Les URLs peuvent être partielles (@compte) ou complètes (https://...)