-- =====================================================
-- Script de configuración MySQL 8.0
-- Motor: MySQL Community Server 8.0.45
-- Cliente: libmysql - mysqlnd 8.4.16
-- =====================================================

-- Crear base de datos con charset UTF8MB4 (soporte completo de Unicode)
CREATE DATABASE IF NOT EXISTS escuelas_deportivas
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_unicode_ci;

-- Usar la base de datos
USE escuelas_deportivas;

-- =====================================================
-- CREAR USUARIO DE APLICACIÓN (Opcional)
-- =====================================================
-- Descomentar y ajustar según necesidades

-- Crear usuario con autenticación nativa (compatible con libmysql)
-- CREATE USER IF NOT EXISTS 'escuelas_app'@'localhost' 
--   IDENTIFIED WITH mysql_native_password BY 'TuPasswordSeguro123!';

-- Para conexiones remotas (si es necesario)
-- CREATE USER IF NOT EXISTS 'escuelas_app'@'%' 
--   IDENTIFIED WITH mysql_native_password BY 'TuPasswordSeguro123!';

-- Otorgar privilegios
-- GRANT ALL PRIVILEGES ON escuelas_deportivas.* TO 'escuelas_app'@'localhost';
-- GRANT ALL PRIVILEGES ON escuelas_deportivas.* TO 'escuelas_app'@'%';

-- Aplicar cambios
-- FLUSH PRIVILEGES;

-- =====================================================
-- NOTAS DE CONFIGURACIÓN
-- =====================================================
-- 
-- 1. Las tablas serán creadas automáticamente por Prisma:
--    yarn prisma db push
--
-- 2. Para cargar datos iniciales:
--    yarn prisma db seed
--
-- 3. Formato de DATABASE_URL para .env:
--    DATABASE_URL="mysql://usuario:password@host:3306/escuelas_deportivas"
--
-- 4. Si el password tiene caracteres especiales, usar URL encoding:
--    @ -> %40
--    # -> %23
--    ! -> %21
--    $ -> %24
--
-- 5. Configuración recomendada de MySQL (my.cnf / my.ini):
--    [mysqld]
--    character-set-server = utf8mb4
--    collation-server = utf8mb4_unicode_ci
--    default_authentication_plugin = mysql_native_password
--    max_connections = 100
--    innodb_buffer_pool_size = 256M
--
-- =====================================================
-- VERIFICACIÓN DE CONFIGURACIÓN
-- =====================================================

-- Verificar versión de MySQL
SELECT VERSION() AS 'Versión MySQL';

-- Verificar charset de la base de datos
SELECT 
  DEFAULT_CHARACTER_SET_NAME AS 'Charset',
  DEFAULT_COLLATION_NAME AS 'Collation'
FROM information_schema.SCHEMATA 
WHERE SCHEMA_NAME = 'escuelas_deportivas';

-- Verificar variables de configuración importantes
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
SHOW VARIABLES LIKE 'max_connections';
