/**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     //
     // To do change user_id value with logged in user
     if ($request->edit != 0) {
         return $this->update($request, $request->edit);
     }
     $validator = \Validator::make($request->all(), ['title' => 'required', 'city' => 'required']);
     if ($validator->fails()) {
         return response()->json(array('status' => 500, 'monolog' => array('title' => 'errors', 'message' => implode($validator->errors()->all(), '<br>'))));
     }
     DB::beginTransaction();
     $user_id = \Auth::user()->get()->id;
     $property = new Property();
     $property->user_id = $user_id;
     // $property->customer_id = $request->customer_id;
     $property->category_id = $request->category_id;
     $property->currency = $request->currency;
     $property->price = $request->price;
     // $property->discount = $request->discount;
     $property->type = $request->type;
     // $property->publish = $request->publish;
     $property->building_size = $request->building_size;
     $property->land_size = $request->land_size;
     // $property->sold = $request->sold;
     $property->code = $request->code;
     $property->status = $request->status;
     $property->year = $request->year;
     // $property->map_latitude = $request->map_latitude;
     // $property->map_longitude = $request->map_longitude;
     $property->city = $request->city;
     $property->province = $request->province;
     $property->country = $request->country;
     $property->slug = $request->slug;
     // $property->view = $request->view;
     $property->view_north = $request->view_north;
     $property->view_east = $request->view_east;
     $property->view_west = $request->view_west;
     $property->view_south = $request->view_south;
     $property->is_price_request = $request->is_price_request;
     $property->is_exclusive = $request->is_exclusive;
     $property->owner_name = $request->owner_name;
     $property->owner_email = $request->owner_email;
     $property->owner_phone = $request->owner_phone;
     $property->agent_commission = $request->agent_commission;
     $property->agent_contact = $request->agent_contact;
     $property->agent_meet_date = $request->agent_meet_date;
     $property->agent_inspector = $request->agent_inspector;
     $property->sell_reason = $request->sell_reason;
     $property->sell_note = $request->sell_note;
     $property->other_agent = $request->other_agent;
     // $property->display = $request->display;
     $property->orientation = $request->orientation;
     $property->sell_in_furnish = $request->sell_in_furnish;
     $property->lease_period = $request->lease_period;
     $property->lease_year = $request->lease_year;
     // find province, country
     $city = \App\City::where('city_name', $request->city)->first();
     $property->city = $request->city;
     $property->province = $city->province->province_name;
     $property->country = $city->province->country->nicename;
     $property->save();
     Model::unguard();
     // lang
     $property->propertyLanguages()->save(new \App\PropertyLanguage(['locale' => 'en', 'title' => $request->title, 'description' => $request->description]));
     // distances
     if ($request->distance_value) {
         foreach ($request->distance_value as $key => $value) {
             $distance = new \App\Distance();
             $distance->property_id = $property->id;
             $distance->from = $key;
             $distance->value = $value;
             $distance->unit = $request->distance_unit[$key];
             $distance->save();
         }
     }
     // documents
     if ($request->documents) {
         foreach ($request->documents as $key => $value) {
             $document = new \App\Document();
             $document->property_id = $property->id;
             $document->name = $key;
             $document->is_included = $value;
             $document->save();
         }
     }
     // facilities
     if ($request->facilities) {
         foreach ($request->facilities as $key => $value) {
             $facility = new \App\Facility();
             $facility->property_id = $property->id;
             $facility->name = $key;
             $facility->description = $value;
             $facility->save();
         }
     }
     // files
     if ($request->hasFile('files')) {
         foreach ($request->file('files') as $key => $value) {
             $destinationPath = 'uploads/property';
             $extension = $value->getClientOriginalExtension();
             $fileName = date('YmdHis') . '_' . $key . '_kibarer_property' . '.' . $extension;
             $value->move($destinationPath, $fileName);
             $propertyFile = new \App\PropertyFile();
             $propertyFile->property_id = $property->id;
             $propertyFile->file = $fileName;
             $propertyFile->save();
         }
     }
     Model::reguard();
     DB::commit();
     return response()->json(array('status' => 200, 'monolog' => array('title' => 'post success', 'message' => 'Post has been received')));
 }