-- ========================================
-- 顔認証システム データベース初期化
-- ========================================

USE xs5058_face;

-- persons テーブル作成
CREATE TABLE IF NOT EXISTS persons (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL COMMENT '氏名',
    kana VARCHAR(100) DEFAULT NULL COMMENT '氏名（かな）',
    class_name VARCHAR(50) DEFAULT NULL COMMENT 'クラス名',
    grade_year INT DEFAULT NULL COMMENT '学年',
    is_graduated TINYINT(1) DEFAULT 0 COMMENT '卒園フラグ',
    descriptor TEXT NOT NULL COMMENT '顔特徴量（JSON形式）',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '登録日時',
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新日時',

    -- アレルギー情報
    allergy_egg TINYINT(1) DEFAULT 0 COMMENT '卵アレルギー',
    allergy_milk TINYINT(1) DEFAULT 0 COMMENT '乳アレルギー',
    allergy_wheat TINYINT(1) DEFAULT 0 COMMENT '小麦アレルギー',
    allergy_soba TINYINT(1) DEFAULT 0 COMMENT 'そばアレルギー',
    allergy_peanut TINYINT(1) DEFAULT 0 COMMENT 'ピーナッツアレルギー',
    allergy_shrimp TINYINT(1) DEFAULT 0 COMMENT 'えびアレルギー',
    allergy_crab TINYINT(1) DEFAULT 0 COMMENT 'かにアレルギー',
    allergy_other TEXT DEFAULT NULL COMMENT 'その他アレルギー',

    -- 備考
    notes TEXT DEFAULT NULL COMMENT '備考',

    INDEX idx_name (name),
    INDEX idx_class (class_name),
    INDEX idx_created (created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='登録済み人物情報';

-- サンプルデータ（テスト用）
-- ※実際の顔特徴量は face-api.js で生成されたものを使用してください
INSERT INTO persons (name, kana, class_name, grade_year, descriptor, allergy_egg, notes)
VALUES
    ('テスト 太郎', 'てすと たろう', 'さくら組', 5, '[]', 0, 'テストユーザー1'),
    ('サンプル 花子', 'さんぷる はなこ', 'もも組', 4, '[]', 1, 'テストユーザー2（卵アレルギー）');

-- 初期化完了メッセージ
SELECT 'Database initialized successfully!' AS message;
