CREATE TABLE IF NOT EXISTS `users` ( `id` varchar(36) NOT NULL, `email` varchar(255) NOT NULL, `password_hash` varchar(255) NOT NULL, `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `email` (`email`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `materials` ( `id` varchar(36) NOT NULL, `user_id` varchar(36) NOT NULL, `file_path` varchar(255) NOT NULL, `upload_type` enum('pdf','pptx','image') NOT NULL, `extracted_text` text, `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `user_id` (`user_id`), CONSTRAINT `materials_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `study_plans` ( `id` varchar(36) NOT NULL, `user_id` varchar(36) NOT NULL, `material_id` varchar(36) NOT NULL, `test_date` date NOT NULL, `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `user_id` (`user_id`), KEY `material_id` (`material_id`), CONSTRAINT `study_plans_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE, CONSTRAINT `study_plans_ibfk_2` FOREIGN KEY (`material_id`) REFERENCES `materials` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `plan_items` ( `id` varchar(36) NOT NULL, `plan_id` varchar(36) NOT NULL, `day_number` int(11) NOT NULL, `task_text` text NOT NULL, `is_done` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `plan_id` (`plan_id`), CONSTRAINT `plan_items_ibfk_1` FOREIGN KEY (`plan_id`) REFERENCES `study_plans` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;