diff --git a/app/Http/Controllers/Api/LoanPaidOffLetterOrder/Requests/LoanPaidOffLetterOrderStoreRequest.php b/app/Http/Controllers/Api/LoanPaidOffLetterOrder/Requests/LoanPaidOffLetterOrderStoreRequest.php index f48d7b2..73be1ba 100644 --- a/app/Http/Controllers/Api/LoanPaidOffLetterOrder/Requests/LoanPaidOffLetterOrderStoreRequest.php +++ b/app/Http/Controllers/Api/LoanPaidOffLetterOrder/Requests/LoanPaidOffLetterOrderStoreRequest.php @@ -63,7 +63,7 @@ class LoanPaidOffLetterOrderStoreRequest extends FormRequest /** * Date of birth * - * @example 2000 + * @example 10.10.2000 */ 'born_at' => ['required', 'before_or_equal:today'], diff --git a/app/Http/Controllers/Api/LoanPaidOffLetterOrderController.php b/app/Http/Controllers/Api/LoanPaidOffLetterOrderController.php index f24563c..24b57cc 100644 --- a/app/Http/Controllers/Api/LoanPaidOffLetterOrderController.php +++ b/app/Http/Controllers/Api/LoanPaidOffLetterOrderController.php @@ -7,11 +7,14 @@ use App\Http\Controllers\Api\LoanPaidOffLetterOrder\Resources\LoanPaidOffLetterO use App\Http\Controllers\Controller; use App\Models\Order\Loan\LoanPaidOffLetterOrder; use App\Repos\Order\OrderRepo; +use App\Repos\System\Settings\Legal\PassportRepo; +use App\Repos\System\Settings\Location\RegionRepo; use Dedoc\Scramble\Attributes\Group; use Illuminate\Database\Eloquent\Model; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; +use Illuminate\Validation\Rule; #[Group('Sargytlar - Karz - Karzyň ýapylandygy barada güwanama')] class LoanPaidOffLetterOrderController extends Controller @@ -41,8 +44,6 @@ class LoanPaidOffLetterOrderController extends Controller ...$data, ...[ 'user_id' => auth()->id(), - 'status' => OrderRepo::PENDING, - 'source' => OrderRepo::MOBILE_DEVICE, ], ]); @@ -56,13 +57,13 @@ class LoanPaidOffLetterOrderController extends Controller * * ID ugradyp alyan route -da. */ - public function show(LoanPaidOffLetterOrder $loanPaidOffLetter): JsonResponse + public function show(LoanPaidOffLetterOrder $order) { - if ($loanPaidOffLetter->user_id != auth()->id()) { + if ($order->user_id != auth()->id()) { return response()->json(status: 403); } - return response()->json(new LoanPaidOffLetterOrderIndexResource($loanPaidOffLetter)); + return response()->json(new LoanPaidOffLetterOrderIndexResource($order)); } /** @@ -70,12 +71,98 @@ class LoanPaidOffLetterOrderController extends Controller * * ID ugradyp `route`-da update edip bilyan. Base App Enum-lardan peydalan. Panelkadan gor. */ - public function update(Request $request, LoanPaidOffLetterOrder $loanPaidOffLetter): JsonResponse + public function update(Request $request, LoanPaidOffLetterOrder $order): JsonResponse { - $data = $request->all(); + $data = $request->validate([ + /** + * Region (https://online.tbbank.gov.tm/api/base-app-enums) + */ + 'region' => ['sometimes', 'string', Rule::in(array_keys(RegionRepo::values()))], - Model::unguarded(function () use ($loanPaidOffLetter, $data) { - $loanPaidOffLetter->update($data); + /** + * Branch id (https://online.tbbank.gov.tm/api/branches) + */ + 'branch_id' => ['sometimes', 'integer', Rule::exists('branches', 'id')], + + /** + * Customer name + * + * @example Mahmyt + */ + 'customer_name' => ['sometimes', 'string', 'max:255'], + + /** + * Customer surname + * + * @example Allaberdiyev + */ + 'customer_surname' => ['sometimes', 'string', 'max:255'], + + /** + * Customer patronic name + * + * @example Öwezowiç + */ + 'customer_patronic_name' => ['nullable', 'string', 'max:255'], + + /** + * Passport serie + */ + 'passport_serie' => ['sometimes', 'string', Rule::in(array_keys(PassportRepo::values()))], + + /** + * Passport number + * + * @example 100999 + */ + 'passport_id' => ['sometimes', 'numeric', 'digits:6'], + + /** + * Date of birth + * + * @example 10.10.2000 + */ + 'born_at' => ['sometimes', 'before_or_equal:today'], + + /** + * Phone number + * + * @example 65999990 + */ + 'phone' => ['sometimes', 'integer', 'between:61000000, 71999999'], + + /** + * Contract number + * + * @example 3242358989234 + */ + 'loan_contract_number' => ['sometimes', 'string', 'max:255'], + + /** + * Contract date + * + * @example 20.34.23 + */ + 'loan_contract_date' => ['sometimes', 'string', 'max:255'], + + /** + * Loan amount + * + * @example 20000 + */ + 'loan_amount' => ['sometimes', 'string', 'max:255'], + + /** + * Loan reason + * + * @example Puldan pul yasamak ucin + */ + 'loan_reason' => ['sometimes', 'string', 'max:255'], + ]); + + Model::unguarded(function () use ($order, $data) { + info([$data]); + $order->update($data); }); return response()->json([ @@ -86,13 +173,13 @@ class LoanPaidOffLetterOrderController extends Controller /** * DELETE* */ - public function destroy(LoanPaidOffLetterOrder $loanPaidOffLetter): JsonResponse + public function destroy(LoanPaidOffLetterOrder $order): JsonResponse { - if ($loanPaidOffLetter->user_id === auth()->id()) { + if ($order->user_id !== auth()->id()) { return response()->json(status: 403); } - $loanPaidOffLetter->delete(); + $order->delete(); return response()->json(); } diff --git a/app/Models/Order/Loan/LoanPaidOffLetterOrder.php b/app/Models/Order/Loan/LoanPaidOffLetterOrder.php index 7622bbb..9493901 100644 --- a/app/Models/Order/Loan/LoanPaidOffLetterOrder.php +++ b/app/Models/Order/Loan/LoanPaidOffLetterOrder.php @@ -39,6 +39,8 @@ class LoanPaidOffLetterOrder extends Model use HasFactory; use SoftDeletes; + protected $table = 'loan_paid_off_letter_orders'; + /** * The attributes that are mass assignable. * diff --git a/app/Modules/LoanOrder/Controllers/LoanOrderController.php b/app/Modules/LoanOrder/Controllers/LoanOrderController.php index 88e71ea..7037205 100644 --- a/app/Modules/LoanOrder/Controllers/LoanOrderController.php +++ b/app/Modules/LoanOrder/Controllers/LoanOrderController.php @@ -159,7 +159,7 @@ class LoanOrderController extends Controller */ public function destroy(LoanOrder $loanOrder): JsonResponse { - if ($loanOrder->user_id === auth()->id()) { + if ($loanOrder->user_id != auth()->id()) { return response()->json(status: 403); } diff --git a/routes/api.php b/routes/api.php index 66dc8d0..620ccf1 100644 --- a/routes/api.php +++ b/routes/api.php @@ -81,12 +81,12 @@ Route::middleware(['auth:sanctum', 'not_banned'])->group(function () { Route::post('loan-remaining-order/{order}', [LoanOrderRemainingOrderController::class, 'update']); Route::delete('loan-remaining-order/{order}', [LoanOrderRemainingOrderController::class, 'destroy']); - // Loan paid off letters... + // Loan paid off letters... [tested fully] Route::get('loan-paid-off-letter-orders', [LoanPaidOffLetterOrderController::class, 'index']); Route::get('loan-paid-off-letter-orders/{order}', [LoanPaidOffLetterOrderController::class, 'show']); Route::post('loan-paid-off-letter-orders', [LoanPaidOffLetterOrderController::class, 'store']); Route::post('loan-paid-off-letter-orders/{order}', [LoanPaidOffLetterOrderController::class, 'update']); - Route::delete('loan-paid-off-letter-orders/{order}', [LoanPaidOffLetterOrderController::class, 'destory']); + Route::delete('loan-paid-off-letter-orders/{order}', [LoanPaidOffLetterOrderController::class, 'destroy']); // Alerts... Route::get('alerts', [AlertController::class, 'index']);