|
@@ -2,6 +2,7 @@
|
|
|
|
|
|
|
|
namespace App\Http\Controllers;
|
|
namespace App\Http\Controllers;
|
|
|
|
|
|
|
|
|
|
+use App\Http\Controllers\Concerns\ResolvesActiveUnit;
|
|
|
use App\Services\FinancialPlanAccountService;
|
|
use App\Services\FinancialPlanAccountService;
|
|
|
use App\Http\Requests\FinancialPlanAccountRequest;
|
|
use App\Http\Requests\FinancialPlanAccountRequest;
|
|
|
use App\Http\Resources\FinancialPlanAccountResource;
|
|
use App\Http\Resources\FinancialPlanAccountResource;
|
|
@@ -10,10 +11,68 @@
|
|
|
|
|
|
|
|
class FinancialPlanAccountController extends Controller
|
|
class FinancialPlanAccountController extends Controller
|
|
|
{
|
|
{
|
|
|
|
|
+ use ResolvesActiveUnit;
|
|
|
|
|
+
|
|
|
public function __construct(
|
|
public function __construct(
|
|
|
protected FinancialPlanAccountService $service,
|
|
protected FinancialPlanAccountService $service,
|
|
|
) {}
|
|
) {}
|
|
|
|
|
|
|
|
|
|
+ // --- Endpoints da unidade ativa (Franchisee) ---
|
|
|
|
|
+
|
|
|
|
|
+ public function indexMe(): JsonResponse
|
|
|
|
|
+ {
|
|
|
|
|
+ $unitId = $this->activeUnitId();
|
|
|
|
|
+ if (!$unitId) {
|
|
|
|
|
+ return $this->errorResponse(message: 'Unidade não encontrada', code: 404);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return $this->successResponse(
|
|
|
|
|
+ payload: FinancialPlanAccountResource::collection($this->service->getAll($unitId)),
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public function storeMe(FinancialPlanAccountRequest $request): JsonResponse
|
|
|
|
|
+ {
|
|
|
|
|
+ $unitId = $this->activeUnitId();
|
|
|
|
|
+ if (!$unitId) {
|
|
|
|
|
+ return $this->errorResponse(message: 'Unidade não encontrada', code: 404);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $data = $request->validated();
|
|
|
|
|
+ $data['unit_id'] = $unitId;
|
|
|
|
|
+
|
|
|
|
|
+ $item = $this->service->create($data);
|
|
|
|
|
+
|
|
|
|
|
+ return $this->successResponse(payload: new FinancialPlanAccountResource($item), message: __('messages.created'), code: 201);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public function updateMe(FinancialPlanAccountRequest $request, int $id): JsonResponse
|
|
|
|
|
+ {
|
|
|
|
|
+ $unitId = $this->activeUnitId();
|
|
|
|
|
+ if (!$unitId || !$this->service->findByIdForUnit($id, $unitId)) {
|
|
|
|
|
+ return $this->errorResponse(message: 'Conta não encontrada', code: 404);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $data = $request->validated();
|
|
|
|
|
+ unset($data['unit_id']);
|
|
|
|
|
+
|
|
|
|
|
+ $item = $this->service->update($id, $data);
|
|
|
|
|
+
|
|
|
|
|
+ return $this->successResponse(payload: new FinancialPlanAccountResource($item), message: __('messages.updated'));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public function destroyMe(int $id): JsonResponse
|
|
|
|
|
+ {
|
|
|
|
|
+ $unitId = $this->activeUnitId();
|
|
|
|
|
+ if (!$unitId || !$this->service->findByIdForUnit($id, $unitId)) {
|
|
|
|
|
+ return $this->errorResponse(message: 'Conta não encontrada', code: 404);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $this->service->delete($id);
|
|
|
|
|
+
|
|
|
|
|
+ return $this->successResponse(message: __('messages.deleted'), code: 204);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
public function index(Request $request): JsonResponse
|
|
public function index(Request $request): JsonResponse
|
|
|
{
|
|
{
|
|
|
$unitId = $request->filled('unit_id') ? (int) $request->input('unit_id') : null;
|
|
$unitId = $request->filled('unit_id') ? (int) $request->input('unit_id') : null;
|