json(LoanPaidOffLetterOrderIndexResource::collection( LoanPaidOffLetterOrder::query() ->with('branch') ->where('user_id', auth()->id()) ->get() )); } /** * SAVE* */ public function store(LoanPaidOffLetterOrderStoreRequest $request): JsonResponse { Log::channel('form_logs')->info('loan-order-store-request', $request->all()); $data = $request->validated(); LoanPaidOffLetterOrder::forceCreate([ ...$data, ...[ 'user_id' => auth()->id(), ], ]); return response()->json([ 'message' => __('Successfully created'), ], 201); } /** * SHOW* * * ID ugradyp alyan route -da. */ public function show(LoanPaidOffLetterOrder $order) { if ($order->user_id != auth()->id()) { return response()->json(status: 403); } return response()->json(new LoanPaidOffLetterOrderIndexResource($order)); } /** * UPDATE* * * ID ugradyp `route`-da update edip bilyan. Base App Enum-lardan peydalan. Panelkadan gor. */ public function update(Request $request, LoanPaidOffLetterOrder $order): JsonResponse { $data = $request->validate([ /** * Region (https://online.tbbank.gov.tm/api/base-app-enums) */ 'region' => ['sometimes', 'string', Rule::in(array_keys(RegionRepo::values()))], /** * 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) { $order->update($data); }); return response()->json([ 'message' => __('Successfully updated'), ]); } /** * DELETE* */ public function destroy(LoanPaidOffLetterOrder $order): JsonResponse { if ($order->user_id !== auth()->id()) { return response()->json(status: 403); } $order->delete(); return response()->json(); } }