Crea una aplicación web para el control de ingresos por comisiones y gastos personales con soporte multiusuario y un bot de Telegram integrado.

## Descripción general

La aplicación debe permitir a múltiples usuarios registrar ventas diarias por mes mediante un calendario interactivo, calcular comisiones basadas en un porcentaje configurable, sumar un sueldo mensual fijo, registrar gastos y mostrar el dinero restante tanto mensual como por quincena.

Cada usuario debe tener acceso únicamente a su propia información.

## Funcionalidades principales

### 1. Sistema multiusuario

* Registro e inicio de sesión
* Cada usuario solo puede ver y modificar sus propios datos
* Relación de todos los datos con user_id

### 2. Gestión por mes

* Crear, ver y editar meses por usuario

### 3. Calendario de captura (IMPORTANTE)

* Cada mes debe mostrarse como un calendario visual
* El usuario NO captura la fecha manualmente
* El usuario selecciona un día haciendo clic en el calendario

Al seleccionar un día:

* Se abre un formulario/modal para capturar:

  * Ventas registradas por el usuario
  * Ventas del sistema de la empresa

El sistema debe:

* Guardar automáticamente la fecha según el día seleccionado
* Mostrar visualmente en el calendario:

  * Días con información registrada
  * Días sin registrar
  * Indicadores rápidos (ej: colores o íconos)

### 4. Registro diario de ventas

Por cada día seleccionado:

* Ventas registradas por el usuario
* Ventas del sistema de la empresa

Cálculos:

* Diferencia entre valores
* Comisión diaria

### 5. Configuración de variables por usuario

Cada usuario puede definir:

* Porcentaje de comisión
* Sueldo mensual

### 6. Cálculos automáticos

* Comisión diaria = ventas del sistema × porcentaje
* Total mensual de comisiones
* Total ingresos = sueldo + comisiones
* Total gastos
* Balance final

### 7. Gestión de gastos

* Agregar múltiples gastos:

  * Descripción
  * Monto
  * Fecha (opcional o seleccionable desde calendario)

### 8. Cálculo por quincena

* Primera quincena (1–15)
* Segunda quincena (16–fin)

Mostrar:

* Ingresos
* Gastos
* Balance

### 9. Dashboard

* Resumen mensual
* Totales
* Vista de calendario
* Tabla opcional de ventas
* Resumen por quincena

## Integración con Telegram

### Vinculación segura

* El usuario inicia sesión en la web
* Genera un código único de vinculación
* En Telegram, el usuario envía ese código al bot
* El bot vincula el chat_id con el usuario

### Funcionalidades del bot

El usuario puede:

* Registrar ventas:
  comando: /venta 1500 1400
  (el sistema usa automáticamente la fecha actual)

* Registrar gastos:
  comando: /gasto comida 200

* Consultar resumen:
  comando: /resumen

* Consultar quincena:
  comando: /quincena

### Seguridad

* No pedir usuario/contraseña en Telegram
* Validar chat_id vinculado
* Solo permitir acceso a datos del usuario vinculado

## Base de datos (sugerida)

* users (id, name, email, password)
* telegram_accounts (id, user_id, chat_id)
* months (id, user_id, name, year)
* daily_sales (id, user_id, month_id, date, user_sales, system_sales)
* settings (id, user_id, commission_percentage, monthly_salary)
* expenses (id, user_id, month_id, description, amount, date)

## Requisitos técnicos

* Backend: Laravel
* Frontend: Blade o Vue
* Base de datos: MySQL
* Uso de librería de calendario (ej: FullCalendar)

## Extras opcionales

* Exportar a Excel/CSV
* Gráficas
* Notificaciones por Telegram

## UI/UX

* Interfaz tipo dashboard
* Calendario como elemento principal
* Colores para indicar estado de días
* Captura rápida mediante modales

La aplicación debe ser rápida, intuitiva y enfocada en facilitar la captura diaria sin errores y todos los logs se deben de guardar en la carpeta logs de la raiz.

