diff --git a/app/Architecture/Providers/ObserverServiceProvider.php b/app/Architecture/Providers/ObserverServiceProvider.php index 9457a10..3409e18 100644 --- a/app/Architecture/Providers/ObserverServiceProvider.php +++ b/app/Architecture/Providers/ObserverServiceProvider.php @@ -6,10 +6,8 @@ namespace Toby\Architecture\Providers; use Illuminate\Support\ServiceProvider; use Toby\Eloquent\Models\User; -use Toby\Eloquent\Models\VacationRequest; use Toby\Eloquent\Models\YearPeriod; use Toby\Eloquent\Observers\UserObserver; -use Toby\Eloquent\Observers\VacationRequestObserver; use Toby\Eloquent\Observers\YearPeriodObserver; class ObserverServiceProvider extends ServiceProvider @@ -18,6 +16,5 @@ class ObserverServiceProvider extends ServiceProvider { User::observe(UserObserver::class); YearPeriod::observe(YearPeriodObserver::class); - VacationRequest::observe(VacationRequestObserver::class); } } diff --git a/app/Eloquent/Models/VacationRequest.php b/app/Eloquent/Models/VacationRequest.php index 0f7348a..e85708f 100644 --- a/app/Eloquent/Models/VacationRequest.php +++ b/app/Eloquent/Models/VacationRequest.php @@ -19,6 +19,7 @@ use Toby\Domain\States\VacationRequest\VacationRequestState; /** * @property int $id + * @property string $name * @property VacationType $type * @property VacationRequestState $state * @property Carbon $from @@ -90,6 +91,11 @@ class VacationRequest extends Model ->where("to", ">=", $vacationRequest->from); } + public function getNameAttribute(): string + { + return "{$this->id}/{$this->yearPeriod->year}"; + } + public function hasFlowSkipped(): bool { return $this->flow_skipped; diff --git a/app/Eloquent/Observers/VacationRequestObserver.php b/app/Eloquent/Observers/VacationRequestObserver.php deleted file mode 100644 index 7c041fa..0000000 --- a/app/Eloquent/Observers/VacationRequestObserver.php +++ /dev/null @@ -1,28 +0,0 @@ -from->year; - - $vacationRequestNumber = $vacationRequest->user->vacationRequests() - ->whereYear("from", $year) - ->count() + 1; - - $vacationRequest->name = "{$vacationRequestNumber}/${year}"; - } -} diff --git a/app/Infrastructure/Jobs/SendVacationRequestDaysToGoogleCalendar.php b/app/Infrastructure/Jobs/SendVacationRequestDaysToGoogleCalendar.php index 04082b1..7857fdc 100644 --- a/app/Infrastructure/Jobs/SendVacationRequestDaysToGoogleCalendar.php +++ b/app/Infrastructure/Jobs/SendVacationRequestDaysToGoogleCalendar.php @@ -32,8 +32,10 @@ class SendVacationRequestDaysToGoogleCalendar implements ShouldQueue $ranges = $this->prepareRanges($days); foreach ($ranges as $range) { + $text = "{$this->vacationRequest->type->label()} - {$this->vacationRequest->user->fullName} [{$this->vacationRequest->name}]"; + $event = Event::create([ - "name" => "{$this->vacationRequest->type->label()} - {$this->vacationRequest->user->fullName}", + "name" => $text, "startDate" => Carbon::create($range["from"]), "endDate" => Carbon::create($range["to"])->addDay(), ]); diff --git a/database/factories/VacationRequestFactory.php b/database/factories/VacationRequestFactory.php index f9689b7..7d2e57a 100644 --- a/database/factories/VacationRequestFactory.php +++ b/database/factories/VacationRequestFactory.php @@ -15,7 +15,6 @@ use Toby\Eloquent\Models\YearPeriod; class VacationRequestFactory extends Factory { protected $model = VacationRequest::class; - private static int $number = 1; public function definition(): array { @@ -26,7 +25,6 @@ class VacationRequestFactory extends Factory "user_id" => User::factory(), "creator_id" => fn(array $attributes): int => $attributes["user_id"], "year_period_id" => YearPeriod::factory(), - "name" => fn(array $attributes): string => $this->generateName($attributes), "type" => $this->faker->randomElement(VacationType::cases()), "state" => $this->faker->randomElement(VacationRequestStatesRetriever::all()), "from" => $from, @@ -34,12 +32,4 @@ class VacationRequestFactory extends Factory "comment" => $this->faker->boolean ? $this->faker->paragraph() : null, ]; } - - protected function generateName(array $attributes): string - { - $year = YearPeriod::find($attributes["year_period_id"])->year; - $number = static::$number++; - - return "{$number}/{$year}"; - } } diff --git a/database/migrations/2022_03_17_105927_add_event_ids_column_to_vacation_requests_table.php b/database/migrations/2022_03_17_105927_add_event_ids_column_and_remove_name_column_in_vacation_requests_table.php similarity index 88% rename from database/migrations/2022_03_17_105927_add_event_ids_column_to_vacation_requests_table.php rename to database/migrations/2022_03_17_105927_add_event_ids_column_and_remove_name_column_in_vacation_requests_table.php index 571f1ee..7e9c240 100644 --- a/database/migrations/2022_03_17_105927_add_event_ids_column_to_vacation_requests_table.php +++ b/database/migrations/2022_03_17_105927_add_event_ids_column_and_remove_name_column_in_vacation_requests_table.php @@ -11,6 +11,7 @@ return new class() extends Migration { { Schema::table("vacation_requests", function (Blueprint $table): void { $table->json("event_ids")->nullable(); + $table->dropColumn("name"); }); } @@ -18,6 +19,7 @@ return new class() extends Migration { { Schema::table("vacation_requests", function (Blueprint $table): void { $table->dropColumn("event_ids"); + $table->string("name"); }); } };