$rawData['nama_semester'], 'code' => $rawData['id_semester'], 'year_study' => $rawData['id_tahun_ajaran'], 'semester' => $rawData['semester'], 'date_start' => $rawData['tanggal_mulai'], 'date_end' => $rawData['tanggal_selesai'], ]; } public function updateOrCreateDomainState(array $payload, ?Model $existingModel = null): void { /** @var Term $term */ $term = $existingModel; if(isset($term)) { $this->modifyTermDate->execute($term, new ModifyTermDateDTO( startDate: CarbonImmutable::parse($payload['date_start']), endDate: CarbonImmutable::parse($payload['date_end']), )); } else { $this->initializeAcademicTerm->execute(new InitializeAcademicTermDTO( name: $payload['name'], code: $payload['code'], yearStudy: $payload['year_study'], semester: $payload['semester'], startDate: CarbonImmutable::parse($payload['date_start']), endDate: CarbonImmutable::parse($payload['date_end']), )); } } /** * @return class-string */ public function getModelClass(): string { return Term::class; } }