bankAccounts()->latest()->get(); return BankAccountResource::collection($accounts)->response(); } public function store(StoreBankAccountRequest $request, Tenant $tenant): JsonResponse { $data = $request->validated(); $data['tenant_code'] = $tenant->codigo; $account = BankAccount::query()->create($data); return BankAccountResource::make($account)->response()->setStatusCode(201); } public function show(Tenant $tenant, BankAccount $bankAccount): BankAccountResource { abort_if($bankAccount->tenant_code !== $tenant->codigo, 404); return BankAccountResource::make($bankAccount); } public function update(UpdateBankAccountRequest $request, Tenant $tenant, BankAccount $bankAccount): BankAccountResource { abort_if($bankAccount->tenant_code !== $tenant->codigo, 404); $bankAccount->update($request->validated()); return BankAccountResource::make($bankAccount); } public function destroy(Tenant $tenant, BankAccount $bankAccount): Response { abort_if($bankAccount->tenant_code !== $tenant->codigo, 404); $bankAccount->delete(); return response()->noContent(); } public function select(Tenant $tenant, BankAccount $bankAccount): TenantResource { abort_if($bankAccount->tenant_code !== $tenant->codigo, 400, 'Bank account does not belong to this tenant.'); $tenant->selected_bank_account_id = $bankAccount->id; $tenant->save(); return TenantResource::make($tenant->loadMissing(['headerLogo', 'footerLogo', 'selectedBankAccount'])); } public function selected(Tenant $tenant): JsonResponse { $account = $tenant->selectedBankAccount; abort_if(!$account, 404, 'No bank account is currently selected for this tenant.'); return BankAccountResource::make($account)->response(); } }