markOverride($model); } public function deleted(Model $model): void { $this->markOverride($model); } private function markOverride(Model $model): void { if (! $this->projectTemplateOverrideManager->isRecording()) { return; } $project = $model->project()->first(); if ($project === null) { return; } $area = match (true) { $model instanceof BoardColumn => DuplicateProjectConfiguration::COPY_BOARD_COLUMNS, $model instanceof TicketStatus => DuplicateProjectConfiguration::COPY_TICKET_STATUSES, $model instanceof TicketType => DuplicateProjectConfiguration::COPY_TICKET_TYPES, $model instanceof TicketPriority => DuplicateProjectConfiguration::COPY_TICKET_PRIORITIES, $model instanceof TicketFieldDefinition => DuplicateProjectConfiguration::COPY_TICKET_FIELDS, $model instanceof TicketLinkType => DuplicateProjectConfiguration::COPY_TICKET_LINK_TYPES, $model instanceof RepositoryConnection => DuplicateProjectConfiguration::COPY_REPOSITORY_CONNECTIONS, $model instanceof NotificationAction => DuplicateProjectConfiguration::COPY_NOTIFICATION_ACTIONS, default => null, }; if ($area === null) { return; } $this->refreshProjectBaseTemplate->handle($project, $area); $this->projectTemplateOverrideManager->mark($project, $area); } }