feat: refactored accommodation booking status model

This commit is contained in:
Björn Fromme
2026-08-19 11:46:52 +02:00
parent e8accbb3ed
commit 5a3957e143
42 changed files with 1190 additions and 277 deletions
@@ -7,8 +7,8 @@ namespace App\Tests\Controller\Api;
use App\Controller\Api\AccommodationBookingController;
use App\Entity\Groups\Accommodation;
use App\Entity\Groups\AccommodationBooking;
use App\Enum\Groups\AccommodationBookingOrigin;
use App\Enum\Groups\AccommodationBookingStatus;
use App\Enum\Groups\AccommodationBookingType;
use App\Repository\Groups\AccommodationBookingRepository;
use App\Service\AccommodationBookingBreakdownCalculator;
use App\Service\AccommodationBookingService;
@@ -57,7 +57,7 @@ class AccommodationBookingControllerTest extends TestCase
$booking->setBoardServiceDiscount(20);
$booking->setAdditionalServicesDiscount(30);
$booking->setStatus(AccommodationBookingStatus::Confirmed);
$booking->setType(AccommodationBookingType::Booking);
$booking->setOrigin(AccommodationBookingOrigin::Direct);
$booking->setAcceptedAt(new \DateTimeImmutable('2026-07-15T10:00:00+00:00'));
$bookingRepository = $this->createMock(AccommodationBookingRepository::class);
@@ -88,7 +88,7 @@ class AccommodationBookingControllerTest extends TestCase
self::assertSame([
'uuid' => $booking->getUuid(),
'status' => 'confirmed',
'type' => 'booking',
'type' => 'direct',
'dateFrom' => '2026-07-20',
'dateTo' => '2026-07-25',
'nights' => 5,
@@ -139,7 +139,7 @@ class AccommodationBookingControllerTest extends TestCase
self::assertArrayNotHasKey('currency', $payload['accommodation']);
}
public function testSingleReturnsOpenStatusAndInquiryTypeForAnOffer(): void
public function testSingleReturnsOpenStatusAndOfferOriginForAnOffer(): void
{
$booking = new AccommodationBooking();
$booking->setDateFrom(new \DateTimeImmutable('2026-08-01'));
@@ -149,7 +149,7 @@ class AccommodationBookingControllerTest extends TestCase
$booking->setLastName('Beispiel');
$booking->setEmail('[email protected]');
$booking->setStatus(AccommodationBookingStatus::Open);
$booking->setType(AccommodationBookingType::Inquiry);
$booking->setOrigin(AccommodationBookingOrigin::Offer);
$bookingRepository = $this->createMock(AccommodationBookingRepository::class);
$bookingRepository
@@ -166,7 +166,7 @@ class AccommodationBookingControllerTest extends TestCase
$payload = json_decode((string) $response->getContent(), true, 512, JSON_THROW_ON_ERROR);
self::assertSame('open', $payload['status']);
self::assertSame('inquiry', $payload['type']);
self::assertSame('offer', $payload['type']);
self::assertNull($payload['priceBreakdown']);
self::assertNull($payload['acceptedAt']);
}
@@ -230,7 +230,7 @@ class AccommodationBookingControllerTest extends TestCase
self::assertSame(Response::HTTP_OK, $response->getStatusCode());
self::assertSame('received', $payload['status']);
self::assertSame('inquiry', $payload['type']);
self::assertSame('offer', $payload['type']);
self::assertSame(AccommodationBookingStatus::Received, $booking->getStatus());
self::assertNotNull($booking->getAcceptedAt());
self::assertSame($booking->getAcceptedAt()->format(\DATE_ATOM), $payload['acceptedAt']);