← Volver a Back.API

MonedasController

Controlador para la gestión de monedas y billetes del sistema

📊 Resumen del Controlador

3
Servicios Inyectados
4
Endpoints Totales
2
Categorías de Funcionalidad
Read
Operaciones de Lectura

El MonedasController es el controlador encargado de gestionar la información relacionada con monedas y billetes del sistema. Proporciona una API RESTful para consultar información sobre monedas y billetes, incluyendo tipos de cambio, denominaciones y configuraciones del sistema monetario.

🎯 Funcionalidades Principales

  • Gestión de monedas del sistema (2 endpoints)
  • Gestión de billetes y denominaciones (2 endpoints)
  • Consulta de monedas por diferentes criterios
  • Consulta de billetes por diferentes criterios
  • Información de tipos de cambio y configuraciones
  • Denominaciones monetarias y valores
  • Logging estructurado de errores y eventos
  • Manejo de excepciones con respuestas apropiadas
  • Validación de datos y parámetros de entrada
  • Respuestas tipadas con modelos específicos

🔧 Servicios Utilizados

Servicios Inyectados por Constructor:

  • IMonedaService - Servicio principal de gestión de monedas
  • IMonedasBilleteService - Servicio de gestión de billetes y denominaciones
  • ILogger<MonedasController> - Logger para registro de errores y eventos

⚠️ Parámetros de Conexión

Todos los endpoints requieren los siguientes parámetros de conexión a la base de datos:

  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos

📋 Categorías de Endpoints

💰 Gestión de Monedas

Operaciones de consulta para obtener información de monedas
Currency
Read

Endpoints: 2 métodos

  • GET /GetMonedas
  • GET /GetMoneda/{id}
Ver detalles →

💵 Gestión de Billetes

Operaciones de consulta para obtener información de billetes
Bills
Read

Endpoints: 2 métodos

  • GET /GetBilletes
  • GET /GetBillete/{id}
Ver detalles →

🔗 Estructura de Rutas

Ruta Base: /Master/Monedas

Todos los endpoints del controlador están bajo la ruta /Master/Monedas, lo que indica que maneja datos maestros del sistema.

Patrones de URL por Categoría:

⚠️ Identificación de Recursos

Los recursos se identifican mediante parámetros específicos:

  • Monedas: Identificadas por ID único de moneda
  • Billetes: Identificados por ID único de billete

📊 Códigos de Respuesta

✅ 200 - OK

Operación exitosa, datos devueltos correctamente

Usado en: GET exitosos

❌ 404 - Not Found

Recurso no encontrado

Usado en: GET cuando el recurso no existe

❌ 500 - Internal Server Error

Error interno del servidor

Usado en: Errores de excepción no controlados

🔍 Características Técnicas

🎯 Características del Controlador

  • Swagger Documentation: Documentación completa con Swagger/OpenAPI
  • Dependency Injection: Inyección de 3 servicios diferentes + logger
  • RESTful Design: Diseño REST con verbos HTTP apropiados
  • Type Safety: Uso de tipos fuertemente tipados para respuestas
  • Constructor Injection: Inyección de dependencias por constructor
  • Exception Handling: Manejo centralizado de excepciones con logging
  • Logging: Logging estructurado de errores y eventos
  • Simple Response Pattern: Respuestas directas sin ServiceResult
  • Null Checking: Verificación de valores nulos en respuestas
  • Error Messages: Mensajes de error consistentes

⚠️ Consideraciones de Seguridad

  • Todos los endpoints requieren parámetros de conexión a la base de datos
  • Los errores se manejan de forma simple sin exponer información sensible
  • Se recomienda implementar autenticación y autorización adicional
  • Validación de entrada en todos los endpoints
  • Las monedas y billetes son datos de configuración del sistema
  • Se recomienda implementar cache para mejorar rendimiento
  • Control de acceso según roles de usuario
  • Logging de consultas para auditoría

📝 Patrones de Diseño Utilizados

  • Repository Pattern: Acceso a datos a través de servicios
  • Dependency Injection: Inversión de control para servicios
  • Exception Handling Pattern: Manejo centralizado de errores
  • Logging Pattern: Registro estructurado de eventos
  • Simple Response Pattern: Respuestas directas sin wrappers
  • RESTful API Design: Diseño de API REST estándar

📈 Estadísticas Detalladas

79
Líneas de Código
1
Región de Código
4
Métodos Públicos
1
Verbo HTTP

Distribución de Métodos HTTP:

📋 Modelo de Datos

Modelo Moneda:
  • Id (string): Identificador único de la moneda
  • Nombre (string): Nombre de la moneda
  • Símbolo (string): Símbolo de la moneda
  • TipoCambio (decimal): Tipo de cambio respecto a la moneda base
  • Activa (bool): Indica si la moneda está activa
  • EsBase (bool): Indica si es la moneda base del sistema
Modelo MonedasBillete:
  • Id (string): Identificador único del billete
  • MonedaId (string): ID de la moneda asociada
  • Denominacion (decimal): Valor nominal del billete
  • Descripcion (string): Descripción del billete
  • Activo (bool): Indica si el billete está activo
  • EsMoneda (bool): Indica si es moneda (true) o billete (false)

📝 Tipos de Monedas

  • Moneda Base: Moneda principal del sistema
  • Monedas Secundarias: Otras monedas con tipos de cambio
  • Monedas Activas: Monedas disponibles para uso
  • Monedas Inactivas: Monedas deshabilitadas

💵 Tipos de Billetes

  • Billetes: Denominaciones en papel (esMoneda = false)
  • Monedas: Denominaciones en metal (esMoneda = true)
  • Denominaciones Activas: Billetes disponibles para uso
  • Denominaciones Inactivas: Billetes deshabilitados

🔍 Casos de Uso Comunes

📋 Escenarios de Aplicación

  • Configuración de monedas: Establecer monedas disponibles en el sistema
  • Tipos de cambio: Consultar tipos de cambio entre monedas
  • Denominaciones: Obtener billetes y monedas disponibles
  • Configuración de caja: Establecer denominaciones para arqueos
  • Multi-moneda: Soporte para múltiples monedas
  • Facturación: Emitir facturas en diferentes monedas
  • Reportes financieros: Generar reportes en diferentes monedas
  • Integración con POS: Configurar monedas en sistemas de punto de venta
  • Gestión de cambio: Calcular cambio en diferentes denominaciones
  • Auditoría financiera: Revisar configuraciones monetarias