-- api_keysテーブル
-- 複数のAPIキーを管理し、エラーカウントや使用状況を追跡

CREATE TABLE IF NOT EXISTS `api_keys` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `key_name` varchar(100) NOT NULL COMMENT 'APIキーの識別名',
  `key_value` text NOT NULL COMMENT '実際のAPIキー値',
  `error_count` int(11) DEFAULT 0 COMMENT 'エラー発生回数',
  `is_active` tinyint(1) DEFAULT 1 COMMENT '有効/無効フラグ',
  `last_used` datetime DEFAULT NULL COMMENT '最終使用日時',
  `last_error` datetime DEFAULT NULL COMMENT '最終エラー日時',
  `last_success` datetime DEFAULT NULL COMMENT '最終成功日時',
  `test_status` varchar(50) DEFAULT 'untested' COMMENT 'テスト状態',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '作成日時',
  PRIMARY KEY (`id`),
  INDEX idx_is_active (`is_active`),
  INDEX idx_error_count (`error_count`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='APIキー管理テーブル';

-- 初期データの移行（既存のapi_settingsテーブルから）
-- 既存のAPIキーがある場合は移行
INSERT INTO api_keys (key_name, key_value, is_active) 
SELECT 
  'APIキー1',
  key_value,
  1
FROM api_settings 
WHERE key_name = 'grok_api_key'
AND key_value != ''
AND NOT EXISTS (SELECT 1 FROM api_keys LIMIT 1);

-- エラー閾値の初期設定（api_settingsテーブルに保存）
INSERT INTO api_settings (key_name, key_value) 
VALUES ('api_key_error_threshold', '3')
ON DUPLICATE KEY UPDATE updated_at = CURRENT_TIMESTAMP;