-- Migration: Criar tabelas para o novo tipo de vínculo "Turma"
-- Data: 2026-01-16
-- Descrição: Adiciona tabelas turmas e user_turmas para permitir
--            que usuários se vinculem a turmas independentes de escolas.

-- Tabela principal de turmas
CREATE TABLE IF NOT EXISTS `turmas` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  `description` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Tabela de vínculo usuário-turma
CREATE TABLE IF NOT EXISTS `user_turmas` (
  `id` int NOT NULL AUTO_INCREMENT,
  `user_id` int NOT NULL,
  `turma_id` int NOT NULL,
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `unique_user_turma` (`user_id`, `turma_id`),
  KEY `idx_user_turmas_user` (`user_id`),
  KEY `idx_user_turmas_turma` (`turma_id`),
  CONSTRAINT `fk_user_turmas_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
  CONSTRAINT `fk_user_turmas_turma` FOREIGN KEY (`turma_id`) REFERENCES `turmas` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
