-- ---------------------------------------------------------------------------
-- Migration 008: Ajout des colonnes de facturation à call_history
-- - cost_billed_cents : coût facturé au client (avec marge)
-- - call_type : type d'appel (real, demo, test)
-- - api_details : détail JSON des coûts API (OpenAI, Twilio, TTS)
-- ---------------------------------------------------------------------------

-- Ajouter le coût facturé au client
ALTER TABLE `call_history` 
ADD COLUMN IF NOT EXISTS `cost_billed_cents` INT NULL DEFAULT NULL 
COMMENT 'Coût facturé au client (avec marge)' AFTER `cost_api_cents`;

-- Ajouter le type d'appel
ALTER TABLE `call_history` 
ADD COLUMN IF NOT EXISTS `call_type` ENUM('real', 'demo', 'test') NOT NULL DEFAULT 'real' 
COMMENT 'Type: real=appel réel, demo=démo user, test=test admin' AFTER `cost_billed_cents`;

-- Ajouter les détails de coûts API en JSON
ALTER TABLE `call_history` 
ADD COLUMN IF NOT EXISTS `api_details` JSON NULL 
COMMENT 'Détail des coûts: {openai: X, twilio: Y, tts: Z}' AFTER `call_type`;

-- Index pour filtrer par type d'appel
ALTER TABLE `call_history` 
ADD INDEX IF NOT EXISTS `idx_call_history_call_type` (`call_type`);

-- ---------------------------------------------------------------------------
-- Table des tarifs API (pour calculer les coûts)
-- ---------------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `api_pricing` (
    `id` INT NOT NULL AUTO_INCREMENT,
    `service` VARCHAR(50) NOT NULL COMMENT 'openai, twilio, piper, etc.',
    `operation` VARCHAR(50) NOT NULL COMMENT 'chat, whisper, tts, call_minute',
    `cost_per_unit_cents` DECIMAL(10,4) NOT NULL COMMENT 'Coût par unité en centimes',
    `unit_type` VARCHAR(20) NOT NULL COMMENT 'token, minute, character',
    `margin_percent` DECIMAL(5,2) NOT NULL DEFAULT 15.00 COMMENT 'Marge appliquée au client',
    `demo_discount_percent` DECIMAL(5,2) NOT NULL DEFAULT 15.00 COMMENT 'Réduction pour les démos',
    `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    UNIQUE KEY `uq_api_pricing_service_op` (`service`, `operation`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Insérer les tarifs par défaut
INSERT IGNORE INTO `api_pricing` (`service`, `operation`, `cost_per_unit_cents`, `unit_type`, `margin_percent`, `demo_discount_percent`) VALUES
-- OpenAI GPT-4
('openai', 'gpt4_input', 0.003, 'token', 20.00, 15.00),
('openai', 'gpt4_output', 0.006, 'token', 20.00, 15.00),
-- OpenAI GPT-3.5
('openai', 'gpt35_input', 0.00015, 'token', 25.00, 15.00),
('openai', 'gpt35_output', 0.0002, 'token', 25.00, 15.00),
-- OpenAI Whisper (STT)
('openai', 'whisper', 0.6, 'minute', 20.00, 15.00),
-- Twilio Voice
('twilio', 'call_inbound', 1.3, 'minute', 15.00, 15.00),
('twilio', 'call_outbound', 2.0, 'minute', 15.00, 15.00),
-- Piper TTS (local, coût électricité/serveur estimé)
('piper', 'tts', 0.01, 'character', 10.00, 15.00);
