feat: importance in db and mentorcard home colors

This commit is contained in:
Julien Froidefond
2025-08-27 11:51:43 +02:00
parent df1fd24e84
commit aee5d74445
13 changed files with 388 additions and 94 deletions

View File

@@ -0,0 +1,72 @@
-- Migration pour ajouter la colonne importance aux skills
-- Compatible avec les bases existantes
-- Étape 1: Vérifier si la colonne existe déjà
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_name = 'skills' AND column_name = 'importance'
) THEN
-- Ajouter la colonne importance
ALTER TABLE skills
ADD COLUMN importance VARCHAR(20) DEFAULT 'standard';
-- Ajouter la contrainte CHECK
ALTER TABLE skills
ADD CONSTRAINT skills_importance_check
CHECK (importance IN ('incontournable', 'majeure', 'standard'));
RAISE NOTICE 'Colonne importance ajoutée avec succès';
ELSE
RAISE NOTICE 'Colonne importance existe déjà';
END IF;
END $$;
-- Étape 2: Mettre à jour les technologies incontournables
UPDATE skills
SET importance = 'incontournable'
WHERE name IN (
'React', 'TypeScript', 'JavaScript', 'Git', 'HTML', 'CSS',
'Node.js', 'Python', 'SQL', 'HTTP', 'REST API', 'JSON',
'GitHub', 'npm', 'yarn', 'package.json'
);
-- Étape 3: Mettre à jour les technologies majeures
UPDATE skills
SET importance = 'majeure'
WHERE name IN (
'Next.js', 'Vue.js', 'Angular', 'Docker', 'Kubernetes',
'AWS', 'Azure', 'Google Cloud', 'MongoDB', 'PostgreSQL',
'Redis', 'GraphQL', 'Webpack', 'Vite', 'Jest', 'Cypress',
'Tailwind CSS', 'Sass', 'Less', 'Redux', 'Zustand',
'Prisma', 'TypeORM', 'Sequelize', 'Express.js', 'Fastify'
);
-- Étape 4: Créer l'index s'il n'existe pas
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_indexes
WHERE tablename = 'skills' AND indexname = 'idx_skills_importance'
) THEN
CREATE INDEX idx_skills_importance ON skills(importance);
RAISE NOTICE 'Index idx_skills_importance créé avec succès';
ELSE
RAISE NOTICE 'Index idx_skills_importance existe déjà';
END IF;
END $$;
-- Étape 5: Vérification finale
SELECT
importance,
COUNT(*) as count,
STRING_AGG(name, ', ' ORDER BY name) as examples
FROM skills
GROUP BY importance
ORDER BY
CASE importance
WHEN 'incontournable' THEN 1
WHEN 'majeure' THEN 2
WHEN 'standard' THEN 3
END;