Incluye:
- Estructura del proyecto
- URLs de producción
- Comandos útiles
- Problemas resueltos
- Configuraciones importantes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Actualizar middleware CORS para permitir orígenes de producción y apps móviles
- Cambiar timezone de America/Tijuana a America/Mexico_City en PostulationController
- Agregar configuración de Google Maps
- Agregar servicio de notificaciones push
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Corregir middleware Authenticate para retornar JSON 401 en rutas API
- Agregar método unauthenticated() en Handler para respuestas JSON
- Implementar bypass de pago en ContractController
- Corregir relaciones belongsToMany en Postulations y Suppliers
- Corregir concatenación de strings en NoHomeController
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Corregir método distance() a withinDistanceTo() para consultas espaciales
- Corregir parsing de fecha/hora con timezone America/Tijuana
- Comentar código de WhatsApp no configurado
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add @push('styles') with @mapstyles to map views
- Fix markers parameter format (pass as 'markers' array, not string)
- Add null checks for location data
- Add @stack('styles') to layout for conditional style loading
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Configure Gitea repository for forked package
- Install gonoware/laravel-maps from consultoria-as fork
- Publish maps configuration to config/vendor/maps.php
- Publish public assets to public/vendor/maps
The fork adds Laravel 10/11 compatibility to the original package.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Install Laravel Maps package for Leaflet.js and OpenStreetMap support
- Provides Blade components for embedding maps without Google Maps dependency
- Supports OpenStreetMap tiles (free, no API key required) or Mapbox
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
## Panel de Administración
### FormBuilder personalizado (Laravel 11)
- Creado app/Support/FormBuilder.php como reemplazo de laravelcollective/html
- Creado app/Support/Facades/Form.php para el facade
- Registrado en AppServiceProvider y config/app.php
- Soporta: text, email, password, file, textarea, select, checkbox, radio, etc.
- Manejo de valores null en todos los parámetros
### Configuración de sesión
- Cambiado same_site de "none" a "lax" para compatibilidad HTTP
- Corrige error 419 Page Expired en login
### Status CRUD
- Agregado campo en_name al formulario (español/inglés)
- Actualizado StatusController create/update para manejar en_name
### Dependencias
- Instalado spatie/laravel-google-cloud-storage para driver GCS
## API Frontend
### Validaciones de perfil de proveedor
Agregadas validaciones en endpoints que requieren perfil de proveedor:
- SupplierController::getpostulation - Retorna error 400 si no hay perfil
- SupplierController::getcontractedpostulation - Retorna error 400 si no hay perfil
- PostulationController::postulate - Retorna error 400 si no hay perfil
- PostulationController::getfinishedpostulations - Retorna error 400 si no hay perfil
- ContractController::startcontract - Retorna error 400 si no hay perfil
### Null safety en contratos
- ContractController::getcurrentcontracts - Manejo seguro de supplier/category null
- ContractController::getfinishedcontracts - Manejo seguro de supplier/category/status null
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Actualización a Laravel 11.47.0
- Migración de modelos a namespace App\Models\
- Actualización de todos los controladores
- Actualización de configuraciones
- Documentación README.md
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>