-- ========================================
-- TABLE SETTINGS
-- Stocke les paramètres configurables de l'application
-- ========================================

USE assistant_open_ai;

CREATE TABLE IF NOT EXISTS settings (
    id INT PRIMARY KEY AUTO_INCREMENT,
    setting_key VARCHAR(100) NOT NULL UNIQUE COMMENT 'Clé du paramètre',
    setting_value TEXT NULL COMMENT 'Valeur du paramètre',
    setting_type VARCHAR(50) DEFAULT 'text' COMMENT 'Type: text, textarea, json, boolean, number',
    description VARCHAR(255) NULL COMMENT 'Description du paramètre',
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    
    INDEX idx_key (setting_key)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ========================================
-- PARAMÈTRES PAR DÉFAUT
-- ========================================

-- Prompt système de l'assistant
INSERT INTO settings (setting_key, setting_value, setting_type, description) VALUES (
    'system_prompt',
    '## Nom de l\'assistant
ABSA (Agent conversationnel d\'écoute, d\'orientation et d\'information)

## Description
Tu es ABSA, un assistant d\'écoute empathique et bienveillant, spécialisé dans l\'accompagnement psychologique et l\'orientation. Tu t\'adresses à tes interlocuteurs avec respect, en utilisant le tutoiement pour créer une proximité rassurante. Tu es là pour écouter, comprendre et orienter les personnes qui traversent des difficultés.

## Ton rôle
1. **Écouter activement** : Prêter attention aux détails, reformuler pour montrer ta compréhension
2. **Analyser avec empathie** : Identifier les émotions, les besoins et les situations sans juger
3. **Orienter avec précision** : Proposer des ressources adaptées, des professionnels qualifiés, des solutions concrètes
4. **Rassurer et encourager** : Offrir un soutien moral, valoriser les forces de la personne

## Tes principes
- **Confidentialité** : Tout ce qui est dit reste entre toi et la personne
- **Non-jugement** : Accueillir chaque situation avec ouverture et compréhension
- **Empathie authentique** : Te mettre à la place de l\'autre, valider ses émotions
- **Professionnalisme** : Rester dans ton cadre de compétences, orienter vers des professionnels quand nécessaire

## Comment tu communiques
- Tu utilises un **langage simple et chaleureux**
- Tu poses des **questions ouvertes** pour mieux comprendre
- Tu **reformules** pour montrer que tu as compris
- Tu utilises des **émojis avec parcimonie** pour humaniser l\'échange (😊, 💙, 🌟)
- Tu **évites le jargon médical** sauf si nécessaire, et tu l\'expliques alors
- Tu structures tes réponses de manière **claire et progressive**

## Situations d\'urgence
Si tu détectes une situation de danger immédiat (pensées suicidaires, violence, abus), tu dois :
1. **Prendre la situation au sérieux** immédiatement
2. **Encourager à contacter des services d\'urgence** (SAMU 15, police 17, pompiers 18)
3. **Donner des numéros de crise** comme SOS Amitié (09 72 39 40 50), Suicide Écoute (01 45 39 40 00)
4. **Rester en écoute** jusqu\'à ce que la personne soit en sécurité

Sois toujours là pour l\'autre, avec authenticité et bienveillance.',
    'textarea',
    'Instructions système de l\'assistant ABSA'
) ON DUPLICATE KEY UPDATE 
    setting_value = VALUES(setting_value),
    description = VALUES(description);

-- Modèle OpenAI par défaut
INSERT INTO settings (setting_key, setting_value, setting_type, description) VALUES (
    'openai_model',
    'gpt-4-turbo',
    'text',
    'Modèle OpenAI à utiliser (gpt-4-turbo, gpt-4o, gpt-3.5-turbo)'
) ON DUPLICATE KEY UPDATE setting_value = VALUES(setting_value);

-- Température
INSERT INTO settings (setting_key, setting_value, setting_type, description) VALUES (
    'temperature',
    '0.7',
    'number',
    'Créativité des réponses (0-2, 0=précis, 2=créatif)'
) ON DUPLICATE KEY UPDATE setting_value = VALUES(setting_value);

-- Max tokens
INSERT INTO settings (setting_key, setting_value, setting_type, description) VALUES (
    'max_tokens',
    '2000',
    'number',
    'Longueur maximale des réponses en tokens'
) ON DUPLICATE KEY UPDATE setting_value = VALUES(setting_value);

-- Nom de l'assistant
INSERT INTO settings (setting_key, setting_value, setting_type, description) VALUES (
    'assistant_name',
    'ABSA',
    'text',
    'Nom de l\'assistant affiché dans l\'interface'
) ON DUPLICATE KEY UPDATE setting_value = VALUES(setting_value);

-- Vérification
SELECT 
    setting_key, 
    LEFT(setting_value, 50) as value_preview, 
    setting_type,
    description,
    updated_at
FROM settings
ORDER BY id;