feat: API de reportes, fix distancia espacial y protección OneSignal

- GET/POST /api/contracts/reports y /api/postulations/reports
- GET/POST /api/contracts/reports/{id}/comments con verificación de autoría
- Fix distancia withinDistanceTo: 0.5 grados → 5000 metros (SRID 4326)
- Fix FK Report::finishedcontracts() → contract_id
- Wrap todas las llamadas OneSignal en try/catch para evitar crashes
- Chat UI de comentarios: burbujas por rol, botón veredicto fijo, estilos
- Botón veredicto movido de reports/index a reports/comments
- Ruta POST veredict y restructura reports/{id}/comments en web

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-18 21:04:14 -06:00
parent 185da1edbb
commit 38da1b56ce
12 changed files with 521 additions and 359 deletions

View File

@@ -57,6 +57,9 @@ Route::group([
Route::post('review', 'ContractController@reviewcontract');
Route::post('extra', 'ContractController@extra');
Route::post('report', 'ReportController@report');
Route::get('reports', 'ReportController@getreports');
Route::get('reports/{id}/comments', 'ReportController@getcomments');
Route::post('reports/{id}/comments', 'ReportController@storecomment');
Route::get('nohome-check', 'NoHomeController@nohomecheck');
Route::post('nohome-confirm', 'NoHomeController@nohomeconfirm');
//Route::post('nohome-test', 'NoHomeController@test');
@@ -74,6 +77,7 @@ Route::group([
Route::get('get-postulations', 'SupplierController@getpostulation');
Route::get('get-contracted-postulations', 'SupplierController@getcontractedpostulation');
Route::get('get-finished-postulations', 'PostulationController@getfinishedpostulations');
Route::get('postulations/reports', 'ReportController@getsupplierreports');
Route::get('get-postulants', 'PostulationController@getpostulants');
Route::post('postulate', 'PostulationController@postulate');
});