Remove booking pricing and fix venue image delivery

هذا الالتزام موجود في:
Abdul Kareem
2026-02-22 21:13:34 +03:00
الأصل 090427cf2c
التزام 23fb3a5d92
4 ملفات معدلة مع 145 إضافات و70 حذوفات

عرض الملف

@@ -6,8 +6,6 @@ use App\Http\Controllers\Controller;
use App\Models\Reservation;
use App\Models\Notification;
use App\Models\ReservationStatusHistory;
use App\Models\ReservationFee;
use App\Models\PricingRule;
use App\Models\ReservationTableAssignment;
use App\Models\VenueTable;
use App\Models\ReservationReminder;
@@ -304,12 +302,11 @@ class ReservationController extends Controller
}
$reservation = null;
$fee = null;
$table = null;
$reminder = null;
try {
DB::transaction(function () use ($validated, $user, &$reservation, &$fee, &$table, &$reminder) {
DB::transaction(function () use ($validated, $user, &$reservation, &$table, &$reminder) {
$reservation = Reservation::create([
'code' => $this->generateCode(),
'customer_id' => $user->id,
@@ -332,7 +329,6 @@ class ReservationController extends Controller
'venue_table_id' => $table->id,
]);
$fee = $this->createReservationFee($reservation);
$reminder = $this->createReservationReminder($reservation);
$this->logStatusChange($reservation, null, 'pending', $user->id);
});
@@ -350,12 +346,6 @@ class ReservationController extends Controller
'reservation_time' => $reservation->reservation_time,
'party_size' => $reservation->party_size,
],
'fee' => [
'price_per_person' => $fee->price_per_person,
'party_size' => $fee->party_size,
'total_amount' => $fee->total_amount,
'currency' => $fee->currency,
],
'table' => [
'id' => $table->id,
'name' => $table->name,
@@ -377,60 +367,6 @@ class ReservationController extends Controller
return $code;
}
private function createReservationFee(Reservation $reservation): ReservationFee
{
$venue = $reservation->venue ?: Venue::find($reservation->venue_id);
$rule = $this->getPricingRule($venue);
$pricePerPerson = $rule ? (float) $rule->price_per_person : 0.0;
$total = $pricePerPerson * (int) $reservation->party_size;
$currency = env('APP_CURRENCY', 'USD');
return ReservationFee::create([
'reservation_id' => $reservation->id,
'pricing_rule_id' => $rule?->id,
'price_per_person' => $pricePerPerson,
'party_size' => $reservation->party_size,
'total_amount' => $total,
'currency' => $currency,
]);
}
private function getPricingRule(?Venue $venue): ?PricingRule
{
if (! $venue) {
return PricingRule::where('scope', 'global_type')
->where('is_active', true)
->latest('id')
->first();
}
$venueRule = PricingRule::where('scope', 'venue')
->where('venue_id', $venue->id)
->where('is_active', true)
->latest('id')
->first();
if ($venueRule) {
return $venueRule;
}
$typeRule = PricingRule::where('scope', 'global_type')
->where('venue_type', (string) $venue->type)
->where('is_active', true)
->latest('id')
->first();
if ($typeRule) {
return $typeRule;
}
return PricingRule::where('scope', 'global_type')
->where('is_active', true)
->latest('id')
->first();
}
private function findAvailableTable(Reservation $reservation, bool $includePending, bool $lockRows = false): ?VenueTable
{
$durationMinutes = (int) env('RESERVATION_DURATION_MINUTES', 90);