using Microsoft.Data.SqlClient;
using System.Data;

namespace GestionIntegral.Api.Data
{
    public class DbConnectionFactory
    {
        private readonly string _connectionString;

        // El constructor recibe IConfiguration para leer el appsettings.json
        public DbConnectionFactory(IConfiguration configuration)
        {
            _connectionString = configuration.GetConnectionString("DefaultConnection")
                                ?? throw new ArgumentNullException(nameof(configuration), "Connection string 'DefaultConnection' not found.");
        }

        // Método para crear y abrir una nueva conexión
        public IDbConnection CreateConnection()
        {
            // Usamos SqlConnection del paquete Microsoft.Data.SqlClient
            var connection = new SqlConnection(_connectionString);
            // Nota: No abrimos la conexión aquí. Dapper la abre y cierra automáticamente.
            return connection;
        }
    }
}