diff --git a/app/Services/APIs/CustomerAPIs/RestaurantApiServices.php b/app/Services/APIs/CustomerAPIs/RestaurantApiServices.php index 4803fb3..9bba50f 100644 --- a/app/Services/APIs/CustomerAPIs/RestaurantApiServices.php +++ b/app/Services/APIs/CustomerAPIs/RestaurantApiServices.php @@ -317,7 +317,7 @@ class RestaurantApiServices ->first(); $restTime = RestaurantTimeInterval::where('manage_restaurants_xid', $rest->id)->first(); - $restTimeHours = $restTime->time_hours; + $restTimeHours = $restTime ? $restTime->time_hours : 0; // Initialize Guzzle HTTP client $client = new Client(); @@ -371,6 +371,52 @@ class RestaurantApiServices $rest->is_Redeemed = false; $rest->redeem_date = null; } + + // Calculate next redemption time + $lastRedeem = RedeemRestaurant::where('iam_principal_xid', $customerIamId) + ->where('manage_restaurants_xid', $rest->id) + ->where('is_redeem', 1) + ->orderBy('redeem_date', 'desc') + ->first(); + + $stateTime = TimeInterval::select('time_hours')->where('manage_state_xid', $rest->state_xid)->first(); + $stateTimeHours = $stateTime ? $stateTime->time_hours : 0; + + $currentTime = Carbon::now(); + $nextRedeemTime = "Now"; + + if ($lastRedeem) { + $lastRedeemTime = Carbon::parse($lastRedeem->redeem_date); + + $restAllowedRedeemTime = $lastRedeemTime->copy()->addHours(intval($restTimeHours)); + $stateAllowedRedeemTime = $lastRedeemTime->copy()->addHours(intval($stateTimeHours)); + + if ($currentTime < $restAllowedRedeemTime) { + $nextRedeemTime = $restAllowedRedeemTime->toDateTimeString(); + } else if ($currentTime < $stateAllowedRedeemTime) { + $nextRedeemTime = $stateAllowedRedeemTime->toDateTimeString(); + } + } + + // Include logic for preventing redemption in the same state + if ($nextRedeemTime === "Now") { + $lastStateRedeem = RedeemRestaurant::where('iam_principal_xid', $customerIamId) + ->where('state_xid', $rest->state_xid) + ->where('is_redeem', 1) + ->orderBy('redeem_date', 'desc') + ->first(); + + if ($lastStateRedeem) { + $lastStateRedeemTime = Carbon::parse($lastStateRedeem->redeem_date); + $stateAllowedRedeemTime = $lastStateRedeemTime->copy()->addHours(intval($stateTimeHours)); + + if ($currentTime < $stateAllowedRedeemTime) { + $nextRedeemTime = $stateAllowedRedeemTime->toDateTimeString(); + } + } + } + + $rest->next_redeem_time = $nextRedeemTime; } if (!$rest) { @@ -388,6 +434,7 @@ class RestaurantApiServices + public function removeFromFavourite($customerIamId, $request) { try { diff --git a/app/Services/APIs/RestaurantService/RestAuthApiService.php b/app/Services/APIs/RestaurantService/RestAuthApiService.php index d5fbc2b..dbef22b 100644 --- a/app/Services/APIs/RestaurantService/RestAuthApiService.php +++ b/app/Services/APIs/RestaurantService/RestAuthApiService.php @@ -80,8 +80,9 @@ class RestAuthApiService ]); DB::commit(); + $adminEmail = config('constants.ADMIN_EMAIL'); - Mail::to('sayliraut@yopmail.com')->send(new \App\Mail\AccountRegister($restaurantuser, $selectedRestaurant->name)); + Mail::to($adminEmail)->send(new \App\Mail\AccountRegister($restaurantuser, $selectedRestaurant->name)); // Prepare the response data $response = [ diff --git a/config/constants.php b/config/constants.php index 105380c..76482c0 100644 --- a/config/constants.php +++ b/config/constants.php @@ -14,8 +14,8 @@ return [ ], 'PLATFORM' => ['ios', 'android', 'web'], - - + + 'subscription' => [ 'stripe_private_key' => env('STRIPE_KEY'), 'stripe_secret_key' => env('STRIPE_SECRET'), @@ -24,6 +24,10 @@ return [ 'googlePlaces'=>[ 'api_key'=>env('GOOGLE_PLACE_API_KEY') - ] - + ], + + 'ADMIN_EMAIL' => env('ADMIN_EMAIL', 'sayliraut@yopmail.com'), + // 'ADMIN_EMAIL' => env('ADMIN_EMAIL', 'contact@cheerstotheseason.com'), + + ];