# Changelog

Todos los cambios notables en este proyecto serán documentados en este archivo.

El formato está basado en [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
y este proyecto adhiere al [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.0.3] - 2026-02-04

### Added

- 👥 **getAdministrators**: Nueva funcionalidad para obtener el catálogo de administradoras de fondos
  - Implementación en `InfoselFunds.getAdministrators()` sin filtros
  - Nueva entidad `Administrator` con datos de administradora (id, descripción, nombre legal, sitio web)
  - Nueva entidad `AdministratorsResponse` como respuesta estructurada
  - Use case `GetAdministratorsUseCase` para obtener lista completa de administradoras
  - Integración completa en repository y datasource layers
  - Endpoint API: `GET /administrators` (sin parámetros, retorna todas las administradoras)
  - Caso de uso: Descubrir administratorId cuando usuarios mencionan nombres (ej: "fondos de Actinver")
  - Caso de uso secundario: Descubrir series de fondos (A, B, C) combinado con getFunds()

## [1.0.2] - 2025-01-20

### Fixed

- Updated peer dependency `@infosel-sdk/core` to `^0.0.5` to resolve npm peer dependency conflicts

## [1.0.0]

### Added

- 🎯 **getFunds**: Funcionalidad para obtener lista de fondos de inversión

  - Implementación en `InfoselFunds.getFunds()` con filtros por tipo y administrador
  - Nueva entidad `FundsRequest` para especificar filtros opcionales
  - Nueva entidad `Funds` como respuesta estructurada con información completa
  - Use case `GetFundsUseCase` con soporte para request opcional
  - Integración completa en repository y datasource layers

- 📋 **getFundProspectus**: Funcionalidad para obtener prospectos de fondos

  - Implementación en `InfoselFunds.getFundProspectus()` con query por emisora
  - Nueva entidad `FundProspectusRequest` para especificar la emisora
  - Nueva entidad `FundProspectus` como respuesta con datos detallados del fondo
  - Use case `GetProspectusUseCase` con validación de request requerido
  - Información completa: tipo de fondo, clase de activo, administrador, ratings, etc.

- 📈 **getFundYield**: Funcionalidad para obtener rendimientos de fondos

  - Implementación en `InfoselFunds.getFundYield()` con cálculo por fecha específica
  - Nueva entidad `FundYieldRequest` para especificar emisora, serie y fecha
  - Nueva entidad `FundYield` como respuesta con rendimientos en múltiples períodos
  - Use case `GetFundYieldUseCase` con validación de request requerido
  - Rendimientos: diario, semanal, mensual, anual, año a la fecha, etc.

- 📊 **getFundHistoricalPrices**: Funcionalidad para obtener precios históricos
  - Implementación en `InfoselFunds.getFundHistoricalPrices()` con múltiples intervalos
  - Nueva entidad `FundHistoricalPricesRequest` para especificar período e intervalo
  - Nueva entidad `FundsHistoricalPrices` como respuesta con datos OHLC
  - Use case `GetFundHistoricalPricesUseCase` con validación de request requerido
  - Soporte para intervalos: Diario (D), Semanal (W), Mensual (M), Trimestral (Q)

### Changed

- 📦 **Entidades del dominio**: Actualizadas las exportaciones en `domain/entities/index.ts`

  - Agregado `Funds` a las exportaciones públicas
  - Agregado `FundsRequest` a las exportaciones públicas
  - Agregado `FundProspectus` a las exportaciones públicas
  - Agregado `FundProspectusRequest` a las exportaciones públicas
  - Agregado `FundYield` a las exportaciones públicas
  - Agregado `FundYieldRequest` a las exportaciones públicas
  - Agregado `FundsHistoricalPrices` a las exportaciones públicas
  - Agregado `FundHistoricalPricesRequest` a las exportaciones públicas

- 🔧 **Interfaces de repository y datasource**: Extendidas para soportar todas las funcionalidades

  - `FundsRepository.getFunds()` method signature añadido
  - `FundsRepository.getFundProspectus()` method signature añadido
  - `FundsRepository.getFundYield()` method signature añadido
  - `FundsRepository.getFundHistoricalPrices()` method signature añadido
  - `FundsDatasource.getFunds()` method signature añadido
  - `FundsDatasource.getFundProspectus()` method signature añadido
  - `FundsDatasource.getFundYield()` method signature añadido
  - `FundsDatasource.getFundHistoricalPrices()` method signature añadido

- 🏗️ **Arquitectura del SDK**: Implementación completa del patrón Clean Architecture
  - Capa de dominio con entidades, use cases y repositories
  - Capa de datos con datasources, models y mappers
  - Inyección de dependencias con módulos configurables
  - Integración completa con @infosel-sdk/core

### Fixed

- Correcciones pendientes de lanzamiento

## [1.0.0] - 2024-01-15

### Added

- 🎉 Lanzamiento inicial del SDK de Fondos
- 📊 Acceso a datos de fondos de inversión
- 🔍 Búsqueda y gestión de fondos por tipo y administrador
- 📋 Información detallada de prospectos de fondos
- 📈 Cálculo de rendimientos en múltiples períodos
- 📊 Datos históricos de precios con diferentes intervalos
- 🔗 Integración completa con @infosel-sdk/core
- 📖 Documentación completa con ejemplos

### Changed

- 🏗️ Arquitectura modular y escalable
- 🔧 Configuración flexible para diferentes ambientes
- 📦 Optimización de dependencias y bundle size

### Fixed

- 🐛 Correcciones menores en la implementación inicial

### Breaking Changes

- Ninguno (lanzamiento inicial)

### Developer Experience

- 🚀 Script de publicación automatizado con verificaciones completas
- 📋 Checklist rápido para verificar cada paso del proceso
- 🔍 Verificaciones automáticas de tests, linting y TypeScript
- 🧪 Tests unitarios para validar funcionalidades
- 📖 Documentación detallada con ejemplos prácticos
- 🔗 Verificación automática de integración con @infosel-sdk/core
- 🎯 Proceso estandarizado para publicaciones consistentes

---

## Tipos de Cambios

- **Added**: Nuevas funcionalidades
- **Changed**: Cambios en funcionalidades existentes
- **Deprecated**: Funcionalidades que serán removidas
- **Removed**: Funcionalidades removidas
- **Fixed**: Correcciones de bugs
- **Security**: Mejoras de seguridad
- **Developer Experience**: Mejoras en el proceso de desarrollo y publicación

## Convenciones

- Usar emojis para categorizar cambios
- Mantener formato consistente
- Incluir fechas de lanzamiento
- Documentar breaking changes claramente
- Agrupar cambios por tipo
- Especificar compatibilidad con @infosel-sdk/core
