diff --git a/database/factories/EventFactory.php b/database/factories/EventFactory.php index d4a23a9..9b069af 100644 --- a/database/factories/EventFactory.php +++ b/database/factories/EventFactory.php @@ -3,7 +3,7 @@ namespace LaravelEnso\Calendar\Database\Factories; use Illuminate\Database\Eloquent\Factories\Factory; -use LaravelEnso\Calendar\Enums\Frequencies; +use LaravelEnso\Calendar\Enums\Frequency; use LaravelEnso\Calendar\Models\Calendar; use LaravelEnso\Calendar\Models\Event; @@ -18,7 +18,7 @@ public function definition() 'body' => $this->faker->text, 'title' => $this->faker->title, 'calendar_id' => Calendar::factory(), - 'frequency' => Frequencies::Once, + 'frequency' => Frequency::Once->value, 'start_date' => $this->faker->date('Y-m-d'), 'end_date' => $this->faker->date('Y-m-d'), 'start_time' => '12:00', diff --git a/database/migrations/2019_03_20_100000_create_calendars_table.php b/database/migrations/2019_03_20_100000_create_calendars_table.php index aa2b342..dc42e3d 100644 --- a/database/migrations/2019_03_20_100000_create_calendars_table.php +++ b/database/migrations/2019_03_20_100000_create_calendars_table.php @@ -15,7 +15,7 @@ public function up() $table->string('color'); $table->boolean('private'); - $table->integer('created_by')->unsigned()->index()->nullable(); + $table->unsignedInteger('created_by')->index()->nullable(); $table->foreign('created_by')->references('id')->on('users'); $table->timestamps(); diff --git a/database/migrations/2019_03_21_100000_create_calendar_events_table.php b/database/migrations/2019_03_21_100000_create_calendar_events_table.php index b91df72..edf339f 100644 --- a/database/migrations/2019_03_21_100000_create_calendar_events_table.php +++ b/database/migrations/2019_03_21_100000_create_calendar_events_table.php @@ -11,9 +11,9 @@ public function up() Schema::create('calendar_events', function (Blueprint $table) { $table->increments('id'); - $table->integer('parent_id')->nullable()->unsigned()->index(); + $table->unsignedInteger('parent_id')->nullable()->index(); - $table->integer('calendar_id')->unsigned()->index(); + $table->unsignedInteger('calendar_id')->index(); $table->foreign('calendar_id')->index() ->references('id')->on('calendars')->onDelete('cascade'); @@ -34,7 +34,7 @@ public function up() $table->decimal('lat', 10, 8)->nullable(); $table->decimal('lng', 11, 8)->nullable(); - $table->integer('created_by')->unsigned()->index()->nullable(); + $table->usignedInteger('created_by')->index()->nullable(); $table->foreign('created_by')->references('id')->on('users'); $table->timestamps(); diff --git a/database/migrations/2019_03_21_100100_create_calendar_reminders_table.php b/database/migrations/2019_03_21_100100_create_calendar_reminders_table.php index aa4ba11..5f0c4e7 100644 --- a/database/migrations/2019_03_21_100100_create_calendar_reminders_table.php +++ b/database/migrations/2019_03_21_100100_create_calendar_reminders_table.php @@ -11,11 +11,11 @@ public function up() Schema::create('calendar_reminders', function (Blueprint $table) { $table->increments('id'); - $table->integer('event_id')->unsigned()->index(); + $table->unsignedInteger('event_id')->index(); $table->foreign('event_id')->references('id')->on('calendar_events') ->onDelete('cascade'); - $table->integer('created_by')->unsigned()->index(); + $table->unsignedInteger('created_by')->index(); $table->foreign('created_by')->references('id')->on('users'); $table->datetime('scheduled_at')->index(); diff --git a/database/migrations/2019_03_21_100200_create_calendar_event_user_pivot_table.php b/database/migrations/2019_03_21_100200_create_calendar_event_user_pivot_table.php index 381587c..74c59b8 100644 --- a/database/migrations/2019_03_21_100200_create_calendar_event_user_pivot_table.php +++ b/database/migrations/2019_03_21_100200_create_calendar_event_user_pivot_table.php @@ -9,11 +9,11 @@ public function up() { Schema::create('calendar_event_user', function (Blueprint $table) { - $table->integer('event_id')->unsigned()->index(); + $table->unsignedInteger('event_id')->index(); $table->foreign('event_id')->references('id')->on('calendar_events') ->onUpdate('cascade')->onDelete('cascade'); - $table->integer('user_id')->unsigned()->index(); + $table->unsignedInteger('user_id')->index(); $table->foreign('user_id')->references('id')->on('users') ->onUpdate('cascade')->onDelete('cascade'); diff --git a/src/Calendars/BirthdayCalendar.php b/src/Calendars/BirthdayCalendar.php index f54d22f..6162d88 100644 --- a/src/Calendars/BirthdayCalendar.php +++ b/src/Calendars/BirthdayCalendar.php @@ -26,7 +26,7 @@ public function name(): string public function color(): string { - return Colors::Purple; + return Colors::Purple->value; } public function private(): bool diff --git a/src/Calendars/BirthdayEvent.php b/src/Calendars/BirthdayEvent.php index 1c3fc40..ba07310 100644 --- a/src/Calendars/BirthdayEvent.php +++ b/src/Calendars/BirthdayEvent.php @@ -5,7 +5,7 @@ use Carbon\Carbon; use LaravelEnso\Calendar\Contracts\Calendar; use LaravelEnso\Calendar\Contracts\ProvidesEvent; -use LaravelEnso\Calendar\Enums\Frequencies; +use LaravelEnso\Calendar\Enums\Frequency; use LaravelEnso\People\Models\Person; class BirthdayEvent implements ProvidesEvent @@ -56,7 +56,7 @@ public function getCalendar(): Calendar public function frequency(): int { - return Frequencies::Yearly; + return Frequency::Yearly->value; } public function recurrenceEnds(): ?Carbon diff --git a/src/EnumServiceProvider.php b/src/EnumServiceProvider.php index 983da25..99cfb8d 100644 --- a/src/EnumServiceProvider.php +++ b/src/EnumServiceProvider.php @@ -2,14 +2,10 @@ namespace LaravelEnso\Calendar; -use LaravelEnso\Calendar\Enums\Frequencies; -use LaravelEnso\Calendar\Enums\UpdateType; use LaravelEnso\Enums\EnumServiceProvider as ServiceProvider; class EnumServiceProvider extends ServiceProvider { public $register = [ - 'eventUpdateType' => UpdateType::class, - 'eventFrequencies' => Frequencies::class, ]; } diff --git a/src/Enums/Colors.php b/src/Enums/Colors.php index 5264a8c..53b387a 100644 --- a/src/Enums/Colors.php +++ b/src/Enums/Colors.php @@ -2,37 +2,47 @@ namespace LaravelEnso\Calendar\Enums; -use LaravelEnso\Enums\Services\Enum; +use Illuminate\Support\Collection; +use LaravelEnso\Enums\Contracts\Select; +use LaravelEnso\Enums\Traits\Select as Options; -class Colors extends Enum +enum Colors: string implements Select { - public const Red = 'red'; - public const Blue = 'blue'; - public const Green = 'green'; - public const Yellow = 'yellow'; - public const Purple = 'purple'; - public const Orange = 'orange'; - public const Brown = 'brown'; - public const Black = 'black'; - public const White = 'white'; - public const Pink = 'pink'; - public const Aquamarine = 'aquamarine'; - public const Teal = 'teal'; - public const Gold = 'gold'; - public const Indigo = 'indigo'; - public const Cyan = 'cyan'; - public const Lime = 'lime'; - public const Violet = 'violet'; - public const Magenta = 'magenta'; - public const Beige = 'beige'; - public const Salmon = 'salmon'; - public const Coral = 'coral'; - public const Navy = 'navy'; - public const Olive = 'olive'; - public const Turquoise = 'turquoise'; - public const Maroon = 'maroon'; - public const Lavender = 'lavender'; - public const Khaki = 'khaki'; - public const Crimson = 'crimson'; - public const Orchid = 'orchid'; + use Options; + + case Red = 'red'; + case Blue = 'blue'; + case Green = 'green'; + case Yellow = 'yellow'; + case Purple = 'purple'; + case Orange = 'orange'; + case Brown = 'brown'; + case Black = 'black'; + case White = 'white'; + case Pink = 'pink'; + case Aquamarine = 'aquamarine'; + case Teal = 'teal'; + case Gold = 'gold'; + case Indigo = 'indigo'; + case Cyan = 'cyan'; + case Lime = 'lime'; + case Violet = 'violet'; + case Magenta = 'magenta'; + case Beige = 'beige'; + case Salmon = 'salmon'; + case Coral = 'coral'; + case Navy = 'navy'; + case Olive = 'olive'; + case Turquoise = 'turquoise'; + case Maroon = 'maroon'; + case Lavender = 'lavender'; + case Khaki = 'khaki'; + case Crimson = 'crimson'; + case Orchid = 'orchid'; + + public static function values(): Collection + { + return Collection::wrap(self::cases()) + ->map(fn ($case) => $case->value); + } } diff --git a/src/Enums/Frequencies.php b/src/Enums/Frequencies.php deleted file mode 100644 index 5ea4977..0000000 --- a/src/Enums/Frequencies.php +++ /dev/null @@ -1,15 +0,0 @@ - 'Only This', - self::ThisAndFuture => 'This And Future', - self::All => 'All', - ]; + public function map(): string + { + return match ($this) { + self::OnlyThis => 'Only This', + self::ThisAndFuture => 'This And Future', + self::All => 'All', + }; + } + + public static function registerBy(): string + { + return 'eventUpdateType'; + } public static function forParent() { - return static::select() - ->reject(fn ($updateType) => $updateType->id === static::All); + return collect([self::OnlyThis, self::ThisAndFuture]) + ->map(fn ($case) => (object) ['id' => $case->value, 'name' => $case->map()]); } } diff --git a/src/Forms/Builders/Event.php b/src/Forms/Builders/Event.php index 31c8ca7..6e2f8c1 100644 --- a/src/Forms/Builders/Event.php +++ b/src/Forms/Builders/Event.php @@ -2,7 +2,7 @@ namespace LaravelEnso\Calendar\Forms\Builders; -use LaravelEnso\Calendar\Enums\Frequencies; +use LaravelEnso\Calendar\Enums\Frequency; use LaravelEnso\Calendar\Http\Resources\Reminder; use LaravelEnso\Calendar\Models\Event as Model; use LaravelEnso\Forms\Services\Form; @@ -26,7 +26,7 @@ public function create() public function edit(Model $event) { return $this->form->value('attendees', $event->attendeeList()) - ->meta('recurrence_ends_at', 'hidden', $event->frequency === Frequencies::Once) + ->meta('recurrence_ends_at', 'hidden', $event->frequency === Frequency::Once->value) ->value('reminders', Reminder::collection($event->reminders)) ->actions([]) ->edit($event); diff --git a/src/Forms/Templates/event.json b/src/Forms/Templates/event.json index a1ff62d..0ad3aa8 100644 --- a/src/Forms/Templates/event.json +++ b/src/Forms/Templates/event.json @@ -143,7 +143,7 @@ "meta": { "custom": true, "type": "select", - "options": "LaravelEnso\\Calendar\\Enums\\Frequencies" + "options": "LaravelEnso\\Calendar\\Enums\\Frequency" } }, { diff --git a/src/Http/Requests/ValidateCalendar.php b/src/Http/Requests/ValidateCalendar.php index 1f12780..4d27314 100644 --- a/src/Http/Requests/ValidateCalendar.php +++ b/src/Http/Requests/ValidateCalendar.php @@ -3,6 +3,7 @@ namespace LaravelEnso\Calendar\Http\Requests; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Validation\Rule; use LaravelEnso\Calendar\Enums\Colors; class ValidateCalendar extends FormRequest @@ -16,7 +17,7 @@ public function rules() { return [ 'name' => 'required', - 'color' => 'required|in:'.Colors::keys()->implode(','), + 'color' => Rule::Enum(Colors::class), 'private' => 'required|boolean', ]; } diff --git a/src/Http/Requests/ValidateEvent.php b/src/Http/Requests/ValidateEvent.php index c3a7888..a988901 100644 --- a/src/Http/Requests/ValidateEvent.php +++ b/src/Http/Requests/ValidateEvent.php @@ -5,8 +5,9 @@ use Carbon\Carbon; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Support\Collection; +use Illuminate\Validation\Rule; use Illuminate\Validation\Validator; -use LaravelEnso\Calendar\Enums\Frequencies; +use LaravelEnso\Calendar\Enums\Frequency; use LaravelEnso\Calendar\Enums\UpdateType; use LaravelEnso\Calendar\Models\Calendar; use LaravelEnso\Helpers\Traits\FiltersRequest; @@ -26,7 +27,7 @@ public function rules() 'title' => $this->requiredOrFilled(), 'body' => 'nullable', 'calendar_id' => $this->requiredOrFilled().'|in:'.Calendar::pluck('id')->implode(','), - 'frequency' => $this->requiredOrFilled().'|in:'.Frequencies::keys()->implode(','), + 'frequency' => [$this->requiredOrFilled(), Rule::enum(Frequency::class)], 'location' => 'nullable', 'lat' => 'nullable', 'lng' => 'nullable', @@ -37,7 +38,7 @@ public function rules() 'attendees.*' => 'exists:users,id', 'recurrence_ends_at' => 'nullable', 'is_all_day' => $this->requiredOrFilled().'|boolean', - 'updateType' => 'nullable|in:'.UpdateType::keys()->implode(','), + 'updateType' => ['nullable', Rule::enum(UpdateType::class)], ]; } @@ -59,9 +60,9 @@ private function validateFrequency($validator) { $validator->sometimes( 'frequency', - 'not_in:'.Frequencies::Once, + 'not_in:'.Frequency::Once->value, fn () => $this->filled('updateType') - && $this->get('updateType') !== UpdateType::OnlyThis + && $this->get('updateType') !== UpdateType::OnlyThis->value ); } @@ -81,7 +82,7 @@ private function validateEndsAt($validator) 'recurrence_ends_at', 'date|required|after_or_equal:start_date', fn () => $this->has('frequency') - && $this->get('frequency') !== Frequencies::Once + && $this->get('frequency') !== Frequency::Once->value ); } @@ -91,7 +92,7 @@ private function validateRecurrenceEndsAt($validator) 'recurrence_ends_at', 'date|required|after_or_equal:start_date', fn () => $this->has('frequency') - && $this->get('frequency') !== Frequencies::Once + && $this->get('frequency') !== Frequency::Once->value, ); } @@ -114,7 +115,7 @@ function (Validator $validator) { private function predatesSubsequence(): bool { - return $this->filled('updateType') && (int) $this->get('updateType') !== UpdateType::OnlyThis + return $this->filled('updateType') && (int) $this->get('updateType') !== UpdateType::OnlyThis->value && $this->route('event')?->parent_id !== null && Carbon::parse($this->get('start_date'))->lt($this->route('event')->start_date); } @@ -128,7 +129,7 @@ private function requiredOrFilled(): string private function oneWithRecurrence() { - return $this->get('frequency') === Frequencies::Once + return $this->get('frequency') === Frequency::Once && $this->filled('recurrence_ends_at'); } } diff --git a/src/Http/Requests/ValidateEventDestroy.php b/src/Http/Requests/ValidateEventDestroy.php index 8199b09..a191286 100644 --- a/src/Http/Requests/ValidateEventDestroy.php +++ b/src/Http/Requests/ValidateEventDestroy.php @@ -3,7 +3,7 @@ namespace LaravelEnso\Calendar\Http\Requests; use Illuminate\Foundation\Http\FormRequest; -use LaravelEnso\Calendar\Enums\Frequencies; +use LaravelEnso\Calendar\Enums\Frequency; use LaravelEnso\Calendar\Enums\UpdateType; class ValidateEventDestroy extends FormRequest @@ -22,8 +22,8 @@ public function withValidator($validator) { $validator->sometimes( 'updateType', - 'required|in:'.UpdateType::keys()->implode(','), - fn () => $this->route('event')->frequency !== Frequencies::Once + Rule::enum(UpdateType::class), + fn () => $this->route('event')->frequency !== Frequency::Once->value ); } } diff --git a/src/Models/Event.php b/src/Models/Event.php index e35786d..aee76ea 100644 --- a/src/Models/Event.php +++ b/src/Models/Event.php @@ -10,7 +10,7 @@ use Illuminate\Support\Facades\DB; use LaravelEnso\Calendar\Contracts\Calendar as CalendarContract; use LaravelEnso\Calendar\Contracts\ProvidesEvent; -use LaravelEnso\Calendar\Enums\Frequencies; +use LaravelEnso\Calendar\Enums\Frequency; use LaravelEnso\Calendar\Services\Frequency\Create; use LaravelEnso\Calendar\Services\Frequency\Delete; use LaravelEnso\Calendar\Services\Frequency\Update; @@ -131,7 +131,7 @@ public function store(?int $updateType = null) public function remove(?int $updateType) { - if ($this->frequency === Frequencies::Once) { + if ($this->frequency === Frequency::Once->value) { $this->delete(); } else { (new Delete($this, $updateType))->handle(); @@ -183,7 +183,7 @@ protected function casts(): array private function saveOneOrCreateSequence() { - if ($this->frequency === Frequencies::Once) { + if ($this->frequency === Frequency::Once->value) { $this->save(); } else { $this->createSequence(); @@ -192,7 +192,7 @@ private function saveOneOrCreateSequence() private function createOrUpdateSequence(int $updateType) { - if ($this->getOriginal('frequency') === Frequencies::Once) { + if ($this->getOriginal('frequency') === Frequency::Once->value) { $this->createSequence(); } else { $this->updateSequence($updateType); diff --git a/src/Services/Frequency/Create.php b/src/Services/Frequency/Create.php index d26bd65..2e45125 100644 --- a/src/Services/Frequency/Create.php +++ b/src/Services/Frequency/Create.php @@ -2,7 +2,7 @@ namespace LaravelEnso\Calendar\Services\Frequency; -use LaravelEnso\Calendar\Enums\Frequencies; +use LaravelEnso\Calendar\Enums\Frequency; use LaravelEnso\Calendar\Models\Event; use LaravelEnso\Calendar\Services\Frequency\Repeats\Daily; use LaravelEnso\Calendar\Services\Frequency\Repeats\Monthly; @@ -16,12 +16,12 @@ class Create protected array $stub; private static $options = [ - Frequencies::Once => Once::class, - Frequencies::Daily => Daily::class, - Frequencies::Weekly => Weekly::class, - Frequencies::Weekdays => Weekday::class, - Frequencies::Monthly => Monthly::class, - Frequencies::Yearly => Yearly::class, + Frequency::Once->value => Once::class, + Frequency::Daily->value => Daily::class, + Frequency::Weekly->value => Weekly::class, + Frequency::Weekdays->value => Weekday::class, + Frequency::Monthly->value => Monthly::class, + Frequency::Yearly->value => Yearly::class, ]; public function __construct(protected Event $event) diff --git a/src/Services/Frequency/Delete.php b/src/Services/Frequency/Delete.php index f665537..8231404 100644 --- a/src/Services/Frequency/Delete.php +++ b/src/Services/Frequency/Delete.php @@ -17,9 +17,9 @@ public function __construct( public function handle() { match ($this->updateType) { - UpdateType::All => $this->all(), - UpdateType::ThisAndFuture => $this->currentAndFuture(), - UpdateType::OnlyThis => $this->current(), + UpdateType::All->value => $this->all(), + UpdateType::ThisAndFuture->value => $this->currentAndFuture(), + UpdateType::OnlyThis->value => $this->current(), }; } diff --git a/src/Services/Frequency/Update.php b/src/Services/Frequency/Update.php index 54180f7..23a2b00 100644 --- a/src/Services/Frequency/Update.php +++ b/src/Services/Frequency/Update.php @@ -54,7 +54,7 @@ private function update() $dirty = $this->event->getDirty(); unset($dirty['parent_id']); - if ($this->updateType === UpdateType::ThisAndFuture) { + if ($this->updateType === UpdateType::ThisAndFuture->value) { $this->currentAndFuture($dirty); } else { $this->all($dirty); @@ -85,6 +85,6 @@ private function shouldRegenerate(): bool private function isSingular(): bool { - return $this->updateType === UpdateType::OnlyThis; + return $this->updateType === UpdateType::OnlyThis->value; } } diff --git a/src/Services/Sequence.php b/src/Services/Sequence.php index 9a72599..0d1953b 100644 --- a/src/Services/Sequence.php +++ b/src/Services/Sequence.php @@ -2,7 +2,7 @@ namespace LaravelEnso\Calendar\Services; -use LaravelEnso\Calendar\Enums\Frequencies; +use LaravelEnso\Calendar\Enums\Frequency; use LaravelEnso\Calendar\Models\Event; class Sequence @@ -86,7 +86,7 @@ private function updateFrequency() if ($this->singular) { $this->event->update([ 'parent_id' => null, - 'frequency' => Frequencies::Once, + 'frequency' => Frequency::Once->value, 'recurrence_ends_at' => null, ]); } diff --git a/tests/features/CalendarTest.php b/tests/features/CalendarTest.php index 620d63c..39f0bb4 100644 --- a/tests/features/CalendarTest.php +++ b/tests/features/CalendarTest.php @@ -32,7 +32,7 @@ public function create_calendar() { $result = $this->post(route('core.calendar.store'), [ 'name' => 'test', - 'color' => Colors::Red, + 'color' => Colors::Red->value, 'private' => false, ]); diff --git a/tests/features/CreateTest.php b/tests/features/CreateTest.php index 3715222..1af3ce3 100644 --- a/tests/features/CreateTest.php +++ b/tests/features/CreateTest.php @@ -2,7 +2,7 @@ use Carbon\Carbon; use Illuminate\Foundation\Testing\RefreshDatabase; -use LaravelEnso\Calendar\Enums\Frequencies; +use LaravelEnso\Calendar\Enums\Frequency; use LaravelEnso\Calendar\Models\Event; use LaravelEnso\Users\Models\User; use Tests\TestCase; @@ -32,7 +32,7 @@ public function create_event() $this->post(route('core.calendar.events.store'), [ 'start_date' => $this->date->format('Y-m-d'), 'end_date' => $this->date->format('Y-m-d'), - 'frequency' => Frequencies::Once, + 'frequency' => Frequency::Once->value, ] + $this->event->toArray()); $this->assertTrue(Event::exists()); @@ -47,7 +47,7 @@ public function create_sequence() $this->post(route('core.calendar.events.store'), [ 'start_date' => $this->date->format('Y-m-d'), 'end_date' => $this->date->format('Y-m-d'), - 'frequency' => Frequencies::Daily, + 'frequency' => Frequency::Daily->value, 'recurrence_ends_at' => $recurrenceEndsAt->format('Y-m-d'), ] + $this->event->toArray()); diff --git a/tests/features/EventTest.php b/tests/features/EventTest.php index b24c852..eca9784 100644 --- a/tests/features/EventTest.php +++ b/tests/features/EventTest.php @@ -2,7 +2,7 @@ use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Collection; -use LaravelEnso\Calendar\Enums\Frequencies; +use LaravelEnso\Calendar\Enums\Frequency; use LaravelEnso\Calendar\Models\Event; use LaravelEnso\Users\Models\User; use Tests\TestCase; @@ -21,7 +21,7 @@ protected function setUp(): void ->actingAs(User::first()); $this->event = Event::factory()->make([ - 'frequency' => Frequencies::Once, + 'frequency' => Frequency::Once->value, ]); $this->event->store(); @@ -41,7 +41,7 @@ public function can_update_event() public function can_update_to_sequence() { $this->patch($this->route('update'), [ - 'frequency' => Frequencies::Daily, + 'frequency' => Frequency::Daily->value, 'recurrence_ends_at' => $this->event->start_date->clone()->addDays(4)->format('Y-m-d'), ]); diff --git a/tests/features/SequenceTest.php b/tests/features/SequenceTest.php index 1ba946d..230a651 100644 --- a/tests/features/SequenceTest.php +++ b/tests/features/SequenceTest.php @@ -2,7 +2,7 @@ use Carbon\Carbon; use Illuminate\Foundation\Testing\RefreshDatabase; -use LaravelEnso\Calendar\Enums\Frequencies; +use LaravelEnso\Calendar\Enums\Frequency; use LaravelEnso\Calendar\Enums\UpdateType; use LaravelEnso\Calendar\Models\Event; use LaravelEnso\Users\Models\User; @@ -32,7 +32,7 @@ protected function setUp(): void 'start_date' => $this->date->format('Y-m-d'), 'end_date' => $this->date->format('Y-m-d'), 'recurrence_ends_at' => $this->date->clone()->addDays($this->count - 1), - 'frequency' => Frequencies::Daily, + 'frequency' => Frequency::Daily->value, ]); $this->event->store(); @@ -45,7 +45,7 @@ public function can_update_all_events_from_middle_of_sequence() $this->patch($this->route('update', 3), [ 'end_time' => $endTime, - 'updateType' => UpdateType::All, + 'updateType' => UpdateType::All->value, ]); $startTime = $this->date->format('Y-m-d').' '.$this->event->start_time; @@ -61,7 +61,7 @@ public function can_update_this_and_future_events() $this->patch($this->route('update', $startingId), [ 'end_time' => $endTime, - 'updateType' => UpdateType::ThisAndFuture, + 'updateType' => UpdateType::ThisAndFuture->value, ]); $events = Event::orderBy('id')->get(); @@ -83,7 +83,7 @@ public function can_update_date_of_event_in_middle_of_sequence() $this->patch($this->route('update', $startingId), [ 'start_date' => $date->format('Y-m-d'), 'end_date' => $date->format('Y-m-d'), - 'updateType' => UpdateType::OnlyThis, + 'updateType' => UpdateType::OnlyThis->value, ]); $events = Event::orderBy('id')->get(); @@ -100,7 +100,7 @@ public function can_regenerate_future_events() $this->patch($this->route('update', $startingId), [ 'start_date' => $date, 'end_date' => $date, - 'updateType' => UpdateType::ThisAndFuture, + 'updateType' => UpdateType::ThisAndFuture->value, 'frequency' => $this->event->frequency, 'recurrence_ends_at' => $this->event->recurrence_ends_at, ]); @@ -119,7 +119,7 @@ public function cannot_predate_subsequence() $this->patch($this->route('update', $startingId), [ 'start_date' => $date, 'end_date' => $date, - 'updateType' => UpdateType::ThisAndFuture, + 'updateType' => UpdateType::ThisAndFuture->value, ])->assertStatus(302) ->assertSessionHasErrors(['start_date']); } @@ -132,7 +132,7 @@ public function can_update_recurrence_ends_at() $this->patch($this->route('update', $startingId), [ 'recurrence_ends_at' => $date, - 'updateType' => UpdateType::ThisAndFuture, + 'updateType' => UpdateType::ThisAndFuture->value, ]); $parents = Event::orderBy('id')->pluck('parent_id')->toArray(); @@ -146,8 +146,8 @@ public function can_update_frequency_to_once_on_only_one_event_from_sequence() $startingId = 3; $this->patch($this->route('update', $startingId), [ - 'frequency' => Frequencies::Once, - 'updateType' => UpdateType::OnlyThis, + 'frequency' => Frequency::Once->value, + 'updateType' => UpdateType::OnlyThis->value, ]); $parents = Event::orderBy('id')->pluck('parent_id')->toArray(); @@ -161,8 +161,8 @@ public function cannot_update_frequency_to_once_on_many_events_from_sequence() $startingId = 3; $this->patch($this->route('update', $startingId), [ - 'frequency' => Frequencies::Once, - 'updateType' => UpdateType::ThisAndFuture, + 'frequency' => Frequency::Once->value, + 'updateType' => UpdateType::ThisAndFuture->value, ])->assertStatus(302) ->assertSessionHasErrors(['frequency']); } @@ -170,7 +170,7 @@ public function cannot_update_frequency_to_once_on_many_events_from_sequence() /** @test */ public function can_delete_all_events_from_middle_of_sequence() { - $this->delete($this->route('destroy', 3), ['updateType' => UpdateType::All]); + $this->delete($this->route('destroy', 3), ['updateType' => UpdateType::All->value]); $this->assertTrue(Event::doesntExist()); } @@ -180,7 +180,7 @@ public function can_delete_single_event_from_sequence() { $id = 3; - $this->delete($this->route('destroy', $id), ['updateType' => UpdateType::OnlyThis]); + $this->delete($this->route('destroy', $id), ['updateType' => UpdateType::OnlyThis->value]); $events = Event::orderBy('id')->where('id', '>=', $id)->get(); @@ -193,7 +193,7 @@ public function can_delete_following_events() { $id = 3; - $this->delete($this->route('destroy', $id), ['updateType' => UpdateType::ThisAndFuture]); + $this->delete($this->route('destroy', $id), ['updateType' => UpdateType::ThisAndFuture->value]); $this->assertTrue(Event::orderBy('id')->where('id', '>=', $id)->doesntExist());