CREATE TABLE IF NOT EXISTS web_communities (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  platform VARCHAR(40) NOT NULL,
  external_id VARCHAR(120) NULL,
  label VARCHAR(180) NOT NULL,
  public_url TEXT NOT NULL,
  language ENUM('fr','mixed','en','unknown') NOT NULL DEFAULT 'unknown',
  status ENUM('candidate','watch','excluded') NOT NULL DEFAULT 'candidate',
  verification_status ENUM('directory','public_page','audited') NOT NULL DEFAULT 'directory',
  visible_members INT UNSIGNED NULL,
  activity_score TINYINT UNSIGNED NOT NULL DEFAULT 0,
  coherence_score TINYINT UNSIGNED NOT NULL DEFAULT 50,
  values_score TINYINT UNSIGNED NOT NULL DEFAULT 50,
  priority_score TINYINT UNSIGNED NOT NULL DEFAULT 50,
  projects_json JSON NOT NULL,
  rationale TEXT NULL,
  warning TEXT NULL,
  last_public_activity_at DATETIME NULL,
  last_checked_at DATETIME NULL,
  created_at DATETIME NOT NULL,
  updated_at DATETIME NOT NULL,
  UNIQUE KEY platform_external(platform,external_id),
  INDEX(platform), INDEX(language), INDEX(status), INDEX(priority_score)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO web_communities (platform,external_id,label,public_url,language,status,verification_status,visible_members,activity_score,coherence_score,values_score,priority_score,projects_json,rationale,warning,last_public_activity_at,last_checked_at,created_at,updated_at) VALUES
('discord','956282800640778352','Rêve & Réalité','https://disboard.org/fr/server/956282800640778352','fr','watch','directory',35,55,86,84,78,'["Maison des Esprits","Grande Bibliothèque","Événements"]','Petite communauté francophone centrée sur la bienveillance, la réflexion, la découverte de soi et les échanges vocaux.','Le nombre affiché par l’annuaire ne prouve pas l’activité interne ; audit public à compléter.',UTC_TIMESTAMP(),UTC_TIMESTAMP(),UTC_TIMESTAMP(),UTC_TIMESTAMP()),
('discord','1535996850295930910','Zen & Toulouse','https://disboard.org/fr/server/1535996850295930910','fr','candidate','directory',0,20,82,78,58,'["Maison des Esprits","Événements"]','Communauté francophone locale autour de la pleine conscience, de la méditation et de rencontres toulousaines.','Serveur très récent, entrée sélective et activité non démontrée.',UTC_TIMESTAMP(),UTC_TIMESTAMP(),UTC_TIMESTAMP(),UTC_TIMESTAMP()),
('discord','986451655623061534','Asylum','https://disboard.org/fr/server/986451655623061534','fr','candidate','directory',16,30,58,55,45,'["Grande Bibliothèque"]','Serveur francophone récent mêlant bibliothèque, archives, spiritualité et métaphysique.','Positionnement encore flou et serveur trop récent pour conclure.',UTC_TIMESTAMP(),UTC_TIMESTAMP(),UTC_TIMESTAMP(),UTC_TIMESTAMP()),
('forum','mots-du-deuil','Les mots du deuil','https://motsdudeuil.fr/forum/','fr','watch','public_page',NULL,95,90,92,88,'["Maison des Esprits","Grande Bibliothèque"]','Communauté francophone d’entraide très active autour du deuil et des vécus personnels.','Source sensible : observation éditoriale uniquement, aucune prospection.',UTC_TIMESTAMP(),UTC_TIMESTAMP(),UTC_TIMESTAMP(),UTC_TIMESTAMP()),
('forum','paranormal-encyclopedie','Encyclopédie du paranormal','https://www.paranormal-encyclopedie.com/forum/','fr','watch','public_page',NULL,62,88,80,76,'["Maison des Esprits","Grande Bibliothèque"]','Forum francophone structuré autour des témoignages, dossiers et discussions sur le paranormal.','Activité plus lente qu’un réseau social, mais échanges plus durables.',UTC_TIMESTAMP(),UTC_TIMESTAMP(),UTC_TIMESTAMP(),UTC_TIMESTAMP()),
('network','gec-france','Groupe des Expérienceurs de la Conscience','https://gecfrance.com/annuaire-des-reseaux-sociaux/','fr','watch','public_page',NULL,70,95,88,86,'["Maison des Esprits","Grande Bibliothèque","Événements"]','Réseau francophone consacré aux sorties hors du corps, EMI et états modifiés de conscience.','La vitalité des groupes associés reste à mesurer séparément.',UTC_TIMESTAMP(),UTC_TIMESTAMP(),UTC_TIMESTAMP(),UTC_TIMESTAMP()),
('network','epanews','Epanews','https://epanews.fr/','fr','candidate','public_page',NULL,65,72,68,68,'["Spirit’Go","Événements","Maison des Esprits"]','Réseau francophone de bien-être, développement personnel, groupes locaux et événements.','Présence commerciale importante : contrôler la qualité et les règles avant toute recommandation.',UTC_TIMESTAMP(),UTC_TIMESTAMP(),UTC_TIMESTAMP(),UTC_TIMESTAMP())
ON DUPLICATE KEY UPDATE label=VALUES(label),public_url=VALUES(public_url),language=VALUES(language),visible_members=VALUES(visible_members),activity_score=VALUES(activity_score),coherence_score=VALUES(coherence_score),values_score=VALUES(values_score),priority_score=VALUES(priority_score),projects_json=VALUES(projects_json),rationale=VALUES(rationale),warning=VALUES(warning),last_checked_at=UTC_TIMESTAMP(),updated_at=UTC_TIMESTAMP();
