-- Script de correction de la base de données pour les organes
-- À exécuter manuellement dans votre base de données

-- 1. Créer la table organ_type si elle n'existe pas
CREATE TABLE IF NOT EXISTS organ_type (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL UNIQUE,
    description VARCHAR(255),
    is_active BOOLEAN DEFAULT true,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 2. Ajouter la colonne organ_type_id à la table organ si elle n'existe pas
ALTER TABLE organ ADD COLUMN IF NOT EXISTS organ_type_id INTEGER;

-- 3. Ajouter la contrainte de clé étrangère
ALTER TABLE organ
ADD CONSTRAINT fk_organ_organ_type
FOREIGN KEY (organ_type_id) REFERENCES organ_type(id);

-- 4. Insérer quelques types d'organes de base
INSERT INTO organ_type (name, description, is_active) VALUES
('Cœur', 'Organe cardiaque', true),
('Foie', 'Organe hépatique', true),
('Intestins', 'Organes digestifs', true),
('Poumons', 'Organes respiratoires', true),
('Reins', 'Organes rénaux', true),
('Estomac', 'Organe digestif', true),
('Rate', 'Organe lymphatique', true)
ON CONFLICT (name) DO NOTHING;

-- 5. Mettre à jour les organes existants pour utiliser les nouveaux types
-- (Cette partie dépend de vos données existantes)
-- UPDATE organ SET organ_type_id = (SELECT id FROM organ_type WHERE name = 'Cœur') WHERE type = 'Cœur';
-- UPDATE organ SET organ_type_id = (SELECT id FROM organ_type WHERE name = 'Foie') WHERE type = 'Foie';
-- etc.

-- 6. Supprimer l'ancienne colonne type après avoir migré les données
-- ALTER TABLE organ DROP COLUMN IF EXISTS type;

-- 7. Rendre la colonne organ_type_id obligatoire
-- ALTER TABLE organ ALTER COLUMN organ_type_id SET NOT NULL;
