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_compteouhttps://instagram.com/nom_compte - Exemple:
@patisserie_parisouhttps://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 :
- Une section "Solutions Meta" avec Instagram, Facebook et WhatsApp
- Une section séparée pour le site web
- Des placeholders indiquant le format attendu pour chaque champ
- Des icônes et couleurs spécifiques à chaque réseau
Notes
- Tous les champs sont optionnels
- Les valeurs vides sont stockées comme
NULLen base - Aucune validation stricte n'est appliquée côté base de données
- Les URLs peuvent être partielles (@compte) ou complètes (https://...)