This commit is contained in:
Simon Pocrnjič
2025-09-28 00:30:18 +02:00
parent 7227c888d4
commit a913cfc381
44 changed files with 2123 additions and 587 deletions
+77
View File
@@ -3,6 +3,7 @@
namespace App\Http\Controllers;
use App\Models\Person\Person;
use App\Models\BankAccount;
use Illuminate\Http\Request;
use Inertia\Inertia;
@@ -78,6 +79,13 @@ public function updateAddress(Person $person, int $address_id, Request $request)
]);
}
public function deleteAddress(Person $person, int $address_id, Request $request)
{
$address = $person->addresses()->findOrFail($address_id);
$address->delete(); // soft delete
return response()->json(['status' => 'ok']);
}
public function createPhone(Person $person, Request $request)
{
$attributes = $request->validate([
@@ -116,6 +124,13 @@ public function updatePhone(Person $person, int $phone_id, Request $request)
]);
}
public function deletePhone(Person $person, int $phone_id, Request $request)
{
$phone = $person->phones()->findOrFail($phone_id);
$phone->delete(); // soft delete
return response()->json(['status' => 'ok']);
}
public function createEmail(Person $person, Request $request)
{
$attributes = $request->validate([
@@ -160,4 +175,66 @@ public function updateEmail(Person $person, int $email_id, Request $request)
'email' => $email
]);
}
public function deleteEmail(Person $person, int $email_id, Request $request)
{
$email = $person->emails()->findOrFail($email_id);
$email->delete();
return response()->json(['status' => 'ok']);
}
// TRR (bank account) CRUD
public function createTrr(Person $person, Request $request)
{
$attributes = $request->validate([
'iban' => 'nullable|string|max:34',
'bank_name' => 'required|string|max:100',
'bic_swift' => 'nullable|string|max:11',
'account_number' => 'nullable|string|max:34',
'routing_number' => 'nullable|string|max:20',
'currency' => 'required|string|size:3',
'country_code' => 'nullable|string|size:2',
'holder_name' => 'nullable|string|max:125',
'notes' => 'nullable|string',
'meta' => 'nullable|array',
]);
// Create without dedup (IBAN may be null or vary); could dedup by IBAN if provided
$trr = $person->bankAccounts()->create($attributes);
return response()->json([
'trr' => BankAccount::findOrFail($trr->id)
]);
}
public function updateTrr(Person $person, int $trr_id, Request $request)
{
$attributes = $request->validate([
'iban' => 'nullable|string|max:34',
'bank_name' => 'required|string|max:100',
'bic_swift' => 'nullable|string|max:11',
'account_number' => 'nullable|string|max:34',
'routing_number' => 'nullable|string|max:20',
'currency' => 'required|string|size:3',
'country_code' => 'nullable|string|size:2',
'holder_name' => 'nullable|string|max:125',
'notes' => 'nullable|string',
'meta' => 'nullable|array',
'is_active' => 'sometimes|boolean',
]);
$trr = $person->bankAccounts()->findOrFail($trr_id);
$trr->update($attributes);
return response()->json([
'trr' => $trr
]);
}
public function deleteTrr(Person $person, int $trr_id, Request $request)
{
$trr = $person->bankAccounts()->findOrFail($trr_id);
$trr->delete();
return response()->json(['status' => 'ok']);
}
}