feat: adding login/RegisterForm and new columns in PG

This commit is contained in:
Julien Froidefond
2025-08-25 14:02:07 +02:00
parent ee58eb82e5
commit caf396d964
9 changed files with 582 additions and 19 deletions

View File

@@ -49,10 +49,11 @@ CREATE TABLE users (
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
team_id VARCHAR(50) REFERENCES teams(id),
email VARCHAR(255) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (uuid_id),
UNIQUE(first_name, last_name, team_id),
UNIQUE(uuid_id)
);
@@ -89,7 +90,8 @@ CREATE INDEX idx_teams_direction ON teams(direction);
CREATE INDEX idx_skills_category_id ON skills(category_id);
CREATE INDEX idx_skill_links_skill_id ON skill_links(skill_id);
CREATE INDEX idx_users_team_id ON users(team_id);
CREATE INDEX idx_users_unique_person ON users(first_name, last_name, team_id);
CREATE INDEX idx_users_email ON users(email);
CREATE INDEX idx_users_uuid_id ON users(uuid_id); -- Index on UUID for performance
CREATE INDEX idx_user_evaluations_user_uuid ON user_evaluations(user_uuid);
CREATE INDEX idx_user_evaluations_user_id ON user_evaluations(user_id); -- Legacy index

View File

@@ -0,0 +1,22 @@
-- Ajout des champs email et password à la table users
-- Étape 1: Ajouter les colonnes sans contraintes NOT NULL
ALTER TABLE users
ADD COLUMN email VARCHAR(255),
ADD COLUMN password_hash VARCHAR(255);
-- Étape 2: Remplir les colonnes avec des valeurs par défaut pour les données existantes
UPDATE users
SET
email = CONCAT(LOWER(first_name), '.', LOWER(last_name), '@peakskills.local'),
password_hash = '$2b$10$default.hash.for.existing.users.placeholder'
WHERE email IS NULL;
-- Étape 3: Ajouter les contraintes NOT NULL après avoir rempli les données
ALTER TABLE users
ALTER COLUMN email SET NOT NULL,
ALTER COLUMN password_hash SET NOT NULL;
-- Étape 4: Ajouter l'index et la contrainte unique sur l'email
CREATE INDEX idx_users_email ON users(email);
ALTER TABLE users ADD CONSTRAINT users_email_unique UNIQUE (email);