<?php

use ABS\Modules\Saga\Controllers\SagaController;

$app->router()->get('/saga', [SagaController::class, 'dashboard']);

$app->router()->get('/saga/companies', [SagaController::class, 'companies']);
$app->router()->get('/saga/companies/create', [SagaController::class, 'createCompany']);
$app->router()->post('/saga/companies', [SagaController::class, 'storeCompany']);
$app->router()->get('/saga/companies/{id}/edit', [SagaController::class, 'editCompany']);
$app->router()->post('/saga/companies/{id}', [SagaController::class, 'updateCompany']);
$app->router()->post('/saga/companies/{id}/delete', [SagaController::class, 'deleteCompany']);

$app->router()->get('/saga/report-types', [SagaController::class, 'reportTypes']);
$app->router()->get('/saga/report-types/{id}/edit', [SagaController::class, 'editReportType']);
$app->router()->post('/saga/report-types/{id}', [SagaController::class, 'updateReportType']);

$app->router()->get('/saga/schedules', [SagaController::class, 'schedules']);
$app->router()->get('/saga/schedules/create', [SagaController::class, 'createSchedule']);
$app->router()->post('/saga/schedules', [SagaController::class, 'storeSchedule']);
$app->router()->get('/saga/schedules/{id}/edit', [SagaController::class, 'editSchedule']);
$app->router()->post('/saga/schedules/{id}', [SagaController::class, 'updateSchedule']);
$app->router()->post('/saga/schedules/{id}/delete', [SagaController::class, 'deleteSchedule']);

$app->router()->get('/saga/documents', [SagaController::class, 'documents']);
$app->router()->post('/saga/documents/upload', [SagaController::class, 'uploadDocument']);
$app->router()->post('/saga/documents/bulk', [SagaController::class, 'bulkDocuments']);
$app->router()->post('/saga/documents/{id}/update', [SagaController::class, 'updateDocument']);
$app->router()->post('/saga/documents/{id}/delete', [SagaController::class, 'deleteDocument']);



$app->router()->get('/saga/supporting-documents', [SagaController::class, 'supportingDocuments']);
$app->router()->post('/saga/supporting-documents/upload', [SagaController::class, 'uploadSupportingDocuments']);
$app->router()->post('/saga/supporting-documents/bulk', [SagaController::class, 'bulkSupportingDocuments']);
$app->router()->post('/saga/supporting-documents/{id}/update', [SagaController::class, 'updateSupportingDocument']);
$app->router()->post('/saga/supporting-documents/{id}/delete', [SagaController::class, 'deleteSupportingDocument']);

$app->router()->get('/saga/export', [SagaController::class, 'exportForm']);
$app->router()->post('/saga/export', [SagaController::class, 'createExportJob']);
$app->router()->get('/saga/jobs', [SagaController::class, 'jobs']);
$app->router()->post('/saga/jobs/{id}/run', [SagaController::class, 'runJob']);
$app->router()->post('/saga/jobs/{id}/delete', [SagaController::class, 'deleteJob']);

$app->router()->get('/saga/connection', [SagaController::class, 'connection']);
$app->router()->post('/saga/connection', [SagaController::class, 'saveConnection']);
$app->router()->post('/saga/connection/start', [SagaController::class, 'startConnection']);
$app->router()->post('/saga/connection/test-session', [SagaController::class, 'testSession']);

$app->router
()->get('/saga/sales-analytics', [SagaController::class, 'salesAnalytics']);
$app->router()->post('/saga/sales-analytics/rebuild/{id}', [SagaController::class, 'rebuildJournalAnalytics']);
$app->router()->get('/saga/caen-conversion', [SagaController::class, 'caenConversion']);
$app->router()->post('/saga/caen-conversion/refresh', [SagaController::class, 'refreshCaenData']);
$app->router()->post('/saga/caen-conversion/save', [SagaController::class, 'saveCompanyCaen']);



$app->router()->get('/saga/documents/{id}/lines', [SagaController::class, 'reportLines']);
$app->router()->post('/saga/documents/{id}/lines/reimport', [SagaController::class, 'reimportReportLines']);
$app->router()->post('/saga/report-lines/{id}/attach', [SagaController::class, 'attachSupportingToLine']);
$app->router()->post('/saga/report-lines/{id}/upload', [SagaController::class, 'uploadSupportingForLine']);
$app->router()->post('/saga/report-lines/{id}/detach', [SagaController::class, 'detachSupportingFromLine']);

$app->router()->get('/saga/invoices', [SagaController::class, 'invoices']);
$app->router()->get('/saga/invoices/export', [SagaController::class, 'exportInvoicesExcel']);
$app->router()->post('/saga/invoices/rebuild', [SagaController::class, 'rebuildAllInvoices']);
$app->router()->post('/saga/invoices/spv-preview', [SagaController::class, 'previewSpvDocuments']);
$app->router()->post('/saga/invoices/spv-sync', [SagaController::class, 'syncSpvDocuments']);
$app->router()->post('/saga/invoices/spv-manual-associate', [SagaController::class, 'manualAssociateSpv']);
$app->router()->get('/saga/invoices/spv-candidates', [SagaController::class, 'spvCandidateSearch']);

$app->router()->get('/saga/tax-forecast', [SagaController::class, 'taxForecast']);
$app->router()->post('/saga/tax-forecast/import', [SagaController::class, 'importTaxBalance']);
$app->router()->post('/saga/tax-forecast/import-all', [SagaController::class, 'importAllTaxBalances']);
$app->router()->post('/saga/tax-forecast/settings', [SagaController::class, 'saveTaxSettings']);
$app->router()->post('/saga/tax-forecast/rules', [SagaController::class, 'saveTaxRule']);
$app->router()->post('/saga/tax-forecast/rules/{id}/delete', [SagaController::class, 'deleteTaxRule']);
$app->router()->post('/saga/report-types/{id}/record', [SagaController::class, 'recordReportType']);
