get(); if (!isset($marks)) { return response()->json(); } foreach ($marks as $mark) { $brand = UniModel::model('pipi_auto_brands')->find($mark->brand_id); $tariffs = UniModel::model('pipi_auto_tariffs')->where('model_id', $mark->id)->get(); if ($mark->name != 'Ввод остатков') { foreach ($tariffs as $tariff) { $tariffs_new[$tariff?->day_range_start . '-' . $tariff->day_range_end] = [ 'name' => $tariff?->name, 'price' => $tariff?->base_rate, 'min' => $tariff?->day_range_start, 'max' => $tariff?->day_range_end, ]; } $data[$mark->name . '-' . $mark->year] = [ 'id' => $mark->id, 'brand' => $brand->name, 'mark' => $mark->name, 'year' => $mark->year, 'tariffs' => $tariffs_new ]; } } return response()->json($data); } public function sendApplication(Request $request): JsonResponse { $data = $request->all(); $data['started_at'] = Carbon::parse($data['started_at'])?->format('Y-m-d H:i:s'); $data['ended_at'] = Carbon::parse($data['ended_at'])?->format('Y-m-d H:i:s'); $authToken = null; $data['car_id'] = null; if ($request->header('Authorization')) { $user = auth()->guard('api')->user(); $data['user_id'] = $user ? $user->id : null; } else { $user = UniModel::model('core_users') ->where('email', $data['email']) ->first(); if ($user) { $data['user_id'] = $user->id; $tokenResult = $user->createToken('auth_token'); $authToken = $tokenResult->accessToken; } else { $data['user_id'] = null; } } UniModel::model('pipi_applications')->create([ 'rent_day' => $data['rent_day'], 'started_at' => $data['started_at'], 'ended_at' => $data['ended_at'], 'user_id' => $data['user_id'], 'phone' => $data['phone'], 'car_id' => $data['car_id'], 'user_name' => $data['name'] ?? null, 'user_surname' => $data['surname'] ?? null, 'user_email' => $data['email'] ?? null, 'status' => ApplicationStatus::pending->value ]); $response = [ 'status' => 'OK', 'message' => 'Заявка создана', ]; if ($authToken) { $response['auth_token'] = $authToken; $response['message'] = 'Заявка создана, и вы были автоматически авторизованы'; } elseif (!isset($data['user_id'])) { $response['message'] = 'Заявка создана, с вами свяжется наш оператор'; } return response()->json($response); } public function getApplications(): JsonResponse { return response()->json(UniModel::model('pipi_applications')->get()); } public function login(Request $request) { $credentials = $request->only('email', 'password'); if (auth()->attempt($credentials)) { $user = auth()->user(); $tokenResult = $user->createToken('auth_token'); $response = [ 'access_token' => $tokenResult->plainTextToken, 'token_type' => 'Bearer', 'user' => [ 'id' => $user->id, 'name' => $user->name, 'email' => $user->email, ], ]; return response()->json($response, 200); } else { return response()->json(['error' => 'Unauthorized'], 401); } } }