# Estructura

### Diagrama de Contexto

El **Apuestas Microservice** gestiona y procesa todas las actividades de apuestas, incluyendo la colocación de apuestas, el manejo de cuotas, y la gestión de datos. Este microservicio asegura un manejo seguro y preciso de las transacciones de apuestas y las interacciones de los usuarios.

* **Casino Operator**: Administradores que gestionan las actividades de apuestas y supervisan las transacciones en la plataforma.
* **Casino User**: Usuarios finales que colocan y gestionan sus apuestas a través de la plataforma.
* **Authentication System**: Sistema externo encargado de autenticar a los usuarios que interactúan con el microservicio.
* **Esportsbook System**: Sistema externo con el que se integra para manejar apuestas específicas de deportes electrónicos.

### Diagrama de Contenedores

El Diagrama de Contenedores muestra la estructura interna del microservicio de **Apuestas**, que incluye:

* **API Application**: Contenedor que maneja todas las solicitudes relacionadas con las apuestas. Procesa las solicitudes de los usuarios y se comunica con otros sistemas como el **Deposits and Withdrawals System** para la gestión de fondos y el **Sportsbook System** para la gestión de eventos y cuotas.
* **Database**: MongoDB es utilizado para almacenar los datos críticos de apuestas, incluyendo detalles de las apuestas, perfiles de usuarios, y registros de transacciones.

### Diagrama de Componentes

El Diagrama de Componentes detalla los elementos dentro del **Apuestas Microservice** que gestionan las operaciones específicas:

* **Betting Controller**: Gestiona la colocación y seguimiento de apuestas por parte de los usuarios, asegurando que las apuestas se procesen correctamente y se registren en la base de datos.
* **Reporting Controller**: Proporciona herramientas para generar reportes detallados sobre las actividades de apuestas y la interacción de los usuarios, lo que es esencial para la analítica y el cumplimiento normativo.
* **Integration with Sportsbook System**: Gestiona la interacción con el sistema de apuestas deportivas, obteniendo cuotas y permitiendo la colocación de apuestas en eventos deportivos en tiempo real.
* **Transaction Controller**: Coordina con el **Deposits and Withdrawals System** para gestionar los fondos necesarios para colocar apuestas y liquidar ganancias.

### Links:

* Diagrama C4: <https://lucid.app/lucidchart/4be9fbec-0bf4-460c-82b1-d1b11745d60f/edit?invitationId=inv_baac50bf-0c69-4069-8432-c297a3e9123d&page=0_0#>

<figure><img src="/files/uvd7qNVuc2mQVfDDuSTa" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs-affiliates.inlaze.com/gaming-docs/architecture/sistema-de-apuestas/estructura.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
