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, 'La cuenta bancaria no pertenece a este tenant.'); $tenant->selected_bank_account_id = $bankAccount->id; $tenant->save(); return TenantResource::make($tenant->loadMissing(['headerLogo', 'footerLogo'])); } public function selected(Tenant $tenant): JsonResponse { $account = $tenant->selectedBankAccount; abort_if(!$account, 404, 'No hay ninguna cuenta bancaria seleccionada para este tenant.'); return BankAccountResource::make($account)->response(); } }